🇰🇷 한글 설명
Win32용 Delphi 기반 웹 서버인 TinyWeb 2.02 미만 버전에서 메모리 고갈로 인한 서비스 거부(DoS) 취약점이 발견되었습니다. 인증되지 않은 원격 공격자가 매우 큰 Content-Length 헤더를 포함한 HTTP POST 요청을 보내면, 서버가 제한 없이 메모리를 할당하여 시스템이 충돌할 수 있습니다.
💡 쉬운 설명
공격자가 아주 큰 데이터를 보내겠다고 거짓말을 하면 서버가 그 데이터를 다 받으려고 메모리를 전부 써버려 서버가 멈추는 문제입니다. 이로 인해 웹사이트 접속이 불가능해질 수 있습니다.
🇺🇸 원문 (English)
TinyWeb is a web server (HTTP, HTTPS) written in Delphi for Win32. Versions prior to version 2.02 have a Denial of Service (DoS) vulnerability via memory exhaustion. Unauthenticated remote attackers can send an HTTP POST request to the server with an exceptionally large `Content-Length` header (e.g., `2147483647`). The server continuously allocates memory for the request body (`EntityBody`) while streaming the payload without enforcing any maximum limit, leading to all available memory being consumed and causing the server to crash. Anyone hosting services using TinyWeb is impacted. Version 2.02 fixes the issue. The patch introduces a `CMaxEntityBodySize` limit (set to 10MB) for the maximum size of accepted payloads. As a temporary workaround if upgrading is not immediately possible, consider placing the server behind a Web Application Firewall (WAF) or reverse proxy (like nginx or Cloudflare) configured to explicitly limit the maximum allowed HTTP request body size (e.g., `client_max_body_size` in nginx).
📍 영향받는 시스템
TinyWeb version prior to 2.02
⚔️ 공격 벡터
Unauthenticated remote attacker sending an HTTP POST request with an exceptionally large Content-Length header
🛡️ 대응 방법
TinyWeb을 2.02 버전으로 업그레이드하거나, WAF 또는 리버스 프록시(nginx 등)를 통해 HTTP 요청 본문 크기를 제한하십시오.
🔧 검증 코드
응답 헤더의 Server 항목을 확인하여 TinyWeb 버전 정보를 파악하고 2.02 미만인지 확인합니다.
curl -I http://<target_ip> | grep -i 'Server'