🇰🇷 한글 설명
Linux 커널의 bareudp 드라이버에서 NULL 포인터 역참조 취약점이 발견되었습니다. 장치가 중지된 상태에서 bareudp_fill_metadata_dst() 함수가 호출될 경우, 유효하지 않은 소켓 참조로 인해 커널 패닉이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터의 핵심 운영체제인 리눅스에서 특정 네트워크 장치가 꺼져 있을 때 잘못된 명령을 내리면 시스템이 멈추거나 충돌할 수 있는 문제입니다. 장치가 꺼져 있는지 확인하는 절차가 누락되어 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bareudp: fix NULL pointer dereference in bareudp_fill_metadata_dst()
bareudp_fill_metadata_dst() passes bareudp->sock to
udp_tunnel6_dst_lookup() in the IPv6 path without a NULL check.
The socket is only created in bareudp_open() and NULLed in
bareudp_stop(), so calling this function while the device is down
triggers a NULL dereference via sock->sk.
BUG: kernel NULL pointer dereference, address: 0000000000000018
RIP: 0010:udp_tunnel6_dst_lookup (net/ipv6/ip6_udp_tunnel.c:160)
Call Trace:
<TASK>
bareudp_fill_metadata_dst (drivers/net/bareudp.c:532)
do_execute_actions (net/openvswitch/actions.c:901)
ovs_execute_actions (net/openvswitch/actions.c:1589)
ovs_packet_cmd_execute (net/openvswitch/datapath.c:700)
genl_family_rcv_msg_doit (net/netlink/genetlink.c:1114)
genl_rcv_msg (net/netlink/genetlink.c:1209)
netlink_rcv_skb (net/netlink/af_netlink.c:2550)
</TASK>
Add a NULL check returning -ESHUTDOWN, consistent with the xmit paths
in the same driver.
📍 영향받는 시스템
Linux kernel (bareudp driver 사용 환경)
⚔️ 공격 벡터
네트워크 장치가 비활성화된 상태에서 특정 Netlink 메시지를 통해 함수를 호출하여 커널 오류 유도
🛡️ 대응 방법
bareudp_fill_metadata_dst() 함수 내에 소켓 상태를 확인하는 NULL 체크 로직이 포함된 최신 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 버전인지 배포판 보안 공지를 통해 확인하십시오.