Lucene search
+L

lighttpd 2.0.0 Out-Of-Bounds Access

🗓️ 04 Sep 2026 00:00:00Reported by Ron EType 
packetstorm
 packetstorm
🔗 packetstorm.news👁 8 Views

Signedness OOB in lighttpd2 2.0.0 li_chunkqueue_append_mem() causes stack buffer overflow.

Code
*Description:*
    A signedness vulnerability exists in the li_chunkqueue_append_mem()
    function in lighttpd2, where a signed length parameter (gssize len) is not
    properly validated before being used in memory operations that expect an
    unsigned size. When a negative length value is supplied, it is implicitly
    converted to a large unsigned value, resulting in an out-of-bounds memory
    read and a stack buffer overflow.
    
    *Affected Component:*
    
       - Project: lighttpd2
       - File: src/main/chunk.c
       - Function: li_chunkqueue_append_mem()
       - Affected versions: lighttpd2 2.0.0 (and likely earlier versions in the
       2.x series)
    
    *Attack Vector:*
    
       - Local / Internal API misuse
       - Potential remote reachability if malformed HTTP request bodies,
       chunked transfer decoding, or backend responses result in negative length
       calculations that reach li_chunkqueue_append_mem().
    
    *Technical Details:*
    *The vulnerable function is defined as:*
    void li_chunkqueue_append_mem(liChunkQueue *cq, const void *mem, gssize
    len);
    *Inside the function, len is only checked for zero:*
    if (!len) return; Negative values are not rejected. When a negative gssize
    value (e.g., -1) is passed, it is later used in calls that treat the value
    as an unsigned size (gsize), resulting in a large length such as
    4294967295. This causes unsafe memory operations via g_array_append_vals()
    and ultimately memcpy(), leading to an out-of-bounds memory access.
    
    *Proof of Concept:*
    A minimal reproducer demonstrates the issue:
    
        /* Trigger signedness bug */
        li_chunkqueue_append_mem(cq, buf, -1);
    
    # ./chunk
    
    *Output:*
    
    =================================================================
    ==175485==ERROR: AddressSanitizer: stack-buffer-overflow on address
    0xfbff9cf00028 at pc 0xaaaae7908080 bp 0xffffc50ec5a0 sp 0xffffc50ebd90
    READ of size 4294967295 at 0xfbff9cf00028 thread T0
        #0 0xaaaae790807c in memcpy (/root/lighttpd2/chunk+0xd807c) (BuildId:
    5f4fb5aa4dacb9c02ca0afc9864a810d23e3629a)
        #1 0xffff9fa9651c in g_array_append_vals
    (/lib/aarch64-linux-gnu/libglib-2.0.so.0+0x2651c) (BuildId:
    ee842437cbb995404bc6e4a9a832449be696142c)
        #2 0xffff9fdf2228 in li_chunkqueue_append_mem
    /root/lighttpd2/build-asan/../src/main/chunk.c:562:2
        #3 0xaaaae794bb1c in main /root/lighttpd2/chunkqueue.c:9:5
        #4 0xffff9f752598 in __libc_start_call_main
    csu/../sysdeps/nptl/libc_start_call_main.h:58:16
        #5 0xffff9f752678 in __libc_start_main csu/../csu/libc-start.c:360:3
        #6 0xaaaae7864fac in _start (/root/lighttpd2/asan_test+0x34fac)
    (BuildId:
    
    Ron Edgerson
    Vulnerability Researcher & Exploit Developer
    
    CVE Research | Binary Exploitation | Application & Systems Security
    Responsible Disclosure • Proof-of-Concept Development
    
    🌐 https://github.com/ob1sec
    🔗 https://www.linkedin.com/in/ronedgerson1
    <https://linkedin.com/in/yourhandle>

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation