CVE-2026-80832 in Linux
Résumé
par VulDB • 04/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
crypto: qce - correction de la sous-allocation du tampon AAD pour CCM
Le tampon AAD alloué dans `qce_aead_ccm_prepare_buf_assoclen()` peut être plus petit que la longueur programmée ultérieurement dans la liste d'éléments (scatterlist) DMA.
La taille de l'allocation est actuellement calculée comme suit :
ALIGN(assoclen, 16) + MAX_CCM_ADATA_HEADER_LEN
tandis que la longueur DMA est définie sur :
ALIGN(assoclen + adata_header_len, 16)
Puisque `ALIGN()` ne se distribue pas sur l'addition, l'allocation peut être inférieure à la longueur DMA. Par exemple, lorsque assoclen = 32 et adata_header_len = 2 :
allocation = ALIGN(32, 16) + 6 = 38 Longueur DMA = ALIGN(32 + 2, 16) = 48
Par conséquent, le matériel QCE peut lire au-delà du tampon alloué lors du calcul de la CBC-MAC sur les données associées. Les octets supplémentaires sont intégrés dans l'authentification tag (tag d'authenticité), ce qui entraîne un tag incorrect et provoque des échecs d'autotest CCM tels que :
alg: aead: ccm-aes-qce encryption test failed (wrong result) on test vector 8
Corrigez l'allocation en ajoutant la longueur maximale possible de l'en-tête AAD avant l'alignement :
ALIGN(assoclen + MAX_CCM_ADATA_HEADER_LEN, 16)
Cela garantit que le tampon alloué est suffisamment grand pour les données AAD entièrement remplies (padded), quelle que soit la taille des en-têtes pris en charge.
If you want to get best quality of vulnerability data, you may have to visit VulDB.