|
|
Message-Id: <F28E5CED-2277-4A98-991B-BDA17A19BDC9@stig.io>
Date: Wed, 4 Nov 2026 01:07:47 +0100
From: Stig Palmquist <stig@...g.io>
To: oss-security@...ts.openwall.com
Subject: CGI versions before 5.00 for Perl (20 CVEs)
CVE-2026-120631
CGI::Cookie versions from 4.67 before 5.00 for Perl allow denial of
service via the client cookie expires value used as a regex in parse
CVE-2026-120632
CGI versions before 5.00 for Perl allow CPU exhaustion via a
backtracking regex on the XForms multipart/related Content-Type
CVE-2026-120633
CGI versions before 5.00 for Perl trust the client X-Forwarded-Host
header in url, self_url, virtual_host and virtual_port
CVE-2026-120634
CGI::Carp versions before 5.00 for Perl leak warnings across requests
in persistent environments via the warningsToBrowser buffer
CVE-2026-120635
CGI versions before 5.00 for Perl allow form fields to be smuggled
past proxies and WAFs via multipart parsing that differs from the
RFCs
CVE-2026-120636
CGI versions before 5.00 for Perl allow open redirects and script
injection via URLs built from REQUEST_URI in url and start_form
CVE-2026-120637
CGI versions before 5.00 for Perl take request parameters from the
process command line arguments for an unrecognised REQUEST_METHOD
CVE-2026-120638
CGI versions before 5.00 for Perl allow open redirects via HTML
entity decoding of the URL after application validation in redirect
CVE-2026-120639
CGI versions before 5.00 for Perl allow HTTP header injection via
entity decoding after the newline check in header and unchecked
values in multipart_start and do_push
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
CVE-2026-120641
CGI versions before 5.00 for Perl return upload filenames with any
client-supplied path, including ../ and Windows paths
CVE-2026-120642
CGI versions before 5.00 for Perl return request-derived values
untainted under taint mode
CVE-2026-120643
CGI versions from 4.62 before 5.00 for Perl allow cross-site
scripting via a raw apostrophe in URLs returned by url and self_url
CVE-2026-120644
CGI::Cookie versions before 5.00 for Perl allow cookie attribute
injection via unvalidated path, domain and expires values
CVE-2026-120645
CGI versions before 5.00 for Perl allow denial of service via
submitted values used as a regex for optgroup selection in
scrolling_list
CVE-2026-120646
CGI versions from 4.71 before 5.00 for Perl allow denial of service
via a plain string dereferenced as a symbolic reference in uploadInfo
CVE-2026-120647
CGI versions before 5.00 for Perl allow Content-Disposition parameter
injection via unescaped double quotes in the header attachment
filename
CVE-2026-120648
CGI versions before 5.00 for Perl allow HTML injection via text
containing --> in comment
CVE-2026-120650
CGI versions before 5.00 for Perl allow memory, CPU and disk
exhaustion via missing or unenforced request size, parameter and
upload limits
CVE-2026-120651
CGI versions before 5.00 for Perl allow an infinite loop on a short
request body when $DISABLE_UPLOADS is set
========================================================================
CVE-2026-120631 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120631
Distribution: CGI
Versions: from 4.67 before 5.00
MetaCPAN: https://metacpan.org/dist/CGI
VCS Repo: https://github.com/leejo/CGI.pm
CGI::Cookie versions from 4.67 before 5.00 for Perl allow denial of
service via the client cookie expires value used as a regex in parse
Description
-----------
CGI::Cookie versions from 4.67 before 5.00 for Perl allow denial of
service via the client cookie expires value used as a regex in parse.
CGI's cookie method reads the Cookie request header through parse,
which interpolates the header's expires value unescaped into the
substitution pattern that removes it from the cookie string.
A client can make the request die with an invalid pattern, or tie up
the process with one that backtracks catastrophically.
Problem types
-------------
- CWE-1333 Inefficient Regular Expression Complexity
- CWE-625 Permissive Regular Expression
Solutions
---------
Upgrade to CGI 5.00 or later.
References
----------
https://metacpan.org/release/LEEJO/CGI-4.72/source/lib/CGI/Cookie.pm
https://metacpan.org/release/LEEJO/CGI-5.00/changes
https://github.com/leejo/CGI.pm/commit/95e044af2ec24d99a61e99d6291580ad47aff641.patch
========================================================================
CVE-2026-120632 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120632
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 CPU exhaustion via a
backtracking regex on the XForms multipart/related Content-Type
Description
-----------
CGI versions before 5.00 for Perl allow CPU exhaustion via a
backtracking regex on the XForms multipart/related Content-Type.
When a POST Content-Type contains multipart/related, the boundary and
start parameters are extracted with an unanchored pattern that puts .+
on either side of the boundary capture, which backtracks in cubic time
on a header that does not match. No request body is needed.
Problem types
-------------
- CWE-1333 Inefficient Regular Expression Complexity
Workarounds
-----------
For deployments that cannot upgrade, reject Content-Type request
headers longer than 1KB at the web server.
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/1e529c7ac8d410a51b4b04ab9d6cc00d51ef33c0.patch
========================================================================
CVE-2026-120633 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120633
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 trust the client X-Forwarded-Host
header in url, self_url, virtual_host and virtual_port
Description
-----------
CGI versions before 5.00 for Perl trust the client X-Forwarded-Host
header in url, self_url, virtual_host and virtual_port.
These take the host name and port from the X-Forwarded-Host request
header when present, and otherwise from Host, without validating
either. The URLs from url and self_url are the default redirect
location and the start_html(-base=>1) base href, and the default
start_form action when REQUEST_URI is not set.
A client can poison shared caches, and URLs the application stores or
sends, with redirects, links and scripts that point at a host it
controls.
Problem types
-------------
- CWE-348 Use of Less Trusted Source
- CWE-601 URL Redirection to Untrusted Site ('Open Redirect')
Workarounds
-----------
For deployments that cannot upgrade, strip X-Forwarded-Host at the web
server or proxy unless it sets the header itself, and validate Host.
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/d76752a5e8dfd365b0fe3a0b9a7da6c054e856af.patch
========================================================================
CVE-2026-120634 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120634
Distribution: CGI
Versions: before 5.00
MetaCPAN: https://metacpan.org/dist/CGI
VCS Repo: https://github.com/leejo/CGI.pm
CGI::Carp versions before 5.00 for Perl leak warnings across requests
in persistent environments via the warningsToBrowser buffer
Description
-----------
CGI::Carp versions before 5.00 for Perl leak warnings across requests
in persistent environments via the warningsToBrowser buffer.
Warnings are held in a package-level buffer until warningsToBrowser
writes them into the page as HTML comments, and the buffer is never
cleared between requests. Under mod_perl, FastCGI or PSGI, warnings
from one request are written into a later one.
Warnings that contain one user's request data can appear in the HTML
sent to another user.
Problem types
-------------
- CWE-488 Exposure of Data Element to Wrong Session
Workarounds
-----------
For deployments that cannot upgrade, do not use warningsToBrowser in
persistent environments. After upgrading, persistent applications where
nothing calls CGI::initialize_globals between requests must also call
CGI::Carp::_reset_globals at the start of each request.
Solutions
---------
Upgrade to CGI 5.00 or later.
References
----------
https://metacpan.org/release/LEEJO/CGI-4.72/source/lib/CGI/Carp.pm
https://metacpan.org/release/LEEJO/CGI-5.00/changes
https://github.com/leejo/CGI.pm/commit/604a83fec105f75fe06f1a75026c4c34fd5a1f61.patch
========================================================================
CVE-2026-120635 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120635
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 form fields to be smuggled past
proxies and WAFs via multipart parsing that differs from the RFCs
Description
-----------
CGI versions before 5.00 for Perl allow form fields to be smuggled past
proxies and WAFs via multipart parsing that differs from the RFCs.
The multipart/form-data parser matches the boundary anywhere rather
than at the start of a line, uses the boundary without its leading --
for some client-supplied User-Agent values, finds the
Content-Disposition name and filename inside the quoted values of other
parameters, and corrupts parts when the boundary nears the 4096-byte
read size.
Problem types
-------------
- CWE-436 Interpretation Conflict
Solutions
---------
Upgrade to CGI 5.00 or later.
References
----------
https://www.rfc-editor.org/rfc/rfc2046#section-5.1.1
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/f719fc08e8756708bcd4f1e357d5c0f8702f85dd.patch
https://github.com/leejo/CGI.pm/commit/cbf04979f9974458ac223793bbd9d0b6a772aa66.patch
https://github.com/leejo/CGI.pm/commit/fe9516804d59a3774e280c15dbb7072fbd0ba5f1.patch
https://github.com/leejo/CGI.pm/commit/e0ef8f4248c6ae3025749040d8595d206b6a1b49.patch
========================================================================
CVE-2026-120636 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120636
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 open redirects and script
injection via URLs built from REQUEST_URI in url and start_form
Description
-----------
CGI versions before 5.00 for Perl allow open redirects and script
injection via URLs built from REQUEST_URI in url and start_form.
url(-absolute=>1), url(-relative=>1) and the default start_form action
are built from the client-supplied REQUEST_URI without validation. The
result can be protocol-relative (//evil.example), absolute-form
(http://evil.example/) or contain backslashes, and url(-relative=>1)
can return a javascript: URL. Links and form posts built from these
URLs can go to another host.
Problem types
-------------
- CWE-601 URL Redirection to Untrusted Site ('Open Redirect')
- CWE-79 Improper Neutralization of Input During Web Page Generation
('Cross-site Scripting')
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/9405ef3909ee94991a3474167aa53b9051bd8765.patch
========================================================================
CVE-2026-120637 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120637
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 take request parameters from the
process command line arguments for an unrecognised REQUEST_METHOD
Description
-----------
CGI versions before 5.00 for Perl take request parameters from the
process command line arguments for an unrecognised REQUEST_METHOD.
For a REQUEST_METHOD such as OPTIONS, CGI falls through to its offline
debugging mode, which is on by default, and builds the parameters and
path_info from the process's command line arguments.
Problem types
-------------
- CWE-489 Active Debug Code
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/b753ff75a3bc4554c075cc37c1db605a55297029.patch
========================================================================
CVE-2026-120638 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120638
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 open redirects via HTML entity
decoding of the URL after application validation in redirect
Description
-----------
CGI versions before 5.00 for Perl allow open redirects via HTML entity
decoding of the URL after application validation in redirect.
redirect decodes HTML entities in its URL before writing the Location
header, so a URL the application has already validated can change
meaning. For example, //evil.example/ becomes //evil.example/ and
sends the user to another host.
Problem types
-------------
- CWE-180 Incorrect Behavior Order: Validate Before Canonicalize
- CWE-601 URL Redirection to Untrusted Site ('Open Redirect')
Workarounds
-----------
For deployments that cannot upgrade, reject redirect URLs that HTML
entity decoding would change.
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/7733c2753f4f240012097507cda2b6e87ae46db4.patch
========================================================================
CVE-2026-120639 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120639
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 HTTP header injection via
entity decoding after the newline check in header and unchecked values
in multipart_start and do_push
Description
-----------
CGI versions before 5.00 for Perl allow HTTP header injection via
entity decoding after the newline check in header and unchecked values
in multipart_start and do_push.
With autoEscape off, header decodes HTML entities in extra header
values after its newline check, so an encoded CR or LF reaches the
response. multipart_start does not check header values for newlines,
and do_push does not check the type it prints in each part.
An application that passes request data into these header values can be
made to add headers or split the response.
Problem types
-------------
- CWE-113 Improper Neutralization of CRLF Sequences in HTTP Headers
('HTTP Request/Response Splitting')
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/69955309d371c8093d11cf12e3ddef491537ffad.patch
https://github.com/leejo/CGI.pm/commit/7733c2753f4f240012097507cda2b6e87ae46db4.patch
========================================================================
CVE-2026-120640 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120640
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 the POSTDATA, PUTDATA,
PATCHDATA and XForms:Model parameters to be set from the query string
or form fields
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.
Problem types
-------------
- CWE-352 Cross-Site Request Forgery (CSRF)
Workarounds
-----------
For deployments that cannot upgrade, check the request Content-Type
before trusting param('POSTDATA').
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/bc4022f553301014e522133ba1e1f4e49e3bef08.patch
========================================================================
CVE-2026-120641 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120641
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 return upload filenames with any
client-supplied path, including ../ and Windows paths
Description
-----------
CGI versions before 5.00 for Perl return upload filenames with any
client-supplied path, including ../ and Windows paths.
The name returned for an uploaded file is the filename parameter of the
part's Content-Disposition header, unchanged.
An application that saves the upload under this name can be made to
write outside the intended directory.
Problem types
-------------
- CWE-22 Improper Limitation of a Pathname to a Restricted Directory
('Path Traversal')
Workarounds
-----------
For deployments that cannot upgrade, do not use the client-supplied
upload filename as a path.
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/5379eb18e87b7f985613f5c4f7bae94478a4fa2f.patch
========================================================================
CVE-2026-120642 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120642
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 return request-derived values
untainted under taint mode
Description
-----------
CGI versions before 5.00 for Perl return request-derived values
untainted under taint mode.
The upload filename, uploadInfo values, some path_info and script_name
values, Accept results, and the name lists from url_param and cookie
are returned without the taint flag, as is a cookie named expires from
4.67 on.
These values come from regex captures or hash keys, which Perl does not
taint, so they pass -T checks unvalidated.
Problem types
-------------
- CWE-1173 Improper Use of Validation Framework
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/6ae50ce84073b8f68a6e3750479de70d5b8f2dcf.patch
========================================================================
CVE-2026-120643 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120643
Distribution: CGI
Versions: from 4.62 before 5.00
MetaCPAN: https://metacpan.org/dist/CGI
VCS Repo: https://github.com/leejo/CGI.pm
CGI versions from 4.62 before 5.00 for Perl allow cross-site scripting
via a raw apostrophe in URLs returned by url and self_url
Description
-----------
CGI versions from 4.62 before 5.00 for Perl allow cross-site scripting
via a raw apostrophe in URLs returned by url and self_url.
Both pass the URL through URI's canonical method, which leaves an
apostrophe in the path raw and decodes the %27 that query parameter
escaping produces, so an apostrophe in the request path or a parameter
appears raw in the result.
An application that places the URL in a single-quoted HTML attribute or
JavaScript string is open to cross-site scripting.
Problem types
-------------
- CWE-79 Improper Neutralization of Input During Web Page Generation
('Cross-site Scripting')
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/851430be84c4d0f350681814e1d7718b9959f2c2.patch
========================================================================
CVE-2026-120644 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120644
Distribution: CGI
Versions: before 5.00
MetaCPAN: https://metacpan.org/dist/CGI
VCS Repo: https://github.com/leejo/CGI.pm
CGI::Cookie versions before 5.00 for Perl allow cookie attribute
injection via unvalidated path, domain and expires values
Description
-----------
CGI::Cookie versions before 5.00 for Perl allow cookie attribute
injection via unvalidated path, domain and expires values.
The path, domain and expires values are written into the Set-Cookie
header without checking for semicolons or control characters.
An application that sets them from request data can be made to add
other cookie attributes, such as Domain or SameSite.
Problem types
-------------
- CWE-116 Improper Encoding or Escaping of Output
Solutions
---------
Upgrade to CGI 5.00 or later.
References
----------
https://metacpan.org/release/LEEJO/CGI-4.72/source/lib/CGI/Cookie.pm
https://metacpan.org/release/LEEJO/CGI-5.00/changes
https://github.com/leejo/CGI.pm/commit/0b3527faaa9de55f79ca7d59dd3bcfb2c5540e00.patch
========================================================================
CVE-2026-120645 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120645
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 denial of service via submitted
values used as a regex for optgroup selection in scrolling_list
Description
-----------
CGI versions before 5.00 for Perl allow denial of service via submitted
values used as a regex for optgroup selection in scrolling_list.
When rendering option groups, scrolling_list marks the selected options
by interpolating each selected value, by default taken from the request
parameters, unescaped into a substitution pattern.
A client can make the request die with an invalid pattern, or tie up
the process with one that backtracks heavily.
Problem types
-------------
- CWE-1333 Inefficient Regular Expression Complexity
- CWE-625 Permissive Regular Expression
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/824956fbb0c4eb77044ba2dc9180a30df12cb309.patch
========================================================================
CVE-2026-120646 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120646
Distribution: CGI
Versions: from 4.71 before 5.00
MetaCPAN: https://metacpan.org/dist/CGI
VCS Repo: https://github.com/leejo/CGI.pm
CGI versions from 4.71 before 5.00 for Perl allow denial of service via
a plain string dereferenced as a symbolic reference in uploadInfo
Description
-----------
CGI versions from 4.71 before 5.00 for Perl allow denial of service via
a plain string dereferenced as a symbolic reference in uploadInfo.
uploadInfo dereferences its argument and calls its filename method
without checking that it is an upload filehandle. A plain string naming
a defined global variable, such as the parameter value from ?upload=0,
is treated as a symbolic reference, and the method call on it dies.
Problem types
-------------
- CWE-843 Access of Resource Using Incompatible Type ('Type Confusion')
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/a14a7decfdc18f2daf436d30df9b543e3f0f8da3.patch
========================================================================
CVE-2026-120647 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120647
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 Content-Disposition parameter
injection via unescaped double quotes in the header attachment filename
Description
-----------
CGI versions before 5.00 for Perl allow Content-Disposition parameter
injection via unescaped double quotes in the header attachment
filename.
header(-attachment => $name) writes $name into the quoted filename
parameter of Content-Disposition without escaping double quotes.
An application that passes request data as the attachment name can be
made to send a second filename parameter, changing the name the
response is saved under.
Problem types
-------------
- CWE-116 Improper Encoding or Escaping of Output
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/131280a5c5bc51b65797bd57ef0ee8da8468065b.patch
========================================================================
CVE-2026-120648 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120648
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 HTML injection via text
containing --> in comment
Description
-----------
CGI versions before 5.00 for Perl allow HTML injection via text
containing --> in comment.
Arguments are placed between <!-- and --> without escaping, so text
containing --> closes the comment early.
An application that passes request data to comment can be made to
inject HTML into the page.
Problem types
-------------
- CWE-79 Improper Neutralization of Input During Web Page Generation
('Cross-site Scripting')
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/6a17eb84703d84bca86b0079f5870ca9c921ffd4.patch
========================================================================
CVE-2026-120650 CPAN Security Group
========================================================================
CVE ID: CVE-2026-120650
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 memory, CPU and disk exhaustion
via missing or unenforced request size, parameter and upload limits
Description
-----------
CGI versions before 5.00 for Perl allow memory, CPU and disk exhaustion
via missing or unenforced request size, parameter and upload limits.
$CGI::POST_MAX defaults to no limit, and when set is not enforced for
chunked multipart bodies or for the boundary line of a multipart body
without a boundary= parameter. Bodies saved as PUTDATA, POSTDATA or
PATCHDATA uploads are read into memory in one go, and nothing limits
the number of parameters or uploads.
Problem types
-------------
- CWE-770 Allocation of Resources Without Limits or Throttling
Workarounds
-----------
For deployments that cannot upgrade, limit the request body size at the
web server and set $CGI::POST_MAX.
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/17b838dc14d2b82ae6c7e76f66ec2c3f3b08038b.patch
https://github.com/leejo/CGI.pm/commit/f3febefe63fe3881d8c3ae10fa83ca8ec950b959.patch
https://github.com/leejo/CGI.pm/commit/277baeb74fde7bce975a7bd0a1f98dcf1b9b2050.patch
https://github.com/leejo/CGI.pm/commit/8940a74e53a41563f72813b45f99cceaaa4c92e8.patch
========================================================================
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
Powered by blists - more mailing lists
Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.