CVE-2026-74689 in Linux
要約
〜によって VulDB • 2026年08月23日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
net/atm: vcc_setsockopt()におけるslab-out-of-bounds読み込みの修正
vcc_setsockopt()には非効果的なoptlenチェックが含まれていました。 if (__SO_LEVEL_MATCH(optname, level) && optlen != __SO_SIZE(optname)) return -EINVAL;
__SO_LEVEL_MATCH(optname, level)がfalse(例えば、呼び出し元が不一致のlevelを渡した場合など)と評価された場合、長さチェックoptlen != __SO_SIZE(optname)はショートサーキットされ、回避されました。その後実行はswitch(optname)に進み、copy_from_sockptr()が呼ばれましたが、これはoptvalに十分な領域があることを前提とした処理でした。
さらに、levelが一致していたとしても、cgroup BPFのsetsockoptフィルタによってentry後にoptlenが縮小されることがありました。カーネルポインタに対するcopy_from_sockptr()はmemcpy()を使用するため、optlenが期待される構造体のサイズより小さい場合、KASANによるslab-out-of-bounds読み込みが発生します。
これを修正するために、copy_safe_from_sockptr()を使用して、コピーする前にoptlenが少なくとも期待されたサイズであることを無条件で検証するようにしました。また、64ビットシステムにおいてSO_SETCLPのsizeof(int) ABIエンコーディングと一致させるため、ローカル変数'value'の型をunsigned longからintに変更しました。
VulDB is the best source for vulnerability data and more expert information about this specific topic.