🔍 CVE-2026-74667

7.8
CVSS Score
HIGH
2026-08-22
2026-10-16 20:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 net/packet 모듈에서 PACKET_QDISC_BYPASS 경로를 사용할 때 MAC 헤더가 초기화되지 않는 취약점이 발견되었습니다. 이로 인해 특정 네트워크 드라이버가 설정되지 않은 MAC 헤더를 참조할 경우, 메모리 헤더로부터 약 64KiB 떨어진 영역에 대한 경계 외 접근(Out-of-bounds access)이 발생할 수 있습니다.

💡 쉬운 설명

네트워크 데이터를 전송할 때 주소 정보가 담긴 부분이 제대로 정리되지 않아, 컴퓨터 메모리의 잘못된 위치를 읽게 되는 문제입니다. 이로 인해 시스템이 불안정해지거나 보안 문제가 생길 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: net/packet: reset the MAC header on the packet-socket transmit path packet_parse_headers() resets the MAC header only for a SOCK_RAW frame whose socket did not bind a protocol. A protocol-bound SOCK_RAW socket, any SOCK_DGRAM frame, and the legacy SOCK_PACKET path therefore leave skb->mac_header unset here. For frames sent via __dev_queue_xmit() this is harmless: it resets the MAC header unconditionally. But the packet-socket PACKET_QDISC_BYPASS path uses dev_direct_xmit(), which does not, so the frame reaches ndo_start_xmit() with the MAC header unset. A driver that reads eth_hdr(skb) on transmit then dereferences skb->head + (u16)~0, an out-of-bounds access ~64 KiB past the head -- the same class fixed for one consumer in commit f5089008f90c ("macsec: do not read an unset MAC header in macsec_encrypt()"). packet_parse_headers() runs only on the transmit path, where skb->data points at the start of the L2 header for every packet-socket type regardless of its length: SOCK_RAW and SOCK_PACKET carry a user-supplied header and SOCK_DGRAM has one built by dev_hard_header(). Reset the MAC header unconditionally, mirroring __dev_queue_xmit(), so the frame is anchored on the bypass path too. Found by 0sec (https://0sec.ai) using automated source analysis; verified against source and matched to the macsec KASAN report in f5089008f90c. Compile-tested.

📍 영향받는 시스템

Linux kernel (net/packet 모듈을 사용하는 시스템)

⚔️ 공격 벡터

PACKET_QDISC_BYPASS 경로를 사용하는 특수한 네트워크 패킷 전송을 통한 메모리 경계 외 접근 유도

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 packet_parse_headers() 함수가 MAC 헤더를 무조건 초기화하도록 수정해야 합니다.

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel