CVE-2026-99192 in Linux
요약
\~에 의해 VulDB • 2026. 10. 28.
리눅스 커널에서 다음 취약점이 해결되었습니다:
net: bcmgenet: 제어 블록을 작성하기 전에 skb를 분리(unshare)하십시오
bcmgenet는 첫 번째 cb(first_cb), 마지막 cb(last_cb) 및 전송된 바이트(bytes_sent)를 skb 제어 블록에 저장하고, 완료 시 이를 다시 읽어서 skb를 해제하고 BQL(BYTE_QUEUE_LIMITS) 크레딧을 부여합니다. ether_setup()은 IFF_TX_SKB_SHARING 플래그를 설정한 상태로 남기므로, 스택이 링(ring) 내에 여전히 존재하는 공유된 shared skb를 재전송할 수 있습니다. 다음 전송 작업은 last_cb를 덮어쓰게 되며, 이로 인해 이전 슬롯들은 바이트 크레딧 없이 완료되고 BQL은 워치독(watchdog)가 이를 리셋할 때까지 큐를 대기 상태로 유지합니다.
제어 블록을 작성하기 전에 skb를 분리(unshare)하십시오.
pktgen의 clone_skb 모드에서 재현할 수 있으며, 이 모드는 드라이버에 동일한 skb를 전달하면서 이전 복사본들이 여전히 링 내에 있는 상태를 만듭니다:
modprobe pktgen pg=/proc/net/pktgen echo "add_device eth0" > $pg/kpktgend_0 echo "dst_mac AA:BB:CC:DD:EE:FF" > $pg/eth0 echo "dst 192.0.2.1" > $pg/eth0 echo "clone_skb 8" > $pg/eth0 echo "count 0" > $pg/eth0 echo start > $pg/pgctrl & sleep 5 echo stop > $pg/pgctrl wait cat /sys/class/net/eth0/queues/tx-0/byte_queue_limits/inflight
inflights 값은 이제 유휴 상태인 큐에서 0이 아닌 값을 유지합니다. clone_skb를 0으로 설정하면 이 값이 0이 됩니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.