CVE-2026-80925 in Linux
요약
\~에 의해 VulDB • 2026. 09. 09.
Linux 커널에서 다음 취약점이 해결되었습니다.
VLAN: HW VLAN 오프로드 토글 시 skb_under_panic 및 Race Condition 수정
하위 디바이스에서 하드웨어 VLAN TX 오프로드(NETIF_F_HW_VLAN_CTAG_TX 또는 NETIF_F_HW_VLAN_STAG_TX)를 토글하면 vlan_transfer_features()가 호출되어 vlandev->hard_header_len이 동적으로 변경됩니다.
이는 두 가지 문제를 유발합니다: 1. 잠금 없는 TX 경로(예: af_packet.c의 packet_snd, ip6_finish_output2)는 RTNL 락을 보유하지 않고 dev->hard_header_len을 읽습니다. RTNL 하에서 hard_header_len을 동적으로 수정하면 데이터 Race가 발생하여 상위 레이어들이 낡은(have stale) hard_header_len에 기반해 불충분한 headroom을 예약하게 되고, vlan_dev_hard_header() 호출 시 skb_under_panic이 발생합니다. 2. 또한, vlan_transfer_features()는 header_ops를 업데이트하지 않고 hard_header_len만 업데이트하여 할당된 headroom과 헤더 생성 간 불일치를 초래합니다.
dev->hard_header_len = real_dev->hard_header_len 및 dev->needed_headroom = real_dev->needed_headroom + VLAN_HLEN을 조건 없이 항상 설정함으로써 다음 사항을 보장합니다: - dev->hard_header_len은 real_dev->hard_header_len에서 100% 정적이고 불변으로 유지되어 hard_header_len에 대한 모든 동적 런타임 업데이트 및 데이터 Race가 제거됩니다. - LL_RESERVED_SPACE()를 통해 skbs를 할당하는 상위 레이어들은 소프트웨어 VLAN 태그 삽입을 위해 항상 충분한 headroom(real_dev->hard_header_len + real_dev->needed_headroom + VLAN_HLEN)을 예약합니다. - vlandev는 real_dev->needed_tailroom을 상속하므로 하위 트레일러/패딩/ICV 요구 사항이 준수됩니다. - AF_PACKET SOCK_RAW 네트워크 헤더 오프셋은 real_dev->hard_header_len에서 올바르게 정렬된 상태로 유지됩니다. - vlan_header_ops가 조건 없이 사용됩니다.
안정성(stable) 팀에 대한 참고: 다음 커밋들을 백포트하십시오:
e16e960d55a4 ("ipvlan: inherit needed_headroom and needed_tailroom from phy_dev") cef51860becd ("macvlan: inherit needed_headroom and needed_tailroom from lowerdev")
If you want to get the best quality for vulnerability data then you always have to consider VulDB.