🇰🇷 한글 설명
Linux 커널의 net/sched 구성 요소 중 act_mirred 모듈에서 tcf_blockcast_redir 함수가 패킷을 여러 장치로 리다이렉션할 때 잘못된 장치의 mac_header_xmit 플래그를 확인하는 취약점이 발견되었습니다. 이로 인해 혼합된 장치 유형이 포함된 경우 skb 헤더가 손상될 수 있으며, 최악의 경우 헤드룸 고갈로 인한 커널 패닉이 발생할 수 있습니다.
💡 쉬운 설명
네트워크 패킷을 여러 곳으로 전달하는 과정에서 엉뚱한 장치의 정보를 확인하여 데이터가 깨지는 문제입니다. 이 오류가 심해지면 컴퓨터 시스템이 갑자기 멈추거나 꺼질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net/sched: act_mirred: fix wrong device for mac_header_xmit check in tcf_blockcast_redir
In tcf_blockcast_redir(), when iterating block ports to redirect
packets to multiple devices, the mac_header_xmit flag is queried
from the wrong device. The loop sends to dev_prev but queries
dev_is_mac_header_xmit(dev) — which is the NEXT device in the
iteration, not the one being sent to.
This causes tcf_mirred_to_dev() to make incorrect decisions about
whether to push or pull the MAC header. When the block contains
mixed device types (e.g., an ethernet veth and a tunnel device),
intermediate devices get the wrong mac_header_xmit flag, leading to
skb header corruption. In the worst case, skb_push_rcsum with an
incorrect mac_len can exhaust headroom and panic.
The last device in the loop is handled correctly (line 365-366 uses
dev_is_mac_header_xmit(dev_prev)), confirming this is a copy-paste
oversight for the intermediate devices.
Fix by using dev_prev instead of dev for the mac_header_xmit query,
consistent with the device actually being sent to.
📍 영향받는 시스템
Linux Kernel (act_mirred 모듈을 사용하는 환경)
⚔️ 공격 벡터
특수하게 구성된 네트워크 트래픽을 통해 커널의 패킷 처리 로직을 유도하여 헤더 손상 및 시스템 중단 유발
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 tcf_blockcast_redir 함수의 로직 수정 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.