인증되지 않은 원격 공격자는 조작된 Sec-WebSocket-Key 헤더를 전송하여 Zephyr의 HTTP 서버 WebSocket 업그레이드 경로에서 메모리 손상을 유발할 수 있습니다. HTTP/1 헤더 파서는 입력 길이가 버퍼 크기에 도달할 때 NUL 종료를 보장하지 않는 제한된 복사본을 사용하여 헤더를 고정 크기 버퍼에 복사합니다. 업그레이드 처리 중에 버퍼는 로컬 스택 버퍼에 복사되고 strlen()으로 전달됩니다. NUL이 내부에 존재하지 않으면 strlen()은 스택 버퍼를 넘어 읽고 s
인증되지 않은 원격 공격자는 조작된 Sec-WebSocket-Key 헤더를 전송하여 Zephyr의 HTTP 서버 WebSocket 업그레이드 경로에서 메모리 손상을 유발할 수 있습니다. HTTP/1 헤더 파서는 입력 길이가 버퍼 크기에 도달할 때 NUL 종료를 보장하지 않는 제한된 복사본을 사용하여 헤더를 고정 크기 버퍼에 복사합니다. 업그레이드 처리 중에 버퍼는 로컬 스택 버퍼에 복사되고 strlen()으로 전달됩니다. NUL이 내부에 존재하지 않으면 strlen()은 스택 버퍼를 넘어 읽고 WebSocket 매직 문자열과의 후속 연결이 범위를 벗어날 수 있습니다. 이로 인해 스택 메모리에 대한 범위를 벗어난 읽기 및 쓰기가 발생하여 충돌(서비스 거부)이 발생하고 잠재적으로 코드 실행이 발생합니다. CONFIG_HTTP_SERVER_WEBSOCKET이 활성화되면 경로에 접근할 수 있습니다.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 98.00 |
| 악용 신호(PoC 존재) | ×1.20 |
| VPI | 100.00 |
VPI 공식 vpi-v1 기준