| 제목 | qinguoyi TinyWebServer >0.0.0 Heap-based Buffer Overflow |
|---|
| 설명 | TinyWebServer is a lightweight Web server framework for Linux written in C++, featuring a concurrent model with thread pool, non-blocking sockets and epoll, as well as support for HTTP request parsing, user authentication, and synchronous/asynchronous logging management.
This code is vulnerable to CWE-122 (Heap-based Buffer Overflow) as it uses unsafe string concatenation functions alongside fixed-size heap memory allocation. The do_request function processes user-provided username and password inputs extracted from HTTP POST requests. When handling user registration, the function allocates a fixed 200-byte heap buffer via malloc(), then uses strcpy() and strcat() to concatenate SQL template strings, wrapping characters, and unvalidated username/password inputs into this buffer.The issue is that no bounds checking is performed to verify if the total length of the concatenated SQL string (SQL template + wrapping characters + username + password) exceeds the 200-byte buffer size. Since usernames and passwords can each contain up to 99 bytes of user input (for a combined maximum of 198 bytes), the total length of the concatenated string easily exceeds the buffer’s capacity. This triggers a heap-based buffer overflow that corrupts metadata in adjacent heap memory, causing server crashes, and potentially enabling arbitrary code execution under specific conditions.
More details:https://github.com/qinguoyi/TinyWebServer/issues/319 |
|---|
| 원천 | ⚠️ https://github.com/qinguoyi/TinyWebServer/issues/319 |
|---|
| 사용자 | zzxzzb (UID 95450) |
|---|
| 제출 | 2026. 02. 11. AM 03:38 (8 개월 ago) |
|---|
| 모더레이션 | 2026. 02. 21. PM 04:18 (11 days later) |
|---|
| 상태 | 중복 |
|---|
| VulDB 항목 | 303338 [qinguoyi TinyWebServer 까지 1.0 /http/http_conn.cpp name/password 메모리 손상] |
|---|
| 포인트들 | 0 |
|---|