🇰🇷 한글 설명
리눅스 커널의 packet 전송 경로에서 hard_header_len 값이 일관되지 않게 사용되어 발생하는 취약점입니다. 네트워크 장치 재설정 시 헤드룸 할당 오류나 음수 값 계산 문제가 발생할 수 있습니다.
💡 쉬운 설명
네트워크 데이터를 보낼 때 필요한 공간을 계산하는 과정에서 값이 중간에 바뀌어 오류가 생기는 문제입니다. 이로 인해 시스템이 예상치 못한 동작을 하거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
packet: use consistent hard_header_len in TX_RING send path
tpacket_snd() reads dev->hard_header_len independently for skb
allocation and header construction in tpacket_fill_skb(). Concurrent
netdevice reconfiguration can therefore make the reserved headroom
smaller than the amount later pushed, or make copylen - hard_header_len
negative.
Snapshot hard_header_len once before processing ring frames and use it
for the frame limit, headroom allocation, copy length, and skb
construction. Pass the snapshot to tpacket_fill_skb().
The separate SOCK_DGRAM consistency problem between hard_header_len and
header_ops->create is not addressed here.
📍 영향받는 시스템
Linux Kernel (tpacket_snd 관련 모듈 사용 시스템)
⚔️ 공격 벡터
네트워크 장치 재설정을 유도하여 데이터 전송 과정의 메모리 계산 오류를 유발하는 방식
🛡️ 대응 방법
해당 취약점이 수정된 최신 리눅스 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 취약점이 해결된 패치 버전인지 확인