Linux 커널에서는 다음 취약점이 해결되었습니다. ksmbd: smb2_get_ea() EA 정렬에서 범위를 벗어난 쓰기 수정 smb2_get_ea()는 이후 memset()을 통해 4바이트 정렬 패딩을 적용합니다. 각 EA 항목을 작성합니다. buf_free_len에 대한 경계 검사가 수행됩니다. memcpy 값 앞에 있지만 정렬 memset은 무조건 실행됩니다. 이후 남은 공간을 확인하지 않고. EA 값이 남은 버퍼를 정확히 채울 때 (buf_free_len == 0 값 빼기 후), 정렬 memse
Linux 커널에서는 다음 취약점이 해결되었습니다.
ksmbd: smb2_get_ea() EA 정렬에서 범위를 벗어난 쓰기 수정
smb2_get_ea()는 이후 memset()을 통해 4바이트 정렬 패딩을 적용합니다. 각 EA 항목을 작성합니다. buf_free_len에 대한 경계 검사가 수행됩니다. memcpy 값 앞에 있지만 정렬 memset은 무조건 실행됩니다. 이후 남은 공간을 확인하지 않고.
EA 값이 남은 버퍼를 정확히 채울 때 (buf_free_len == 0 값 빼기 후) 정렬 memset은 1-3 NUL 바이트를 씁니다. buf_free_len 경계를 지나갑니다. 응답이 있는 복합 요청에서 버퍼는 명령 간에 공유되며 첫 번째 명령(예: READ)은 대부분의 버퍼를 소비하고 QUERY_INFO에 대한 나머지를 남겨둡니다. EA 응답. 그런 다음 정렬 memset은 물리적인 memset를 덮어씁니다. kvmalloc을 인접한 커널 힙 메모리에 할당합니다.
buf_free_len을 보장하기 위해 정렬 memset 앞에 경계 검사를 추가합니다. 패딩 바이트를 수용할 수 있습니다.
이는 쇠고기2634f81f 커밋으로 수정된 것과 동일한 버그 패턴입니다("ksmbd: fix 복합 요청에 대한 get_file_all_info()의 잠재적 OOB") 및 커밋 fda9522ed6af("ksmbd: 복합에 대한 QUERY_INFO의 OOB 쓰기 수정 요청"), 둘 다 무조건 이전에 경계 검사를 추가했습니다. QUERY_INFO 응답 핸들러에 씁니다.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 98.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 98.00 |
VPI 공식 vpi-v1 기준