🔍 CVE-2025-39847

5.5
CVSS Score
MEDIUM
2025-09-19
2026-11-05 22:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 pad_compress_skb() 함수에서 메모리 할당 실패 시 기존 소켓 버퍼(skb)를 해제하지 않아 발생하는 메모리 누수 취약점입니다. 호출자는 NULL 반환을 감지하고 skb를 해제하려 하지만, 이미 참조가 손실되어 메모리 누수가 발생합니다.

💡 쉬운 설명

Linux 커널의 패킷 압축 기능에서 메모리를 요청했을 때 할당에 실패하면 기존 메모리가 제대로 정리되지 않습니다. 반복되면 시스템 메모리가 점점 줄어들어 성능 저하 또는 시스템 중단을 초래할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: ppp: fix memory leak in pad_compress_skb If alloc_skb() fails in pad_compress_skb(), it returns NULL without releasing the old skb. The caller does: skb = pad_compress_skb(ppp, skb); if (!skb) goto drop; drop: kfree_skb(skb); When pad_compress_skb() returns NULL, the reference to the old skb is lost and kfree_skb(skb) ends up doing nothing, leading to a memory leak. Align pad_compress_skb() semantics with realloc(): only free the old skb if allocation and compression succeed. At the call site, use the new_skb variable so the original skb is not lost when pad_compress_skb() fails.

📍 영향받는 시스템

Linux kernel PPP (Point-to-Point Protocol) module

⚔️ 공격 벡터

로컬 공격자가 PPP 압축을 활용한 메모리 누수 반복 유발

🛡️ 대응 방법

Linux 커널을 최신 패치 버전으로 업데이트하여 pad_compress_skb() 함수 수정 적용

🔧 검증 코드

커널 버전을 확인하고 공식 Linux CVE 데이터베이스에서 해당 커널 버전의 패치 적용 여부를 확인하거나, 배포판 보안 공지에서 커널 업데이트 가용성을 확인합니다.

Shell / Script
uname -r | grep -E '^[0-9]+\.[0-9]+\.[0-9]+' && grep -i 'pad_compress_skb' /proc/kallsyms 2>/dev/null || echo 'PPP module check'

📊 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