CVE-2026-120651
CGI versions before 5.00 for Perl allow an infinite loop on a short request body when $DISABLE_UPLOADS is set
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.
Exploit likelihood
What each source reports
CVE List No score
CGI versions before 5.00 for Perl allow an infinite loop on a short request body when $DISABLE_UPLOADS is set
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.
- Record
CVE-2026-120651- Weakness
- CWE-835
- Updated
- 2026-11-04
EUVDEUVD-2026-116617 No score
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.
- Record
EUVD-2026-116617- Updated
- 2026-11-04
GitHub AdvisoriesGHSA-hwfw-56x5-6gp9 No score
CGI versions before 5.00 for Perl allow an infinite loop on a short request body when ...
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.
- Record
GHSA-hwfw-56x5-6gp9- Weakness
- CWE-835
- Updated
- 2026-11-04
NVD No score
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.
- Record
CVE-2026-120651- Weakness
- CWE-835
- Updated
- 2026-11-04
OSVAZL-112789 No score
CVE-2026-120651 affecting package perl-CGI 4.60-1
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.
- Record
AZL-112789- Updated
- 2026-11-07
OSV No score
CGI versions before 5.00 for Perl allow an infinite loop on a short request body when $DISABLE_UPLOADS is set
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.
- Record
CVE-2026-120651- Weakness
- CWE-835
- Updated
- 2026-11-07
OSVDEBIAN-CVE-2026-120651 No score
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.
- Record
DEBIAN-CVE-2026-120651- Updated
- 2026-11-05
OSVopenSUSE-SU-2026:12465-1 No score
perl-CGI-5.20.0-1.1 on GA media
These are all security issues fixed in the perl-CGI-5.20.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:12465-1- Updated
- 2026-11-07
OSVUBUNTU-CVE-2026-120651 No score
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.
- Record
UBUNTU-CVE-2026-120651- Updated
- 2026-11-05
Affected packages
| Package | Affected | Fixed |
|---|---|---|
perl-CGIAzure Linux:3 |
through 4.60-1 | None known |
libcgi-pm-perlDebian:12 |
All versions, plus listed versions 4.55-14.57-14.59-14.60-14.61-1 Show 11 moreShow less4.62-14.63-14.64-14.65-14.66-14.67-14.68-14.70-14.71-14.72-15.02-1 |
None known |
libcgi-pm-perlDebian:13 |
All versions, plus listed versions 4.68-14.70-14.71-14.72-15.02-1 |
None known |
libcgi-pm-perlDebian:14 |
All versions, plus listed versions 4.68-14.70-14.71-14.72-15.02-1 |
None known |
libcgi-pm-perlUbuntu:16.04:LTS |
All versions, plus listed versions 4.21-14.22-14.25-14.26-1 |
None known |
libcgi-pm-perlUbuntu:18.04:LTS |
All versions, plus listed versions 4.36-14.37-14.38-1 |
None known |
libcgi-pm-perlUbuntu:20.04:LTS |
All versions, plus listed versions 4.44-14.45-14.46-1 |
None known |
libcgi-pm-perlUbuntu:22.04:LTS |
All versions, plus listed versions 4.51-14.53-14.54-1 |
None known |
libcgi-pm-perlUbuntu:24.04:LTS |
All versions, plus listed versions 4.57-14.60-14.61-14.62-14.63-1 |
None known |
libcgi-pm-perlUbuntu:26.10 |
All versions, plus listed versions 4.71-1build14.72-1 |
None known |
libcgi-pm-perlUbuntu:26.04:LTS |
All versions, plus listed versions 4.68-14.71-14.71-1build1 |
None known |
perl-CGIopenSUSE:Tumbleweed From an advisory covering 20 CVEs |
before 5.20.0-1.1 | 5.20.0-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, aliases, references | OSV | |
| affected, aliases, references | OSV | |
| affected, aliases, references | NVD, OSV | |
| references | OSV | |
| affected, aliases, references | OSV | |
| aliases | EUVD, NVD | |
| first indexed | CVE List, GitHub Advisories |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-120651 is a vulnerability with no CVSS score yet in perl-CGI, published November 3, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.18%, the 7th percentile. No source names a fixed version.
References
metacpan.org/release/LEEJO/CGI-4.72/source/lib/CGI.pm
metacpan.org/release/LEEJO/CGI-5.00/changes
github.com/leejo/CGI.pm/commit/16d9f61acf8b844b7360e8d726338e3ce34dfa9f.patch
github.com/leejo/CGI.pm/commit/8a78305065690461ae283fa24e5ebe4ec8a22fbc.patch
nvd.nist.gov/vuln/detail/CVE-2026-120651
github.com/advisories/GHSA-hwfw-56x5-6gp9
Show 29 moreShow less
cpan.org/modules
github.com/CVEProject/cvelistV5/tree/main/cves/2026/120xxx/CVE-2026-120651.json
github.com/leejo/CGI.pm
security-tracker.debian.org/tracker/CVE-2026-120651
ubuntu.com/security/CVE-2026-120651
cve.org/CVERecord?id=CVE-2026-120651
lists.security.metacpan.org/cve-announce/msg/44875017
github.com/leejo/CGI.pm/commit/16d9f61acf8b844b7360e8d726338e3ce34dfa9f
github.com/leejo/CGI.pm/commit/8a78305065690461ae283fa24e5ebe4ec8a22fbc
suse.com/security/cve/CVE-2026-120631
suse.com/security/cve/CVE-2026-120632
suse.com/security/cve/CVE-2026-120633
suse.com/security/cve/CVE-2026-120634
suse.com/security/cve/CVE-2026-120635
suse.com/security/cve/CVE-2026-120636
suse.com/security/cve/CVE-2026-120637
suse.com/security/cve/CVE-2026-120638
suse.com/security/cve/CVE-2026-120639
suse.com/security/cve/CVE-2026-120640
suse.com/security/cve/CVE-2026-120641
suse.com/security/cve/CVE-2026-120642
suse.com/security/cve/CVE-2026-120643
suse.com/security/cve/CVE-2026-120644
suse.com/security/cve/CVE-2026-120645
suse.com/security/cve/CVE-2026-120646
suse.com/security/cve/CVE-2026-120647
suse.com/security/cve/CVE-2026-120648
suse.com/security/cve/CVE-2026-120650
suse.com/security/cve/CVE-2026-120651