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.
Analysis and contextual insights are available on OpenCVE Cloud.
Vendor Solution
Upgrade to CGI 5.00 or later.
Vendor Workaround
For deployments that cannot upgrade, check the request Content-Type before trusting param('POSTDATA').
Tracking
Sign in to view the affected projects.
No advisories yet.
Wed, 04 Nov 2026 00:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | 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. | |
| Title | 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 | |
| Weaknesses | CWE-352 | |
| References |
|
Subscriptions
No data.
Status: PUBLISHED
Assigner: CPANSec
Published:
Updated: 2026-11-03T23:40:33.770Z
Reserved: 2026-11-02T17:41:07.710Z
Link: CVE-2026-120640
No data.
Status : Received
Published: 2026-11-04T00:17:25.390
Modified: 2026-11-04T00:17:25.390
Link: CVE-2026-120640
No data.
OpenCVE Enrichment
No data.
-
CWE-352
Cross-Site Request Forgery (CSRF)