CVE-2026-74667 in Linux정보

요약

\~에 의해 VulDB • 2026. 08. 23.

리눅스 커널에서 다음 취약점이 해결되었습니다:

net/packet: 패킷 소켓 전송 경로에서 MAC 헤더를 초기화합니다

packet_parse_headers()는 프로토콜이 바인딩되지 않은 SOCK_RAW 프레임에 대해서만 MAC 헤더를 초기화합니다. 따라서 프로토콜이 바인딩된 SOCK_RAW 소켓, 모든 SOCK_DGRAM 프레임 및 레거시 SOCK_PACKET 경로는 여기서 skb->mac_header가 설정되지 않은 상태로 남습니다.

__dev_queue_xmit()을 통해 전송되는 프레임의 경우 이는 무해합니다: 이 함수는 MAC 헤더를 조건 없이 초기화하기 때문입니다. 그러나 패킷 소켓의 PACKET_QDISC_BYPASS 경로는 dev_direct_xmit()를 사용하며, 이 함수는 MAC 헤더를 초기화하지 않습니다. 그 결과 프레임이 ndo_start_xmit()에 도달할 때 MAC 헤더가 설정되지 않은 상태가 됩니다. 전송 시 eth_hdr(skb)를 읽는 드라이버는 skb->head + (u16)~0을 역참조하게 되며, 이는 head로부터 약 64 KiB 떨어진 바깥 영역(out-of-bounds)에 대한 접근입니다. 이 문제는 커밋 f5089008f90c("macsec: do not read an unset MAC header in macsec_encrypt()")에서 하나의 소비자(consumer)를 위해 수정된 것과 동일한 클래스의 문제입니다.

packet_parse_headers()는 전송 경로에서만 실행되며, 여기서 skb->data는 패킷 소켓 유형과 관계없이 모든 패킷에 대해 L2 헤더의 시작점을 가리킵니다: SOCK_RAW와 SOCK_PACKET은 사용자가 제공한 헤더를 포함하고 있으며, SOCK_DGRAM은 dev_hard_header()가 생성하는 헤더를 갖습니다. __dev_queue_xmit()을 모방하여 MAC 헤더를 조건 없이 초기화함으로써, 프레임이 우회(bypass) 경로에서도 올바르게 고정되도록 합니다.

0sec(https://0sec.ai)에 의해 자동 소스 분석을 통해 발견되었으며, 소스를 대조하고 f5089008f90c의 macsec KASAN 보고서와 일치시켰습니다. 컴파일 테스트 완료.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

출처

Do you know our Splunk app?

Download it now for free!