🔍 CVE-2025-37992

5.5
CVSS Score
MEDIUM
2025-05-26
2026-11-05 21:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 네트워크 스케줄러(net_sched)에서 ->change() 연산으로 큐 한도를 줄일 때 gso_skb 리스트를 비우지 않아 문제가 발생합니다. 이로 인해 sch->limit과 sch->q.qlen만 비교하면 NULL 포인터 역참조가 일어날 수 있습니다. 패치는 qdisc_dequeue_internal() 헬퍼를 도입해 codel, fq, fq_codel, fq_pie, hhf, pie의 ->change()에서 gso_skb와 메인 큐를 모두 정리하도록 합니다.

💡 쉬운 설명

네트워크 패킷을 줄 세워 두는 대기열 크기를 줄일 때, 일부 패킷이 별도 목록에 남아 프로그램이 잘못된 메모리를 참조할 수 있었습니다. 이 문제는 대기열 정리 로직을 보완해 해결되었습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: net_sched: Flush gso_skb list too during ->change() Previously, when reducing a qdisc's limit via the ->change() operation, only the main skb queue was trimmed, potentially leaving packets in the gso_skb list. This could result in NULL pointer dereference when we only check sch->limit against sch->q.qlen. This patch introduces a new helper, qdisc_dequeue_internal(), which ensures both the gso_skb list and the main queue are properly flushed when trimming excess packets. All relevant qdiscs (codel, fq, fq_codel, fq_pie, hhf, pie) are updated to use this helper in their ->change() routines.

📍 영향받는 시스템

패치 이전의 Linux 커널 (codel, fq, fq_codel, fq_pie, hhf, pie 큐잉 디시플린을 사용하는 시스템)

⚔️ 공격 벡터

권한이 있는 로컬 사용자가 큐잉 디시플린의 한도를 변경하는 조작을 통해 커널 충돌(NULL 포인터 역참조)을 유발할 수 있습니다.

🛡️ 대응 방법

배포판에서 제공하는 CVE-2025-37992 수정이 포함된 최신 커널로 업데이트하고 재부팅합니다.

🔧 검증 코드

출력된 커널 버전이 배포판의 수정 버전 이상인지 벤더 보안 공지와 대조하고, tc 결과로 현재 사용 중인 큐잉 디시플린 종류를 확인합니다.

Shell / Script
uname -r; tc qdisc show 2>/dev/null | head -n 5

📊 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