🔍 CVE-2024-49948

5.5
CVSS Score
MEDIUM
2024-10-21
2026-10-15 01:19
✅ 완료

🇰🇷 한글 설명

Linux 커널의 qdisc_pkt_len_init() 함수에서 GSO 패킷 처리 시 충분한 검증이 부족하여 발생하는 취약점입니다. virtio_net_hdr_to_skb() 함수가 TCP 헤더를 완전히 검증하지 않아, 악의적인 사용자가 작은 gso_size를 가진 패킷을 제공하여 패킷 길이 계산에서 언더플로우를 유발할 수 있습니다.

💡 쉬운 설명

Linux 커널의 네트워크 패킷 처리에서 특정 유형의 패킷이 올바르게 검증되지 않는 문제입니다. 공격자가 조작된 네트워크 패킷을 보내 시스템의 메모리 손상 또는 서비스 거부를 유발할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: net: add more sanity checks to qdisc_pkt_len_init() One path takes care of SKB_GSO_DODGY, assuming skb->len is bigger than hdr_len. virtio_net_hdr_to_skb() does not fully dissect TCP headers, it only make sure it is at least 20 bytes. It is possible for an user to provide a malicious 'GSO' packet, total length of 80 bytes. - 20 bytes of IPv4 header - 60 bytes TCP header - a small gso_size like 8 virtio_net_hdr_to_skb() would declare this packet as a normal GSO packet, because it would see 40 bytes of payload, bigger than gso_size. We need to make detect this case to not underflow qdisc_skb_cb(skb)->pkt_len.

📍 영향받는 시스템

virtio_net 드라이버를 사용하는 모든 Linux 커널 버전 (가상화 환경, KVM, QEMU 등)

⚔️ 공격 벡터

로컬 사용자가 악의적으로 조작된 GSO 패킷을 전송하여 커널 패킷 길이 계산에서 언더플로우 유발

🛡️ 대응 방법

Linux 커널을 최신 버전으로 업데이트하여 qdisc_pkt_len_init() 함수의 추가 sanity check 적용

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 보안 패치가 포함된 최신 버전인지 확인하고, 필요시 커널 업그레이드 수행

Shell / Script
uname -a | grep -i linux && cat /proc/version | awk '{print $3}'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel