CVE-2026-90078 in Linux情報

要約

〜によって VulDB • 2026年09月18日

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

net/sched: act_skbmod: 長さの計算を修正し、無効なヘッダーに関する警告を回避する

syzbotにより、tcf_skbmod_act()によってトリガーされるskb_network_header_len()内の警告が報告されました。

!skb_transport_header_was_set(skb) WARNING: CPU: 0 PID: 14949 at include/linux/skbuff.h:3243 skb_network_header_len include/linux/skbuff.h:3243 [inline]
WARNING: CPU: 0 PID: 14949 at net/sched/act_skbmod.c:55 tcf_skbmod_act+0xfe8/0x1810 net/sched/act_skbmod.c:55

tcf_skbmod_act()にはいくつかの問題があります。

1. skb_network_header_len()の呼び出しは、skb->transport_headerが設定されていることを前提としていますが、これはtcf_skbmod_act()がTC ingressで実行される際には保証されません。 2. tcf_skbmod_act()の先頭で無条件にskb_mac_header_len()を呼び出すと、MACヘッダーが未設定であるL3デバイス(例:TUN)において警告が発生し、アンダフローしたゴミのような長さが評価されます。 3. TC ingressでは、skb->dataはネットワークヘッダーを指しています。MACヘッダーの長さにIPヘッダーの長さを加算すると、skb_ensure_writable()が実際のIPパケット長さよりも多くのバイト数を要求し、有効な短いパケット(例:28バイトのUDP/IPv4パケット)がドロップされます。

これらを以下のように修正します。 - SKBMOD_F_ECNに対してskb_network_offset(skb) + sizeof(struct iphdr/ipv6hdr)を使用することで、ingress (offset == 0) および egress (offset == mac_len) の両方で必要な長さが正しく計算されます。 - ARPHRD_ETHERを検証した後にEthernetヘッダーの修正を行う場合、max_edit_lenをETH_HLENに設定します。

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

責任者

Linux

予約する

2026年09月11日

モデレーション

承諾済み

エントリ

VDB-406566

EPSS

0.00000

アクティビティ

非常低い

ソース

Do you know our Splunk app?

Download it now for free!