🔍 CVE-2026-89633

9.8
CVSS Score
CRITICAL
2026-09-11
2026-10-21 13:20
✅ 완료

🇰🇷 한글 설명

Linux 커널의 SMB 클라이언트 모듈 내 coalesce_t2() 함수에서 검증되지 않은 DataOffset 필드로 인해 발생하는 OOB(Out-of-Bounds) 읽기/쓰기 취약점입니다. 서버가 제공하는 DataOffset 값이 버퍼 경계를 확인하지 않고 직접 포인터 계산에 사용되어, 메모리의 헤더 영역을 덮어쓰거나 버퍼 범위를 벗어난 읽기 및 쓰기가 가능합니다.

💡 쉬운 설명

서버가 보내는 잘못된 위치 정보(DataOffset)를 컴퓨터가 그대로 믿고 메모리를 읽거나 써서 발생하는 보안 문제입니다. 이로 인해 시스템의 중요한 데이터가 망가지거나 해커가 시스템 권한을 탈취할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: smb: client: fix OOB read/write from unvalidated DataOffset in coalesce_t2() coalesce_t2() computes data pointers directly from server-supplied DataOffset fields with no validation against buffer bounds: data_area_of_tgt = (char *)&pSMBt->hdr.Protocol + get_unaligned_le16(&pSMBt->t2_rsp.DataOffset); data_area_of_src = (char *)&pSMBs->hdr.Protocol + get_unaligned_le16(&pSMBs->t2_rsp.DataOffset); data_area_of_tgt += total_in_tgt; ... memcpy(data_area_of_tgt, data_area_of_src, total_in_src); A small DataOffset can push a pointer below the actual byte area, overwriting header fields; a large one can push it past the buffer end, causing out-of-bounds heap reads (source) or writes (target). The BCC overflow guard does not prevent this: BCC reflects how much data is present, while DataOffset controls where in the buffer it starts. The "validate target area" comment present since the function was first written in 2005 was a placeholder that was never implemented. Add lower- and upper-bound checks for both data pointers before the memcpy, and before any target header fields are modified.

📍 영향받는 시스템

Linux Kernel (SMB client module 사용 시스템)

⚔️ 공격 벡터

악의적인 SMB 서버가 조작된 DataOffset 값을 포함한 응답을 클라이언트에 전송하여 공격

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 DataOffset 경계 검사 로직을 적용해야 함

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 취약점이 해결된 최신 패치 버전인지 확인합니다.

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

💻 영향받는 소프트웨어

Linux Kernel