GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

GCVE-1988-2026-0177

Vulnerability from gna-1988 – Published: 2026-09-08 07:25 – Updated: 2026-09-08 07:25
VLAI
Title
lighttpd2 Signedness Error in li_chunkqueue_append_mem() Leads to Out-of-Bounds Memory Access
Summary
*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> _______________________________________________ Sent through the Full Disclosure mailing list https://nmap.org/mailman/listinfo/fulldisclosure Web Archives & RSS: https://seclists.org/fulldisclosure/
Severity
No CVSS data available.
Impacted products
Vendor Product Version CPE status
unknown lighttpd2 Signedness Error Affected: unknown
guessed Create a notification for this product.
Credits

{
  "containers": {
    "cna": {
      "affected": [
        {
          "product": "lighttpd2 Signedness Error",
          "vendor": "unknown",
          "versions": [
            {
              "status": "affected",
              "version": "unknown"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "Ron E"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "*Description:*\nA signedness vulnerability exists in the li_chunkqueue_append_mem()\nfunction in lighttpd2, where a signed length parameter (gssize len) is not\nproperly validated before being used in memory operations that expect an\nunsigned size. When a negative length value is supplied, it is implicitly\nconverted to a large unsigned value, resulting in an out-of-bounds memory\nread and a stack buffer overflow.\n\n*Affected Component:*\n\n   - Project: lighttpd2\n   - File: src/main/chunk.c\n   - Function: li_chunkqueue_append_mem()\n   - Affected versions: lighttpd2 2.0.0 (and likely earlier versions in the\n   2.x series)\n\n*Attack Vector:*\n\n   - Local / Internal API misuse\n   - Potential remote reachability if malformed HTTP request bodies,\n   chunked transfer decoding, or backend responses result in negative length\n   calculations that reach li_chunkqueue_append_mem().\n\n*Technical Details:*\n*The vulnerable function is defined as:*\nvoid li_chunkqueue_append_mem(liChunkQueue *cq, const void *mem, gssize\nlen);\n*Inside the function, len is only checked for zero:*\nif (!len) return; Negative values are not rejected. When a negative gssize\nvalue (e.g., -1) is passed, it is later used in calls that treat the value\nas an unsigned size (gsize), resulting in a large length such as\n4294967295. This causes unsafe memory operations via g_array_append_vals()\nand ultimately memcpy(), leading to an out-of-bounds memory access.\n\n*Proof of Concept:*\nA minimal reproducer demonstrates the issue:\n\n    /* Trigger signedness bug */\n    li_chunkqueue_append_mem(cq, buf, -1);\n\n# ./chunk\n\n*Output:*\n\n=================================================================\n==175485==ERROR: AddressSanitizer: stack-buffer-overflow on address\n0xfbff9cf00028 at pc 0xaaaae7908080 bp 0xffffc50ec5a0 sp 0xffffc50ebd90\nREAD of size 4294967295 at 0xfbff9cf00028 thread T0\n    #0 0xaaaae790807c in memcpy (/root/lighttpd2/chunk+0xd807c) (BuildId:\n5f4fb5aa4dacb9c02ca0afc9864a810d23e3629a)\n    #1 0xffff9fa9651c in g_array_append_vals\n(/lib/aarch64-linux-gnu/libglib-2.0.so.0+0x2651c) (BuildId:\nee842437cbb995404bc6e4a9a832449be696142c)\n    #2 0xffff9fdf2228 in li_chunkqueue_append_mem\n/root/lighttpd2/build-asan/../src/main/chunk.c:562:2\n    #3 0xaaaae794bb1c in main /root/lighttpd2/chunkqueue.c:9:5\n    #4 0xffff9f752598 in __libc_start_call_main\ncsu/../sysdeps/nptl/libc_start_call_main.h:58:16\n    #5 0xffff9f752678 in __libc_start_main csu/../csu/libc-start.c:360:3\n    #6 0xaaaae7864fac in _start (/root/lighttpd2/asan_test+0x34fac)\n(BuildId:\n\nRon Edgerson\nVulnerability Researcher \u0026 Exploit Developer\n\nCVE Research | Binary Exploitation | Application \u0026 Systems Security\nResponsible Disclosure \u2022 Proof-of-Concept Development\n\n\ud83c\udf10 https://github.com/ob1sec\n\ud83d\udd17 https://www.linkedin.com/in/ronedgerson1\n\u003chttps://linkedin.com/in/yourhandle\u003e\n_______________________________________________\nSent through the Full Disclosure mailing list\nhttps://nmap.org/mailman/listinfo/fulldisclosure\nWeb Archives \u0026 RSS: https://seclists.org/fulldisclosure/"
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-08T07:25:42Z",
        "orgId": "4e2abfbf-4a2a-4b76-a4e0-d77c18ba156c",
        "shortName": "VULNARCHIVE"
      },
      "references": [
        {
          "tags": [
            "technical-description"
          ],
          "url": "https://vuln.freearchive.org/archive/full-disclosure/2026/Sep/14"
        },
        {
          "tags": [
            "technical-description"
          ],
          "url": "https://seclists.org/fulldisclosure/2026/Sep/14"
        },
        {
          "url": "https://github.com/ob1sec"
        },
        {
          "url": "https://linkedin.com/in/yourhandle"
        },
        {
          "url": "https://nmap.org/mailman/listinfo/fulldisclosure"
        },
        {
          "url": "https://seclists.org/fulldisclosure/"
        },
        {
          "url": "https://www.linkedin.com/in/ronedgerson1"
        }
      ],
      "source": {
        "defect": [
          "https://seclists.org/fulldisclosure/2026/Sep/14"
        ],
        "discovery": "EXTERNAL"
      },
      "title": "lighttpd2 Signedness Error in li_chunkqueue_append_mem() Leads to Out-of-Bounds Memory Access",
      "x_gcve": [
        {
          "recordType": "advisory",
          "relationships": [],
          "vulnId": "GCVE-1988-2026-0177",
          "x_vulnarchive": {
            "archiveUrl": "https://vuln.freearchive.org/archive/full-disclosure/2026/Sep/14",
            "automated": true,
            "contentSha256": "ce9ca537fc93737be7e2bf711a3fbdcd21411bd5cdcf6fd859abe2c6b4ad4348",
            "evidenceScore": 7,
            "messageId": "",
            "originalUrl": "https://seclists.org/fulldisclosure/2026/Sep/14",
            "policy": "vulnarchive-1",
            "sourceFormat": "text/html",
            "sourcePublishedAt": "2026-08-30T23:47:44Z"
          }
        }
      ]
    }
  },
  "cveMetadata": {
    "assignerOrgId": "4e2abfbf-4a2a-4b76-a4e0-d77c18ba156c",
    "assignerShortName": "VULNARCHIVE",
    "datePublished": "2026-09-08T07:25:42Z",
    "dateUpdated": "2026-09-08T07:25:42Z",
    "state": "PUBLISHED",
    "vulnId": "GCVE-1988-2026-0177"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…