🔍 CVE-2025-37894

9.8
CVSS Score
CRITICAL
2025-05-20
2026-07-30 06:22
✅ 완료

🇰🇷 한글 설명

리눅스 커널의 네트워크 스택에서 TCP_TIME_WAIT 상태의 소켓을 처리할 때 잘못된 함수를 호출하여 발생하는 취약점입니다. __inet_lookup_established() 함수가 inet_timewait_sock 포인터를 반환할 때 sock_put()을 호출하면 메모리 접근 오류로 인해 시스템이 충돌(Crash)할 수 있습니다.

💡 쉬운 설명

네트워크 연결이 종료되는 과정에서 컴퓨터가 잘못된 메모리 주소를 참조하여 시스템이 갑자기 멈추거나 꺼질 수 있는 문제입니다. 이는 네트워크 통신 중에 발생할 수 있는 심각한 오류입니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: net: use sock_gen_put() when sk_state is TCP_TIME_WAIT It is possible for a pointer of type struct inet_timewait_sock to be returned from the functions __inet_lookup_established() and __inet6_lookup_established(). This can cause a crash when the returned pointer is of type struct inet_timewait_sock and sock_put() is called on it. The following is a crash call stack that shows sk->sk_wmem_alloc being accessed in sk_free() during the call to sock_put() on a struct inet_timewait_sock pointer. To avoid this issue, use sock_gen_put() instead of sock_put() when sk->sk_state is TCP_TIME_WAIT. mrdump.ko ipanic() + 120 vmlinux notifier_call_chain(nr_to_call=-1, nr_calls=0) + 132 vmlinux atomic_notifier_call_chain(val=0) + 56 vmlinux panic() + 344 vmlinux add_taint() + 164 vmlinux end_report() + 136 vmlinux kasan_report(size=0) + 236 vmlinux report_tag_fault() + 16 vmlinux do_tag_recovery() + 16 vmlinux __do_kernel_fault() + 88 vmlinux do_bad_area() + 28 vmlinux do_tag_check_fault() + 60 vmlinux do_mem_abort() + 80 vmlinux el1_abort() + 56 vmlinux el1h_64_sync_handler() + 124 vmlinux > 0xFFFFFFC080011294() vmlinux __lse_atomic_fetch_add_release(v=0xF2FFFF82A896087C) vmlinux __lse_atomic_fetch_sub_release(v=0xF2FFFF82A896087C) vmlinux arch_atomic_fetch_sub_release(i=1, v=0xF2FFFF82A896087C) + 8 vmlinux raw_atomic_fetch_sub_release(i=1, v=0xF2FFFF82A896087C) + 8 vmlinux atomic_fetch_sub_release(i=1, v=0xF2FFFF82A896087C) + 8 vmlinux __refcount_sub_and_test(i=1, r=0xF2FFFF82A896087C, oldp=0) + 8 vmlinux __refcount_dec_and_test(r=0xF2FFFF82A896087C, oldp=0) + 8 vmlinux refcount_dec_and_test(r=0xF2FFFF82A896087C) + 8 vmlinux sk_free(sk=0xF2FFFF82A8960700) + 28 vmlinux sock_put() + 48 vmlinux tcp6_check_fraglist_gro() + 236 vmlinux tcp6_gro_receive() + 624 vmlinux ipv6_gro_receive() + 912 vmlinux dev_gro_receive() + 1116 vmlinux napi_gro_receive() + 196 ccmni.ko ccmni_rx_callback() + 208 ccmni.ko ccmni_queue_recv_skb() + 388 ccci_dpmaif.ko dpmaif_rxq_push_thread() + 1088 vmlinux kthread() + 268 vmlinux 0xFFFFFFC08001F30C()

📍 영향받는 시스템

Linux Kernel (TCP_TIME_WAIT 상태를 처리하는 네트워크 스택 포함 버전)

⚔️ 공격 벡터

네트워크 패킷을 조작하여 특정 TCP 연결 상태를 유도함으로써 커널 패닉을 유발하는 DoS(서비스 거부) 공격

🛡️ 대응 방법

TCP_TIME_WAIT 상태의 소켓에 대해 sock_put() 대신 sock_gen_put()을 사용하도록 커널을 최신 패치 버전으로 업데이트

🔧 검증 코드

출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 보안 패치 버전인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel