🔍 CVE-2026-89630

9.1
CVSS Score
CRITICAL
2026-09-11
2026-10-19 09:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 SMB 클라이언트에서 is_valid_oplock_break() 함수 내 data_offset 경계 검사 로직에 오류가 발견되었습니다. 이전 커밋에서 헤더 처리 방식이 변경되면서 경계값 계산이 0이 되어, 데이터 오버플로우를 방지하는 검증 절차가 무력화되었습니다.

💡 쉬운 설명

컴퓨터가 데이터를 주고받을 때 데이터의 크기를 확인하는 과정에서 계산 오류가 발생했습니다. 이 오류를 이용하면 공격자가 허용된 범위를 넘어서는 잘못된 데이터를 보내 시스템에 문제를 일으킬 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: smb: client: restore the data_offset bound in is_valid_oplock_break() Commit 83bfbd0bb902 ("cifs: Remove the RFC1002 header from smb_hdr") changed the quantity this bound is measured against. It used to be srv->total_read minus the 4-byte RFC1002 preamble that total_read then included, so it was the SMB message length. The same commit stopped counting the preamble, and the mechanical substitution to srv->total_read - srv->pdu_size left an expression that is identically zero: standard_receive3() reads MID_HEADER_SIZE() bytes and then exactly pdu_length - MID_HEADER_SIZE() more, adding both to total_read. len is therefore 0, the subtraction below it wraps, and no __u32 DataOffset can exceed the result, so the check from commit 097f5863b1a0 ("cifs: read overflow in is_valid_oplock_break()") no longer rejects anything. Use total_read, which is now the message length on its own.

📍 영향받는 시스템

Linux Kernel (SMB client module 포함 버전)

⚔️ 공격 벡터

조작된 SMB oplock break 요청을 전송하여 데이터 오버플로우 유도

🛡️ 대응 방법

SMB 관련 패치가 적용된 최신 Linux 커널로 업데이트

🔧 검증 코드

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

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel