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
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.
Exploit likelihood
What each source reports
CVE List No score
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
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.
- Record
CVE-2026-120639- Weakness
- CWE-113
- Updated
- 2026-11-04
EUVDEUVD-2026-116606 No score
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.
- Record
EUVD-2026-116606- Updated
- 2026-11-04
GitHub AdvisoriesGHSA-mxvj-3jfg-j4p6 No score
CGI versions before 5.00 for Perl allow HTTP header injection via entity decoding after the...
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.
- Record
GHSA-mxvj-3jfg-j4p6- Weakness
- CWE-113
- Updated
- 2026-11-04
NVD No score
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.
- Record
CVE-2026-120639- Weakness
- CWE-113
- Updated
- 2026-11-04
OSVAZL-112768 No score
CVE-2026-120639 affecting package perl-CGI 4.60-1
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.
- Record
AZL-112768- Updated
- 2026-11-07
OSV No score
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
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.
- Record
CVE-2026-120639- Weakness
- CWE-113
- Updated
- 2026-11-07
OSVDEBIAN-CVE-2026-120639 No score
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.
- Record
DEBIAN-CVE-2026-120639- 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-120639 No score
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.
- Record
UBUNTU-CVE-2026-120639- 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-120639 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.23%, the 13th 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/69955309d371c8093d11cf12e3ddef491537ffad.patch
github.com/leejo/CGI.pm/commit/7733c2753f4f240012097507cda2b6e87ae46db4.patch
nvd.nist.gov/vuln/detail/CVE-2026-120639
github.com/advisories/GHSA-mxvj-3jfg-j4p6
Show 29 moreShow less
cpan.org/modules
github.com/CVEProject/cvelistV5/tree/main/cves/2026/120xxx/CVE-2026-120639.json
github.com/leejo/CGI.pm
security-tracker.debian.org/tracker/CVE-2026-120639
ubuntu.com/security/CVE-2026-120639
cve.org/CVERecord?id=CVE-2026-120639
lists.security.metacpan.org/cve-announce/msg/44874826
github.com/leejo/CGI.pm/commit/69955309d371c8093d11cf12e3ddef491537ffad
github.com/leejo/CGI.pm/commit/7733c2753f4f240012097507cda2b6e87ae46db4
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