CVE-2026-80832 PUBLISHED

crypto: qce - fix CCM AAD buffer underallocation

Assigner: Linux
Reserved: 26.08.2026 Published: 04.09.2026 Updated: 04.09.2026

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.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 9363efb4181c5e0fbf86bdfa759262aa29f0eb50 to 11775b35ce9f27e73d62188d7d38aa0dc0a219aa (excl.)
  • affected from 9363efb4181c5e0fbf86bdfa759262aa29f0eb50 to c9e0f06a023107694698a7930616aeb460d91816 (excl.)
  • affected from 9363efb4181c5e0fbf86bdfa759262aa29f0eb50 to cc56d2b0d77cfeea061e98114992ee687d5eb4dd (excl.)
  • affected from 9363efb4181c5e0fbf86bdfa759262aa29f0eb50 to 002f1f99aef7ea631cb687fc17bce64e4963f6aa (excl.)
  • affected from 9363efb4181c5e0fbf86bdfa759262aa29f0eb50 to 2f65718b9c1095eef1ae9b374aa0384b1b083f3c (excl.)
  • affected from 9363efb4181c5e0fbf86bdfa759262aa29f0eb50 to 46a84efe2dbaddde89073a3c00c694486937c34b (excl.)
  • affected from 9363efb4181c5e0fbf86bdfa759262aa29f0eb50 to 4839f4c21f9c577eedef2919ced878a3057c7fc3 (excl.)
  • affected from 9363efb4181c5e0fbf86bdfa759262aa29f0eb50 to 7f2345f47dd189625f657cd72437179ab4170ee1 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 5.14 is affected
  • unaffected from 0 to 5.14 (excl.)
  • unaffected from 5.15.220 to 5.15.* (incl.)
  • unaffected from 6.1.187 to 6.1.* (incl.)
  • unaffected from 6.6.156 to 6.6.* (incl.)
  • unaffected from 6.12.108 to 6.12.* (incl.)
  • unaffected from 6.18.49 to 6.18.* (incl.)
  • unaffected from 7.1.13 to 7.1.* (incl.)
  • unaffected from 7.2.3 to 7.2.* (incl.)
  • unaffected from 7.3-rc1 to * (incl.)

References