🇰🇷 한글 설명
Linux 커널의 vlan 모듈에서 vlan_dev_hard_header() 함수가 충분한 헤드룸을 확보하지 못해 skb_under_panic()을 유발할 수 있는 취약점이 발견되었습니다. 이는 VLAN 헤더 재정렬이나 장치 변경 시 데이터 패킷의 공간 부족으로 인해 커널 패닉을 일으킬 수 있습니다.
💡 쉬운 설명
네트워크 데이터를 처리할 때 필요한 여유 공간을 제대로 확인하지 않아 컴퓨터 시스템이 갑자기 멈추거나 오류를 일으킬 수 있는 문제입니다. VLAN이라는 네트워크 기술을 사용할 때 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
vlan: ensure sufficient headroom in vlan_dev_hard_header()
Callers that only reserve ETH_HLEN or less (such as llc_alloc_frame()),
or skbs allocated before dynamic device/headroom changes (e.g. toggling
VLAN_FLAG_REORDER_HDR or bonding/team switching slaves), can reach
vlan_dev_hard_header() with insufficient headroom and trigger
skb_under_panic().
Use skb_cow_head() in vlan_dev_hard_header() when VLAN_FLAG_REORDER_HDR
is not set to ensure sufficient headroom for the VLAN header(s) and the
underlying device hard header.
Use READ_ONCE() to read dev->hard_header_len and dev->needed_headroom as
they can be updated concurrently under RTNL (e.g. in
vlan_transfer_features()) while vlan_dev_hard_header() runs locklessly on
the transmit path. Also avoid LL_RESERVED_SPACE(dev) here so that the
extra HH_DATA_MOD alignment padding does not trigger unnecessary
pskb_expand_head() reallocations on inner stacked VLAN devices after the
outer VLAN header has been pushed.
📍 영향받는 시스템
VLAN 및 Bonding 기능을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
특정 네트워크 설정 변경(VLAN 재정렬, 본딩 전환 등)을 유도하여 커널 패닉을 발생시키는 방식
🛡️ 대응 방법
VLAN 헤더 처리에 skb_cow_head()를 사용하고 동시성 제어를 강화한 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인합니다.