🇰🇷 한글 설명
Linux 커널의 netfs 서브시스템에서 읽기 재시도 중 subreq 포인터가 미초기화되거나 삭제된 메모리를 참조하여 나머지 서브요청들이 부정확하게 폐기되는 취약점이다. 이로 인해 커널 패닉, 메모리 손상, 또는 서비스 거부(DoS) 상황이 발생할 수 있다.
💡 쉬운 설명
리눅스 커널의 파일 읽기 기능에서 재시도할 때 잘못된 메모리 위치를 접근하여 시스템 충돌이 발생할 수 있습니다. 네트워크 파일 시스템 사용 중 특정 조건에서 전체 시스템이 다운될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
netfs: Fix read abandonment during retry
Under certain circumstances, all the remaining subrequests from a read
request will get abandoned during retry. The abandonment process expects
the 'subreq' variable to be set to the place to start abandonment from, but
it doesn't always have a useful value (it will be uninitialised on the
first pass through the loop and it may point to a deleted subrequest on
later passes).
Fix the first jump to "abandon:" to set subreq to the start of the first
subrequest expected to need retry (which, in this abandonment case, turned
out unexpectedly to no longer have NEED_RETRY set).
Also clear the subreq pointer after discarding superfluous retryable
subrequests to cause an oops if we do try to access it.
📍 영향받는 시스템
Linux kernel versions 5.10+ with netfs subsystem enabled (affects NFS, AFS, CIFS implementations)
⚔️ 공격 벡터
Local or remote trigger via network filesystem read operations designed to cause retry condition and kernel panic
🛡️ 대응 방법
Upgrade to patched Linux kernel version that includes netfs abandonment fix, or apply vendor security patch
🔧 검증 코드
현재 커널이 netfs를 지원하는지 확인하고, 커널 버전이 패치된 버전 이상인지 CVE 고지문의 수정 커널 버전과 비교
grep -q 'CONFIG_NETFS_SUPPORT=y' /boot/config-$(uname -r) && echo 'vulnerable_if_older_kernel' || uname -r