🇰🇷 한글 설명
Linux 커널 kernfs의 드레이닝 가드에서 잘못된 경고(WARN)를 발생시키는 문제를 해결했습니다. active 참조의 break/unbreak 과정 중 일시적으로 발생하는 정상적인 상태를 오탐하여, panic_on_warn 설정 시 시스템이 패닉에 빠질 수 있었습니다. 이를 위해 kernfs_should_drain_open_files()의 WARN 검사를 제거했습니다.
💡 쉬운 설명
리눅스 커널 내부의 파일 시스템 관리 기능에서 정상적인 동작을 오류로 잘못 판단하는 문제가 있었습니다. 이 검사가 불필요하게 경고를 띄우고, 특정 설정에서는 시스템이 멈출 수 있어 검사를 제거했습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
kernfs: Relax constraint in draining guard
The active reference lifecycle provides the break/unbreak mechanism but
the active reference is not truly active after unbreak -- callers don't
use it afterwards but it's important for proper pairing of kn->active
counting. Assuming this mechanism is in place, the WARN check in
kernfs_should_drain_open_files() is too sensitive -- it may transiently
catch those (rightful) callers between
kernfs_unbreak_active_protection() and kernfs_put_active() as found out by Chen
Ridong:
kernfs_remove_by_name_ns kernfs_get_active // active=1
__kernfs_remove // active=0x80000002
kernfs_drain ...
wait_event
//waiting (active == 0x80000001)
kernfs_break_active_protection
// active = 0x80000001
// continue
kernfs_unbreak_active_protection
// active = 0x80000002
...
kernfs_should_drain_open_files
// warning occurs
kernfs_put_active
To avoid the false positives (mind panic_on_warn) remove the check altogether.
(This is meant as quick fix, I think active reference break/unbreak may be
simplified with larger rework.)
📍 영향받는 시스템
Linux 커널 kernfs를 사용하는 수정 이전 버전의 리눅스 커널 (패치된 stable 브랜치 기준 확인 필요)
⚔️ 공격 벡터
공격자가 직접 악용하기 어려운 내부 경쟁 상태 기반 오탐 문제이며, panic_on_warn이 활성화된 환경에서 서비스 거부(시스템 패닉)를 유발할 가능성이 있습니다.
🛡️ 대응 방법
커널을 CVE-2025-38282 수정이 포함된 최신 stable 버전으로 업데이트하고 재부팅합니다.
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지 또는 커널 stable 패치 목록과 비교하여, 수정이 포함된 버전인지 확인합니다. 패키지 정보가 없으면 배포판 가이드를 참고합니다.
uname -r && (dpkg -l linux-image-$(uname -r) 2>/dev/null || rpm -q kernel 2>/dev/null) | head -5