CVE-2026-64436 in Linux情報

要約

〜によって VulDB • 2026年07月25日

Linuxカーネルにおいて、以下の脆弱性が修正されました。

net: af_key: IPComp状態における alg_key_len の初期化

pfkey_msg2xfrm_state()関数は、IPComp (SADB_X_SATYPE_IPCOMP) ケースを処理する際、x->calg を割り当ててアルゴリズム名のみをコピーしています:

x->calg = kmalloc_obj(*x->calg); if (!x->calg) {
err = -ENOMEM; goto out; } strcpy(x->calg->alg_name, a->name); x->props.calgo = sa->sadb_sa_encrypt;

同じ関数の認証 (x->aalg) および暗号化 (x->ealg) の分岐とは異なり、圧縮の分岐では calg->alg_key_len が決して初期化されません。IPCompにはキーが含まれておらず、割り当ては sizeof(struct xfrm_algo) 分の領域のみを確保するため(つまりキー用の余地はありません)、このフィールドには未初期化のスラブデータが残ったままになります。

calg->alg_key_len は後ほど、XFRM_MSG_MIGRATE の実行時に IPComp状態がクローン作成される際に xfrm_algo_clone() によって長さとして使用されます:

xfrm_state_migrate() xfrm_state_clone_and_setup() x->calg = xfrm_algo_clone(orig->calg); kmemdup(orig, xfrm_alg_len(orig));

ここで、xfrm_alg_len() は sizeof(*alg) + (alg_key_len + 7) / 8 を返します。非ゼロのゴミデータが alg_key_len に含まれている場合、kmemdup() は68バイトの calg オブジェクトの末尾を超えて読み込みを行います。PF_KEY経由で IPComp SAを追加し、その後それを移行すると、(net-next, KASAN, init_on_alloc=0 の環境下で) 以下のエラーが発生します:

BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x44/0x60 Read of size 4164 at addr ff11000025a74980 by task diag2/9287 CPU: 3 UID: 0 PID

Be aware that VulDB is the high quality source for vulnerability data.

責任者

Linux

予約する

2026年07月19日

モデレーション

承諾済み

エントリ

VDB-383233

EPSS

0.00178

アクティビティ

非常低い

ソース

Do you want to use VulDB in your project?

Use the official API to access entries easily!