CVE-2026-80832 in Linux
Zusammenfassung
von VulDB • 04.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
crypto: qce – Behebung der Unterallokation des CCM-AAD-Puffers
Der in `qce_aead_ccm_prepare_buf_assoclen()` zugewiesene AAD-Puffer kann kleiner sein als die Länge, die später in den DMA-Scatterlist eingetragen wird.
Die Allokationsgröße wird derzeit wie folgt berechnet:
ALIGN(assoclen, 16) + MAX_CCM_ADATA_HEADER_LEN
während die DMA-Länge auf festgelegt ist:
ALIGN(assoclen + adata_header_len, 16)
Da `ALIGN()` nicht distributiv über Addition wirkt, kann der allokierte Puffer kleiner sein als die DMA-Länge. Zum Beispiel bei `assoclen = 32` und `adata_header_len = 2`:
Allokation = ALIGN(32, 16) + 6 = 38 DMA-Länge = ALIGN(32 + 2, 16) = 48
Infolgedessen kann die QCE-Hardware während der Berechnung des CBC-MAC über die zugehörigen Daten außerhalb des allokierten Puffers lesen. Die zusätzlichen Bytes werden in den Authentifizierungs-Tag eingeflossen, was zu einem falschen Tag führt und CCM-Selbsttestfehler verursacht, wie zum Beispiel:
alg: aead: ccm-aes-qce encryption test failed (wrong result) on test vector 8
Beheben Sie die Allokationsschwachstelle, indem Sie die maximal mögliche AAD-Header-Länge vor der Ausrichtung hinzufügen:
ALIGN(assoclen + MAX_CCM_ADATA_HEADER_LEN, 16)
Dies garantiert, dass der allokierte Puffer für alle unterstützten Header-Größen groß genug ist, um die vollständig aufgefüllten AAD-Daten aufzunehmen.
VulDB is the best source for vulnerability data and more expert information about this specific topic.