🔍 CVE-2026-89679

7.5
CVSS Score
HIGH
2026-09-11
2026-10-19 09:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 nfsd 구성 요소에서 nfsd4_setattr 함수가 특정 시간 위임 속성을 처리할 때 NULL 포인터를 역참조하여 커널 오류(Kernel Oops)를 유발하는 취약점입니다. 공격자가 특수한 NFSv4 상태 ID를 포함한 SETATTR 요청을 보내면 인증 없이도 시스템을 중단시킬 수 있습니다.

💡 쉬운 설명

해커가 특수한 명령어를 보내면 컴퓨터의 핵심 시스템인 커널이 잘못된 정보를 읽으려다 멈춰버리는 문제입니다. 별도의 로그인 없이도 원격에서 시스템을 다운시킬 수 있어 위험합니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: nfsd: fix null dereference in nfsd4_setattr for deleg timestamp attrs When a SETATTR request includes FATTR4_WORD2_TIME_DELEG_ACCESS or FATTR4_WORD2_TIME_DELEG_MODIFY in the attribute bitmap, nfsd4_setattr() sets deleg_attrs=true and calls nfs4_preprocess_stateid_op() to validate the stateid. If the client supplies the NFSv4 "one stateid" (all-0xFF bytes), check_special_stateids() returns nfs_ok without populating the output nfs4_stid pointer, because the special-stateid path in nfs4_preprocess_stateid_op() jumps to done: with s==NULL, and the "if (s)" block that would set *cstid is skipped. The local variable `st` remains NULL. Back in nfsd4_setattr(), the if (deleg_attrs) block then unconditionally dereferences st->sc_type (at offset 4 from NULL), causing a kernel oops. This is remotely triggerable by any NFSv4 client: send COMPOUND [PUTROOTFH, SETATTR(ONE_STATEID, {bmval2=FATTR4_WORD2_TIME_DELEG_ACCESS, ...})]. No authentication, delegation, or prior state is required. Fix by adding a NULL check before the dereference. A special stateid is not a delegation stateid, so the existing nfserr_bad_stateid return value is already correct; we only need to guard the pointer dereference itself.

📍 영향받는 시스템

NFSv4를 사용하는 Linux 커널 시스템

⚔️ 공격 벡터

인증되지 않은 원격 NFSv4 클라이언트가 특수한 COMPOUND 요청을 전송

🛡️ 대응 방법

커널 패치를 적용하여 nfsd4_setattr 함수 내 NULL 포인터 체크 로직을 추가

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 최신 패치 버전인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel