Description
In the Linux kernel, the following vulnerability has been resolved:

crypto: qce - fix CCM AAD buffer underallocation

The AAD buffer allocated in qce_aead_ccm_prepare_buf_assoclen()
can be smaller than the length later programmed into the DMA
scatterlist.

The allocation size is currently calculated as:

ALIGN(assoclen, 16) + MAX_CCM_ADATA_HEADER_LEN

while the DMA length is set to:

ALIGN(assoclen + adata_header_len, 16)

Since ALIGN() does not distribute over addition, the allocation
can be smaller than the DMA length. For example, when
assoclen = 32 and adata_header_len = 2:

allocation = ALIGN(32, 16) + 6 = 38
DMA length = ALIGN(32 + 2, 16) = 48

As a result, the QCE hardware can read beyond the allocated
buffer while computing the CBC-MAC over the associated data.
The extra bytes are folded into the authentication tag,
resulting in an incorrect tag and causing CCM self-test
failures such as:

alg: aead: ccm-aes-qce encryption test failed (wrong result)
on test vector 8

Fix the allocation by adding the maximum possible AAD header
length before alignment:

ALIGN(assoclen + MAX_CCM_ADATA_HEADER_LEN, 16)

This guarantees that the allocated buffer is large enough
for the fully padded AAD data for all supported header sizes.
Published: 2026-09-04
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: Authentication Bypass
Action: Immediate Patch
AI Analysis

Impact

The QCE cryptographic driver in the Linux kernel allocates a buffer for the CCM AAD (associated authenticated data) that is smaller than the length used by the DMA scatterlist. This mis‑calculation means that during authentication the QCE hardware can read past the end of the allocated buffer, causing forged or corrupted authentication tags. A faulty tag can allow malicious data to be accepted as authenticated, effectively bypassing message integrity checks.

Affected Systems

Linux kernel versions that include the QCE crypto driver before the applied patch are affected. The issue is present in the kernel’s qce_aead_ccm_prepare_buf_assoclen() function which handles CCM mode for AES. No specific version numbers are listed in the CNA data, but any kernel using the unpatched QCE implementation is vulnerable.

Risk and Exploitability

The vulnerability can be exploited by any process that can invoke CCM mode with a custom AAD length, which may include legitimate applications or malicious local code. Because the flaw lies in kernel driver memory handling, it requires userland control of cryptographic operations but does not provide network‑exposed entry points. The exploit would lead to authentication forgery rather than code execution. Exploitability is therefore limited to local privilege escalation or data integrity compromise. No CVSS or EPSS scores are supplied, but the absence of a KEV listing suggests that widespread exploitation is not yet confirmed. Nonetheless, given the potential for message forgery, the risk is not negligible.

Generated by OpenCVE AI on September 4, 2026 at 20:58 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a kernel update that includes the fixed allocation logic for QCE CCM AAD buffers.
  • Verify that all cryptographic libraries in use are configured to stay within the supported AAD header limits until the kernel patch is in place.
  • After updating, run cryptographic self‑tests to confirm authentication tags are now correct.

Generated by OpenCVE AI on September 4, 2026 at 20:58 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4777-1 linux security update
History

Fri, 04 Sep 2026 21:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-119
CWE-789

Fri, 04 Sep 2026 16:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: crypto: qce - fix CCM AAD buffer underallocation The AAD buffer allocated in qce_aead_ccm_prepare_buf_assoclen() can be smaller than the length later programmed into the DMA scatterlist. The allocation size is currently calculated as: ALIGN(assoclen, 16) + MAX_CCM_ADATA_HEADER_LEN while the DMA length is set to: ALIGN(assoclen + adata_header_len, 16) Since ALIGN() does not distribute over addition, the allocation can be smaller than the DMA length. For example, when assoclen = 32 and adata_header_len = 2: allocation = ALIGN(32, 16) + 6 = 38 DMA length = ALIGN(32 + 2, 16) = 48 As a result, the QCE hardware can read beyond the allocated buffer while computing the CBC-MAC over the associated data. The extra bytes are folded into the authentication tag, resulting in an incorrect tag and causing CCM self-test failures such as: alg: aead: ccm-aes-qce encryption test failed (wrong result) on test vector 8 Fix the allocation by adding the maximum possible AAD header length before alignment: ALIGN(assoclen + MAX_CCM_ADATA_HEADER_LEN, 16) This guarantees that the allocated buffer is large enough for the fully padded AAD data for all supported header sizes.
Title crypto: qce - fix CCM AAD buffer underallocation
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-04T15:54:40.017Z

Reserved: 2026-08-26T14:34:25.796Z

Link: CVE-2026-80832

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-04T16:18:11.433

Modified: 2026-09-04T16:18:11.433

Link: CVE-2026-80832

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-05T04:15:07Z

Weaknesses
  • CWE-119

    Improper Restriction of Operations within the Bounds of a Memory Buffer

  • CWE-789

    Memory Allocation with Excessive Size Value