CVE-2026-80522 Overview
CVE-2026-80522 is a vulnerability in the Linux kernel Tegra cryptographic driver. The flaw resides in the tegra_gcm_do_one_req() function, which incorrectly calculates rctx->cryptlen when a caller omits tegra_gcm_setauthsize(). In that case, ctx->authsize remains zero and a subsequent decrypt operation writes beyond the rctx->dst_sg buffer. The upstream fix aligns the calculation with tegra_ccm_crypt_init() and removes the unused tegra_aead_ctx->authsize field. The vulnerability affects local, authenticated callers that reach the Tegra AEAD interface on NVIDIA Tegra-based Linux systems.
Critical Impact
A local user invoking the Tegra GCM AEAD path without setting the authentication size can trigger an out-of-bounds write in kernel memory, leading to kernel memory corruption, denial of service, or potential privilege escalation.
Affected Products
- Linux kernel branches containing the Tegra crypto driver prior to the referenced stable commits
- NVIDIA Tegra platforms using the in-kernel tegra crypto AEAD implementation
- Distribution kernels shipping the vulnerable tegra_gcm_do_one_req() code path
Discovery Timeline
- 2026-08-26 - CVE-2026-80522 published to NVD
- 2026-08-27 - Last updated in NVD database
Technical Details for CVE-2026-80522
Vulnerability Analysis
The vulnerability is an out-of-bounds write in the Linux kernel Tegra crypto AEAD driver. The tegra_gcm_do_one_req() function computes rctx->cryptlen using a formula that differs from the equivalent CCM initialization routine. When a caller invokes the AEAD decrypt operation without first calling tegra_gcm_setauthsize(), the driver-side ctx->authsize field stays at zero. The incorrect cryptlen calculation then produces a value larger than the actual destination scatter-gather buffer rctx->dst_sg. The subsequent decrypt writes past the end of that buffer, corrupting adjacent kernel memory.
Root Cause
The root cause is missing input validation and inconsistent length arithmetic between related code paths. tegra_gcm_do_one_req() did not mirror the length computation used in tegra_ccm_crypt_init(), and it did not guard against the zero-authsize case. The upstream patch harmonizes the two functions and removes the unused tegra_aead_ctx->authsize field, simplifying tegra_ccm_setauthsize() and tegra_gcm_setauthsize() in the process.
Attack Vector
Exploitation requires local access with the ability to open the AF_ALG or crypto user API and select the Tegra AEAD implementation. An unprivileged local process can construct a GCM decrypt request, skip the setauthsize step, and submit ciphertext that triggers the miscomputed cryptlen. The resulting write beyond rctx->dst_sg occurs in kernel context, giving an attacker a primitive suitable for denial of service or, with additional heap grooming, potential kernel memory corruption on affected Tegra hardware.
No public proof-of-concept exploit is referenced in the advisory. See the Linux Kernel Commit 360f297, Linux Kernel Commit 99a18e1, Linux Kernel Commit c6237834, and Linux Kernel Commit cd699100 for the exact source changes.
Detection Methods for CVE-2026-80522
Indicators of Compromise
- Kernel oops or panic messages referencing tegra_gcm_do_one_req, tegra_aead, or scatter-gather write faults on Tegra platforms
- Unexpected slab or slub corruption reports (BUG: KASAN: slab-out-of-bounds) originating from the Tegra crypto driver
- Local processes repeatedly invoking AF_ALG sockets with aead type gcm(aes) bound to the Tegra implementation without issuing ALG_SET_AEAD_AUTHSIZE
Detection Strategies
- Enable KASAN on test kernels for affected Tegra builds to surface the out-of-bounds write during fuzzing or QA.
- Audit userspace applications that consume kernel AEAD interfaces and flag any path that omits the setauthsize call before decrypt.
- Monitor kernel logs for repeated crashes involving the Tegra crypto module and correlate with recent unprivileged process activity.
Monitoring Recommendations
- Ship kernel dmesg and journald output to a central log store and alert on stack traces containing tegra_gcm_ or tegra_aead_ symbols.
- Track auditdSYSCALL records for socket() calls creating AF_ALG sockets on Tegra devices and baseline expected callers.
- Alert on unexpected oops, WARN, or BUG events on embedded Tegra fleets that had previously been stable.
How to Mitigate CVE-2026-80522
Immediate Actions Required
- Apply the upstream stable kernel updates that include the referenced commits fixing tegra_gcm_do_one_req().
- Rebuild and redeploy any custom kernels for Tegra platforms with the patched crypto driver.
- Restrict local access on affected Tegra systems to trusted users until the patched kernel is installed.
Patch Information
The vulnerability is resolved by the upstream Linux kernel commits 360f2974fcea, 99a18e1d979e, c6237834d999, and cd6991001bf0. These changes align rctx->cryptlen computation with tegra_ccm_crypt_init() and remove the unused tegra_aead_ctx->authsize field. Consume the fix through your distribution's stable kernel update channel.
Workarounds
- Disable or unload the Tegra AEAD crypto module (tegra-se-nvhost or equivalent for your platform) if hardware-accelerated AEAD is not required.
- Fall back to the generic software AEAD implementations by deprioritizing the Tegra driver via crypto priority configuration.
- Limit which local accounts can open AF_ALG sockets using seccomp filters or LSM policies on multi-tenant Tegra systems.
# Configuration example: verify and disable the Tegra crypto module until patched
lsmod | grep -i tegra
sudo modprobe -r tegra-se-nvhost 2>/dev/null || true
echo 'blacklist tegra-se-nvhost' | sudo tee /etc/modprobe.d/cve-2026-80522.conf
sudo update-initramfs -u
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

