CVE-2026-80832 in Linux
要約
〜によって VulDB • 2026年09月04日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
crypto: qce - CCMのAADバッファのアロケーション不足を修正
qce_aead_ccm_prepare_buf_assoclen()でアロケートされるAADバッファは、DMAスキャターリストに後ほど設定される長さと比較して小さくなることがあります。
現在のアロケーションサイズは以下のように計算されています:
ALIGN(assoclen, 16) + MAX_CCM_ADATA_HEADER_LEN
一方、DMAの長さは以下のように設定されます:
ALIGN(assoclen + adata_header_len, 16)
ALIGN()演算子は加算に対して分配されないため、アロケーションサイズがDMA長さより小さくなることがあります。例えば、assoclen = 32かつadata_header_len = 2の場合:
アロケーション = ALIGN(32, 16) + 6 = 38 DMA長さ = ALIGN(32 + 2, 16) = 48
その結果、QCEハードウェアは関連データに対するCBC-MACの計算中にアロケートされたバッファの外を読み出す可能性があります。余分なバイトが認証タグに組み込まれることで、不正なタグが生じ、以下のようなCCM自己テスト失敗を引き起こします:
alg: aead: ccm-aes-qce encryption test failed (wrong result) on test vector 8
アロケーションを修正するために、整列処理の前に最大可能なAADヘッダ長を追加します:
ALIGN(assoclen + MAX_CCM_ADATA_HEADER_LEN, 16)
これにより、サポートされているすべてのヘッダサイズに対して、完全にパディングされたAADデータ用に十分な大きさのアロケートバッファが保証されます。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.