🔍 CVE-2024-35839

7.8
CVSS Score
HIGH
2024-05-17
2026-08-04 11:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 netfilter bridge 구성 요소에서 발생한 취약점으로, ARP 응답을 기다리는 동안 skb의 장치 정보가 일치하지 않아 발생할 수 있습니다. 이로 인해 잘못된 물리 장치 참조가 발생하여 시스템 충돌(Crash)을 유발할 수 있습니다.

💡 쉬운 설명

네트워크 장치 간에 데이터를 전달하는 과정에서 시스템이 엉뚱한 장치 정보를 참조하여 컴퓨터가 갑자기 멈추거나 꺼질 수 있는 문제입니다. 네트워크 설정이 복잡한 환경에서 발생할 가능성이 높습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: netfilter: bridge: replace physindev with physinif in nf_bridge_info An skb can be added to a neigh->arp_queue while waiting for an arp reply. Where original skb's skb->dev can be different to neigh's neigh->dev. For instance in case of bridging dnated skb from one veth to another, the skb would be added to a neigh->arp_queue of the bridge. As skb->dev can be reset back to nf_bridge->physindev and used, and as there is no explicit mechanism that prevents this physindev from been freed under us (for instance neigh_flush_dev doesn't cleanup skbs from different device's neigh queue) we can crash on e.g. this stack: arp_process neigh_update skb = __skb_dequeue(&neigh->arp_queue) neigh_resolve_output(..., skb) ... br_nf_dev_xmit br_nf_pre_routing_finish_bridge_slow skb->dev = nf_bridge->physindev br_handle_frame_finish Let's use plain ifindex instead of net_device link. To peek into the original net_device we will use dev_get_by_index_rcu(). Thus either we get device and are safe to use it or we don't get it and drop skb.

📍 영향받는 시스템

Linux Kernel (netfilter: bridge 구성 요소 포함 버전)

⚔️ 공격 벡터

네트워크 패킷 조작을 통해 ARP 큐에 비정상적인 skb를 삽입하여 커널 패닉 유도

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.

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