CVE-2026-120640
CGI versions before 5.00 for Perl allow the POSTDATA, PUTDATA, PATCHDATA and XForms:Model parameters to be set from the query string or form fields
CGI versions before 5.00 for Perl allow the POSTDATA, PUTDATA, PATCHDATA and XForms:Model parameters to be set from the query string or form fields.
CGI stores a non-form request body under POSTDATA, PUTDATA or PATCHDATA, and an XForms body under XForms:Model, but also accepts these names from the query string, a form field or a multipart part, so an application cannot tell a client-sent value from the real body.
A cross-site HTML form can post POSTDATA={"admin":true} to an endpoint that reads JSON from param('POSTDATA'), a request forgery that needs no CORS preflight.
Exploit likelihood
What each source reports
CVE List No score
CGI versions before 5.00 for Perl allow the POSTDATA, PUTDATA, PATCHDATA and XForms:Model parameters to be set from the query string or form fields
CGI versions before 5.00 for Perl allow the POSTDATA, PUTDATA, PATCHDATA and XForms:Model parameters to be set from the query string or form fields.
CGI stores a non-form request body under POSTDATA, PUTDATA or PATCHDATA, and an XForms body under XForms:Model, but also accepts these names from the query string, a form field or a multipart part, so an application cannot tell a client-sent value from the real body.
A cross-site HTML form can post POSTDATA={"admin":true} to an endpoint that reads JSON from param('POSTDATA'), a request forgery that needs no CORS preflight.
- Record
CVE-2026-120640- Weakness
- CWE-352
- Updated
- 2026-11-04
EUVDEUVD-2026-116607 No score
CGI versions before 5.00 for Perl allow the POSTDATA, PUTDATA, PATCHDATA and XForms:Model parameters to be set from the query string or form fields.
CGI stores a non-form request body under POSTDATA, PUTDATA or PATCHDATA, and an XForms body under XForms:Model, but also accepts these names from the query string, a form field or a multipart part, so an application cannot tell a client-sent value from the real body.
A cross-site HTML form can post POSTDATA={"admin":true} to an endpoint that reads JSON from param('POSTDATA'), a request forgery that needs no CORS preflight.
- Record
EUVD-2026-116607- Updated
- 2026-11-04
GitHub AdvisoriesGHSA-2xpc-hf7c-cgvh No score
CGI versions before 5.00 for Perl allow the POSTDATA, PUTDATA, PATCHDATA and XForms:Model...
CGI versions before 5.00 for Perl allow the POSTDATA, PUTDATA, PATCHDATA and XForms:Model parameters to be set from the query string or form fields.
CGI stores a non-form request body under POSTDATA, PUTDATA or PATCHDATA, and an XForms body under XForms:Model, but also accepts these names from the query string, a form field or a multipart part, so an application cannot tell a client-sent value from the real body.
A cross-site HTML form can post POSTDATA={"admin":true} to an endpoint that reads JSON from param('POSTDATA'), a request forgery that needs no CORS preflight.
- Record
GHSA-2xpc-hf7c-cgvh- Weakness
- CWE-352
- Updated
- 2026-11-04
NVD No score
CGI versions before 5.00 for Perl allow the POSTDATA, PUTDATA, PATCHDATA and XForms:Model parameters to be set from the query string or form fields.
CGI stores a non-form request body under POSTDATA, PUTDATA or PATCHDATA, and an XForms body under XForms:Model, but also accepts these names from the query string, a form field or a multipart part, so an application cannot tell a client-sent value from the real body.
A cross-site HTML form can post POSTDATA={"admin":true} to an endpoint that reads JSON from param('POSTDATA'), a request forgery that needs no CORS preflight.
- Record
CVE-2026-120640- Weakness
- CWE-352
- Updated
- 2026-11-04
OSVAZL-112807 No score
CVE-2026-120640 affecting package perl-CGI 4.60-1
CGI versions before 5.00 for Perl allow the POSTDATA, PUTDATA, PATCHDATA and XForms:Model parameters to be set from the query string or form fields.
CGI stores a non-form request body under POSTDATA, PUTDATA or PATCHDATA, and an XForms body under XForms:Model, but also accepts these names from the query string, a form field or a multipart part, so an application cannot tell a client-sent value from the real body.
A cross-site HTML form can post POSTDATA={"admin":true} to an endpoint that reads JSON from param('POSTDATA'), a request forgery that needs no CORS preflight.
- Record
AZL-112807- Updated
- 2026-11-07
OSV No score
CGI versions before 5.00 for Perl allow the POSTDATA, PUTDATA, PATCHDATA and XForms:Model parameters to be set from the query string or form fields
CGI versions before 5.00 for Perl allow the POSTDATA, PUTDATA, PATCHDATA and XForms:Model parameters to be set from the query string or form fields.
CGI stores a non-form request body under POSTDATA, PUTDATA or PATCHDATA, and an XForms body under XForms:Model, but also accepts these names from the query string, a form field or a multipart part, so an application cannot tell a client-sent value from the real body.
A cross-site HTML form can post POSTDATA={"admin":true} to an endpoint that reads JSON from param('POSTDATA'), a request forgery that needs no CORS preflight.
- Record
CVE-2026-120640- Weakness
- CWE-352
- Updated
- 2026-11-07
OSVDEBIAN-CVE-2026-120640 No score
CGI versions before 5.00 for Perl allow the POSTDATA, PUTDATA, PATCHDATA and XForms:Model parameters to be set from the query string or form fields. CGI stores a non-form request body under POSTDATA, PUTDATA or PATCHDATA, and an XForms body under XForms:Model, but also accepts these names from the query string, a form field or a multipart part, so an application cannot tell a client-sent value from the real body. A cross-site HTML form can post POSTDATA={"admin":true} to an endpoint that reads JSON from param('POSTDATA'), a request forgery that needs no CORS preflight.
- Record
DEBIAN-CVE-2026-120640- 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-120640 No score
CGI versions before 5.00 for Perl allow the POSTDATA, PUTDATA, PATCHDATA and XForms:Model parameters to be set from the query string or form fields. CGI stores a non-form request body under POSTDATA, PUTDATA or PATCHDATA, and an XForms body under XForms:Model, but also accepts these names from the query string, a form field or a multipart part, so an application cannot tell a client-sent value from the real body. A cross-site HTML form can post POSTDATA={"admin":true} to an endpoint that reads JSON from param('POSTDATA'), a request forgery that needs no CORS preflight.
- Record
UBUNTU-CVE-2026-120640- 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-120640 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.13%, the 2nd 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/bc4022f553301014e522133ba1e1f4e49e3bef08.patch
nvd.nist.gov/vuln/detail/CVE-2026-120640
github.com/advisories/GHSA-2xpc-hf7c-cgvh
cpan.org/modules
Show 27 moreShow less
github.com/CVEProject/cvelistV5/tree/main/cves/2026/120xxx/CVE-2026-120640.json
github.com/leejo/CGI.pm
security-tracker.debian.org/tracker/CVE-2026-120640
ubuntu.com/security/CVE-2026-120640
cve.org/CVERecord?id=CVE-2026-120640
lists.security.metacpan.org/cve-announce/msg/44874900
github.com/leejo/CGI.pm/commit/bc4022f553301014e522133ba1e1f4e49e3bef08
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