🔍 CVE-2026-89705

7.1
CVSS Score
HIGH
2026-09-11
2026-10-21 13:20
✅ 완료

🇰🇷 한글 설명

Linux 커널의 nfsd 모듈에서 rq_status_counter가 특정 경로에서 짝수로 복구되지 않는 취약점이 발견되었습니다. 이로 인해 상태 카운터가 홀수로 유지될 경우, 데이터 무결성을 확인하는 seq-lock 메커니즘이 제대로 작동하지 않아 메모리 경계를 벗어난 읽기 오류가 발생할 수 있습니다.

💡 쉬운 설명

데이터를 읽는 과정에서 데이터가 변경되었는지 확인하는 '체크 표시'가 제대로 초기화되지 않는 문제입니다. 이로 인해 시스템이 잘못된 데이터를 읽거나 프로그램이 비정상적으로 동작할 위험이 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: nfsd: restore rq_status_counter to even on all nfsd_dispatch() exit paths nfsd_dispatch() sets rq_status_counter to an odd value once a request has been decoded, and back to an even value once it has been fully processed, forming a seq-lock like protocol with the lockless reader in nfsd_nl_rpc_status_get_dumpit(). Only the fully successful path restored the counter to even. The cache-hit (RC_REPLY), drop (RC_DROPIT / RQ_DROPME) and encode-error paths all return after the odd-valued store without ever bringing the counter back to even. Once one of those paths is taken, rq_status_counter is left odd: the next request's decode ORs in 1 (still odd) and only a subsequent successful encode restores even. While stuck odd, the dumpit reader treats the rqstp fields as stable and its retry check compares against the same unchanging odd value, so it never detects concurrent mutation. This exposes actively mutating fields (e.g. args->ops / args->opcnt during compound decode and release) to the lockless reader, which can read past the end of the 8-element inline ops array. Add a helper that advances the counter to the next even value and call it on every return path that follows the odd-valued store. The decode-error path is left untouched as it is reached before the counter is set odd.

📍 영향받는 시스템

nfsd 모듈을 사용하는 Linux 커널 버전

⚔️ 공격 벡터

NFS 요청 처리 중 특정 오류 경로(캐시 히트, 드롭 등)를 유도하여 상태 카운터를 홀수로 유지시킨 후, 동시성 제어 메커니즘을 우회하여 메모리 데이터를 읽음

🛡️ 대응 방법

nfsd_dispatch() 함수의 모든 종료 경로에서 rq_status_counter를 짝수로 복구하도록 커널 패치를 적용하십시오.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 최신 보안 패치 버전인지 확인하십시오.

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:N/A:H

💻 영향받는 소프트웨어

Linux Kernel