CVE-2023-52843 in Linux정보

요약

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

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

llc: mac 헤더를 읽기 전에 mac 길이 확인

LLC는 skb에 이더넷 헤더가 있는지 검증하지 않고 eth_hdr()를 사용하여 mac 헤더를 읽고 있습니다.

Syzbot은 tun 디바이스에서 llc_rcv로 진입할 수 있었습니다. Tun은 IFF_NO_PI 플래그 설정 시 tun_pi 헤더를 전달하는 등, mac 길이가 없고 사용자 구성 가능한 skb->protocol을 가진 패킷을 삽입할 수 있습니다.

BUG: KMSAN: uninit-value in llc_station_ac_send_test_r net/llc/llc_station.c:81 [inline]
BUG: KMSAN: uninit-value in llc_station_rcv+0x6fb/0x1290 net/llc/llc_station.c:111 llc_station_ac_send_test_r net/llc/llc_station.c:81 [inline]
llc_station_rcv+0x6fb/0x1290 net/llc/llc_station.c:111 llc_rcv+0xc5d/0x14a0 net/llc/llc_input.c:218 __netif_receive_skb_one_core net/core/dev.c:5523 [inline]
__netif_receive_skb+0x1a6/0x5a0 net/core/dev.c:5637 netif_receive_skb_internal net/core/dev.c:5723 [inline]
netif_receive_skb+0x58/0x660 net/core/dev.c:5782 tun_rx_batched+0x3ee/0x980 drivers/net/tun.c:1555 tun_get_user+0x54c5/0x69c0 drivers/net/tun.c:2002

net/llc 아래의 세 eth_hdr(skb) 호출 전에 mac_len 검사를 추가합니다.

include/net/llc_pdu.h에도 추가적인 사용 사례가 있습니다. 이들은 모두 skb->protocol == ETH_P_802_2 테스트에 의해 보호됩니다. 그러나 이 테스트는 해당 tun 시나리오를 방어하지 못합니다.

하지만 llc_fixup_skb에서 패치로 추가된 mac_len 검사는 간접적으로 이것들도 보호하게 됩니다. 이는 다른 LLC 코드보다 먼저 호출되는 llc_rcv에서 호출되기 때문입니다.

llc_rcv에 포괄적인 mac_len 체크만 추가하는 유혹이 있지만, 이더넷 헤더를 가정하지 않는 유효한 LLC 경로가 손상될 수 있는지 확신이 서지 않습니다. 원칙적으로 802.3이 아닌 프로토콜 위에서 802.2 LLC를 사용할 수도 있습니다. 아래 참조 커밋은 이전에 Token Ring 위에서도 사용되었음을 보여줍니다.

세 eth_hdr 사용 중 적어도 하나는 git 역사 시작 이전으로 거슬러 올라갑니다. 그러나 Syzbot이 유발한 것은 이 커밋에서 도입된 것입니다. 해당 커밋은 충분히 오래됨(2008년)으로써, 효과적으로 모든 안정화(stable) 커널에 이 수정 사항이 적용되어야 합니다.

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

출처

Do you want to use VulDB in your project?

Use the official API to access entries easily!