ninenines cowlib(cow_http_te 모듈)의 통제되지 않은 리소스 소비 취약점으로 인해 과도한 할당이 허용됩니다. cow_http_te의 청크 전송 인코딩 파서는 청크 크기 필드에서 무제한의 16진수를 허용합니다. 각 숫자는 큰 숫자 곱셈(Len * 16 + 숫자)을 발생시키므로 N개의 16진수를 구문 분석하려면 O(N²) CPU 작업과 O(N) 메모리가 필요합니다. 또한 입력이 드립피드되면 파서는 각 부분 읽기에서 누적된 길이를 버리고 재개 시 0부터 다시 시작합니다.
ninenines cowlib(cow_http_te 모듈)의 통제되지 않은 리소스 소비 취약점으로 인해 과도한 할당이 허용됩니다.
cow_http_te의 청크 전송 인코딩 파서는 청크 크기 필드에서 무제한의 16진수를 허용합니다. 각 숫자는 큰 숫자 곱셈(Len * 16 + 숫자)을 발생시키므로 N개의 16진수를 구문 분석하려면 O(N²) CPU 작업과 O(N) 메모리가 필요합니다. 또한 입력이 드립피드되면 파서는 각 부분 읽기에서 누적된 길이를 버리고 재개 시 0부터 다시 시작하여 비용을 O(N³)로 높입니다. 인증되지 않은 원격 공격자는 Transfer-Encoding: 청크 및 매우 긴 청크 크기 16진수 문자열을 사용하여 HTTP/1.1 요청을 보내 CPU 소모 및 메모리 증폭을 통해 서비스 거부를 유발함으로써 이를 악용할 수 있습니다.
이 취약점은 프로그램 파일 src/cow_http_te.erl 및 프로그램 루틴 cow_http_te:stream_chunked/2, cow_http_te:chunked_len/4와 연관되어 있습니다.
이 문제는 cowlib: 0.6.0부터 2.16.1까지 영향을 미칩니다.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 87.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 87.00 |
VPI 공식 vpi-v1 기준