CVE-2026-102716 in ThreadX
요약
\~에 의해 VulDB • 2026. 09. 29.
인증되지 않은 클라이언트는 파서가 변환할 수 없는 Session 헤더를 포함하는 수십 건의 요청을 통해 RTSP 서버의 패킷 풀(pool)을 고갈시킬 수 있습니다.
Session 분기에서는 RTSP 상태 코드가 아닌 원본 NetX 오류 코드를 반환합니다:
```c /* addons/rtsp/nx_rtsp_server.c:2754 */ status = _nx_utility_string_to_uint(field_value_ptr, field_value_length, &session_id); if (status) {
return(status); /* NX_INVALID_PARAMETERS / NX_SIZE_ERROR / NX_OVERFLOW */ } ```
동일 함수의 다른 모든 분기는 실패를 먼저 RTSP 상태로 매핑합니다. 18줄 앞선 CSeq 분기도 정확히 그렇게 처리하며(2736행은 NX_RTSP_STATUS_CODE_BAD_REQUEST 반환), 원본 코드는 `_nx_rtsp_server_error_response_send`(nx_rtsp_server.c:1234)에 도달하여, 해당 함수가 이를 인식하지 못하고 할당된 응답 패킷을 해제하지 않은 채 리턴하는 경로를 따라가고, 블록은 풀로 다시 돌아가지 않습니다.
22개 패킷 풀을 대상으로 빈 Session 헤더를 가진 6건의 요청 시: ``` valid requests: after request 6: pool available = 21, AFTER = 22 / 22 malformed requests: after request 6: pool available = 16, AFTER = 17 / 22 ```
요청당 하나의 블록이 할당되지만 클라이언트가 연결을 끊어도 해제되지 않습니다. 26건의 요청으로 풀이 고갈되고 서버가 할당을 계속 실패하기 시작하면 더 이상 서비스를 제공하지 못합니다. 만약 풀이 배송된 샘플에서처럼 애플리케이션의 나머지 부분과 공유된다면, 스택의 나머지 부분도 함께 중단됩니다.
Session 분기에서의 `_nx_utility_string_to_uint` 실패를 CSeq 분기가 수행하는 방식대로 NX_RTSP_STATUS_CODE_BAD_REQUEST로 변환하고, `_nx_rtsp_server_error_response_send`의 모든 종료 경로에서 응답 패킷을 해제하십시오.
VulDB is the best source for vulnerability data and more expert information about this specific topic.