🔍 CVE-2024-50258

5.5
CVSS Score
MEDIUM
2024-11-09
2026-11-05 21:17
✅ 완료

🇰🇷 한글 설명

Linux 커널 네트워크 스택에서 gso_max_size 또는 gso_ipv4_max_size 값을 작게 설정하면 sk_dst_gso_max_size()에서 언더플로가 발생하여, 장치 한계보다 훨씬 큰 값이 세션에 적용됩니다. 이로 인해 tcp_write_xmit 경로에서 TSO 세그먼트 수가 0이 되고 BUG_ON 조건에 걸려 커널 패닉이 발생할 수 있습니다. 수정은 gso_max_size와 gso_ipv4_max_size의 최소값을 검사하는 것입니다.

💡 쉬운 설명

네트워크 장치의 대용량 전송 설정값을 아주 작게 주면 커널 내부 계산에서 오류가 생겨 시스템이 갑자기 멈출 수 있습니다. 해당 커널 업데이트를 적용하면 이 잘못된 설정이 걸러져 문제가 해결됩니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: net: fix crash when config small gso_max_size/gso_ipv4_max_size Config a small gso_max_size/gso_ipv4_max_size will lead to an underflow in sk_dst_gso_max_size(), which may trigger a BUG_ON crash, because sk->sk_gso_max_size would be much bigger than device limits. Call Trace: tcp_write_xmit tso_segs = tcp_init_tso_segs(skb, mss_now); tcp_set_skb_tso_segs tcp_skb_pcount_set // skb->len = 524288, mss_now = 8 // u16 tso_segs = 524288/8 = 65535 -> 0 tso_segs = DIV_ROUND_UP(skb->len, mss_now) BUG_ON(!tso_segs) Add check for the minimum value of gso_max_size and gso_ipv4_max_size.

📍 영향받는 시스템

패치 이전의 Linux 커널 버전 (gso_max_size 설정이 가능한 네트워크 장치를 사용하는 시스템)

⚔️ 공격 벡터

로컬 사용자 또는 관리자가 장치의 gso_max_size/gso_ipv4_max_size를 매우 작은 값으로 설정하여 커널 충돌(서비스 거부)을 유발

🛡️ 대응 방법

배포판 제공 최신 Linux 커널로 업데이트하고 재부팅하여 패치를 적용

🔧 검증 코드

출력된 커널 버전이 패치된 버전 이상인지 배포판 보안 공지로 확인하고, gso_max_size 값이 장치 기본값 수준(예: 수만 바이트 이상)인지 확인하며, 값이 비정상적으로 작다면 설정을 기본값으로 되돌립니다.

Shell / Script
uname -r && ip -d link show 2>/dev/null | grep -Ei 'gso_max_size|gso_ipv4_max_size'

📊 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