{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2026-120640", "assignerOrgId": "9b29abf9-4ab0-4765-b253-1875cd9b441e", "state": "PUBLISHED", "assignerShortName": "CPANSec", "dateReserved": "2026-11-02T17:41:07.710Z", "datePublished": "2026-11-03T23:40:33.770Z", "dateUpdated": "2026-11-03T23:40:33.770Z" }, "containers": { "cna": { "affected": [ { "collectionURL": "https://cpan.org/modules", "defaultStatus": "unaffected", "modules": [ "CGI" ], "packageName": "CGI", "packageURL": "pkg:cpan/CGI", "programFiles": [ "lib/CGI.pm" ], "programRoutines": [ { "name": "CGI::init" }, { "name": "CGI::parse_params" }, { "name": "CGI::read_multipart" }, { "name": "CGI::read_multipart_related" } ], "repo": "https://github.com/leejo/CGI.pm", "versions": [ { "lessThan": "5.00", "status": "affected", "version": "0", "versionType": "custom" } ] } ], "descriptions": [ { "lang": "en", "value": "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.\n\nCGI 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.\n\nA 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." } ], "problemTypes": [ { "descriptions": [ { "cweId": "CWE-352", "description": "CWE-352 Cross-Site Request Forgery (CSRF)", "lang": "en", "type": "CWE" } ] } ], "providerMetadata": { "orgId": "9b29abf9-4ab0-4765-b253-1875cd9b441e", "shortName": "CPANSec", "dateUpdated": "2026-11-03T23:40:33.770Z" }, "references": [ { "tags": [ "technical-description" ], "url": "https://metacpan.org/release/LEEJO/CGI-4.72/source/lib/CGI.pm" }, { "tags": [ "release-notes" ], "url": "https://metacpan.org/release/LEEJO/CGI-5.00/changes" }, { "tags": [ "patch" ], "url": "https://github.com/leejo/CGI.pm/commit/bc4022f553301014e522133ba1e1f4e49e3bef08.patch" } ], "solutions": [ { "lang": "en", "value": "Upgrade to CGI 5.00 or later." } ], "source": { "discovery": "UNKNOWN" }, "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", "workarounds": [ { "lang": "en", "value": "For deployments that cannot upgrade, check the request Content-Type before trusting param('POSTDATA')." } ], "x_generator": { "engine": "cpansec-cna-tool 0.1" } } } }