CVE-2026-99109 in Linux정보

요약

\~에 의해 VulDB • 2026. 10. 28.

리눅스 커널에서 다음 취약점이 해결되었습니다:

smb: 클라이언트: 요청 버퍼에 맞지 않는 SetEA 요청 거부

CIFSSMBSetEA()는 호출자의 확장 속성(extended attribute) 값을 SMB 요청 버퍼로 복사할 때, 해당 값이 버퍼에 맞는지를 확인하지 않습니다. 소스 코드에는 이 요구사항이 명시되어 있었지만 구현되지 않았습니다:

/*BB add length check to see if it would fit in negotiated SMB buffer size BB */ /* if (ea_value_len > buffer_size - 512 (enough for header)) */ if (ea_value_len) memcpy(parm_data->list.name + name_len + 1, ea_value, ea_value_len);

입력 시 적용되는 유일한 경계 조건은 cifs_xattr_set()에 있습니다:

#define MAX_EA_VALUE_SIZE CIFSMaxBufSize ... if (size > MAX_EA_VALUE_SIZE)

CIFSMaxBufSize는 버퍼의 전체 페이로드 용량이므로, 정확히 그 크기의 값은 SMB 헤더, TRANS2 파라미터 블록, fealist 헤더 및 EA 이름(동일한 객체 내에서 앞에 작성됨)을 위한 공간이 전혀 남지 않습니다.

SendReceive()는 이미 이 길이에 대해 올바른 제한을 강제합니다:

if (in_len > CIFSMaxBufSize + MAX_CIFS_HDR_SIZE)

하지만 이는 복사 작업 이후에 호출됩니다. 권한 없는 setxattr(2)가 250바이트 이름과 16384바이트 값을 사용하여 SMB1 마운트에서 실행되면, 16588바이트 크기의 cifs_request 객체 시작점으로부터 345바이트 지점에서부터 16384바이트가 작성되어 최종적으로 그 끝이 해당 객체를 141바이트 넘게 벗어납니다:

BUG: KASAN: slab-out-of-bounds in CIFSSMBSetEA+0xabc/0xde0 Write of size 16384 at addr ffff888003aa0159 by task init/68 __asan_memcpy+0x3c/0x60 CIFSSMBSetEA+0xabc/0xde0 cifs_xattr_set+0xd3a/0xff0 __vfs_setxattr+0x13e/0x1a0 The buggy address is located 345 bytes inside of allocated 16588-byte region

복사 작업 이후가 아니라 복사 전에 조립된 요청에 SendReceive()의 제한을 적용하고, 합계가 테스트되기 전에 오버플로우(wrap)할 수 없도록 바이트 카운터 범위를 확장합니다.

byte_count는 U16_MAX와 비교되는데, 이는 16비트 pSMB->ByteCount에 저장되기 때문입니다. 모듈 로딩 시 CIFSMaxBufSize가 최대 1024*127까지 설정될 수 있으므로 이 상황이 발생할 수 있습니다. EA 이름이 5바이트이고 값이 65521바이트인 경우, count는 정확히 U16_MAX가 되지만 byte_count는 65556이 됩니다. 이때 cpu_to_le16()은 이를 20으로 절단(truncate)하여 ByteCount가 실제 길이와 일치하지 않는 프레임을 전송하게 됩니다. byte_count를 테스트하는 것은 count도 커버하는데, 이는 byte_count가 두 값 중 더 크고 count의 유일한 16비트 소비자가 이 지점 이후에 작성되기 때문입니다.

check_add_overflow()는 total_len이 보고되기 전에 할당되도록 먼저 평가됩니다.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

책임이 있는

Linux

예약하다

2026. 09. 25.

모더레이션

수락

항목

VDB-427843

EPSS

0.00000

출처

Interested in the pricing of exploits?

See the underground prices here!