🔍 CVE-2025-38463

7.8
CVSS Score
HIGH
2025-07-25
2026-07-30 06:23
✅ 완료

🇰🇷 한글 설명

Linux 커널의 TCP 스택에서 skb의 남은 공간을 계산할 때 부호 있는 정수와 부호 없는 정수 간의 형 변환 오류가 발생합니다. 이로 인해 계산 결과가 매우 큰 양수로 처리되어 sk_forward_alloc 값이 오버플로될 수 있는 취약점입니다.

💡 쉬운 설명

데이터를 보낼 때 남은 공간을 계산하는 과정에서 수학적 계산 오류가 발생합니다. 이 오류를 이용하면 시스템의 메모리 관리 정보가 엉뚱한 값으로 바뀌어 시스템 오류를 일으킬 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: tcp: Correct signedness in skb remaining space calculation Syzkaller reported a bug [1] where sk->sk_forward_alloc can overflow. When we send data, if an skb exists at the tail of the write queue, the kernel will attempt to append the new data to that skb. However, the code that checks for available space in the skb is flawed: ''' copy = size_goal - skb->len ''' The types of the variables involved are: ''' copy: ssize_t (s64 on 64-bit systems) size_goal: int skb->len: unsigned int ''' Due to C's type promotion rules, the signed size_goal is converted to an unsigned int to match skb->len before the subtraction. The result is an unsigned int. When this unsigned int result is then assigned to the s64 copy variable, it is zero-extended, preserving its non-negative value. Consequently, copy is always >= 0. Assume we are sending 2GB of data and size_goal has been adjusted to a value smaller than skb->len. The subtraction will result in copy holding a very large positive integer. In the subsequent logic, this large value is used to update sk->sk_forward_alloc, which can easily cause it to overflow. The syzkaller reproducer uses TCP_REPAIR to reliably create this condition. However, this can also occur in real-world scenarios. The tcp_bound_to_half_wnd() function can also reduce size_goal to a small value. This would cause the subsequent tcp_wmem_schedule() to set sk->sk_forward_alloc to a value close to INT_MAX. Further memory allocation requests would then cause sk_forward_alloc to wrap around and become negative. [1]: https://syzkaller.appspot.com/bug?extid=de6565462ab540f50e47

📍 영향받는 시스템

Linux Kernel (TCP 스택 관련 구성 요소)

⚔️ 공격 벡터

TCP_REPAIR 기능을 사용하거나 특정 네트워크 트래픽 조건을 유도하여 sk_forward_alloc 오버플로 유발

🛡️ 대응 방법

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