CVE-2026-120651: CGI versions before 5.00 for Perl allow an infinite loop on a short request body when $DISABLE_UPLOADS is set
Stig Palmquist 04 Nov 2026 00:01 UTC
========================================================================
CVE-2026-120651 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120651
Distribution: CGI
Versions: before 5.00
MetaCPAN: https://metacpan.org/dist/CGI
VCS Repo: https://github.com/leejo/CGI.pm
CGI versions before 5.00 for Perl allow an infinite loop on a short
request body when $DISABLE_UPLOADS is set
Description
-----------
CGI versions before 5.00 for Perl allow an infinite loop on a short
request body when $DISABLE_UPLOADS is set.
When $CGI::PUTDATA_UPLOAD or an upload hook is set,
read_postdata_putdata takes a request body that is not a form
submission. With $CGI::DISABLE_UPLOADS set, it discards the body by
reading until Content-Length bytes have arrived. Once a body shorter
than its Content-Length runs out, every read returns 0, so the loop
never ends.
A client can keep a server process spinning with one such request.
Problem types
-------------
- CWE-835 Loop with Unreachable Exit Condition ('Infinite Loop')
Solutions
---------
Upgrade to CGI 5.00 or later.
References
----------
https://metacpan.org/release/LEEJO/CGI-4.72/source/lib/CGI.pm
https://metacpan.org/release/LEEJO/CGI-5.00/changes
https://github.com/leejo/CGI.pm/commit/16d9f61acf8b844b7360e8d726338e3ce34dfa9f.patch
https://github.com/leejo/CGI.pm/commit/8a78305065690461ae283fa24e5ebe4ec8a22fbc.patch