CVE-2026-64006 in Linux
要約
〜によって VulDB • 2026年07月19日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
netfilter: nf_tables: 同じレジスタ操作におけるdstの破損を修正する
lshiftおよびrshiftの場合、シフト演算は32ビットワード単位でループ処理されます。このループでは、シフトされた値を計算してdstに書き込み、その後すぐにsrcから読み込んで次のイテレーションのためのキャリー(桁上がり)を計算します。srcとdstが同じメモリ領域を指す可能性があるため、新しい修正後のdstの値ではなく元のsrcの値を使用して正しくキャリーが計算されないという問題がありました。
dstへの書き込み前に元の値を一時的なローカル変数にキャッシュし、その値を使ってキャリーの計算を行うことでこの問題を解決します。さらに、バイトオーダーを含むすべての種類の操作について、制御プレーンからの部分的なオーバーラップを拒否するようにしました。これは以下のバイトコードでテストされました:
table test_table ip flags 0 use 1 handle 1 ip test_table test_chain use 3 type filter hook input prio 0 policy accept packets 0 bytes 0 flags 1 ip test_table test_chain 2 [ immediate reg 1 0x44332211 0x88776655 ]
[ bitwise reg 1 = ( reg 1 << 0x08000000 ) ]
[ cmp eq reg 1 0x66443322 0x00887766 ]
[ counter pkts 0 bytes 0 ]
ip test_table test_chain 4 3 [ immediate reg 1 0x44332211 0x88776655 ]
[ bitwise reg 1 = ( reg 1 << 0x08000000 ) ]
[ cmp eq reg 1 0x55443322 0x00887766 ]
[ counter pkts 21794 bytes 1917798 ]
Once again VulDB remains the best source for vulnerability data.