{"id":"CVE-2026-120639","aliases":["AZL-112768","DEBIAN-CVE-2026-120639","EUVD-2026-116606","GHSA-mxvj-3jfg-j4p6","UBUNTU-CVE-2026-120639","openSUSE-SU-2026:12465-1"],"status":"published","title":"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.\n\nWith 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.\n\nAn application that passes request data into these header values can be made to add headers or split the response.","severity":{"version":"3.1","score":7.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","level":"high","assessor":"adp","from":"cve"},"epss":{"day":"2026-11-12","score":0.00313,"percentile":0.2453,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-113"],"published":"2026-11-03T23:40:30Z","modified":"2026-11-09T19:14:25Z","affected":[{"source":"osv","ecosystem":"Azure Linux:3","package":"perl-CGI","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"4.60-1"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"libcgi-pm-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.55-1","4.57-1","4.59-1","4.60-1","4.61-1","4.62-1","4.63-1","4.64-1","4.65-1","4.66-1","4.67-1","4.68-1","4.70-1","4.71-1","4.72-1","5.02-1"]},{"source":"osv","ecosystem":"Debian:13","package":"libcgi-pm-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.68-1","4.70-1","4.71-1","4.72-1","5.02-1"]},{"source":"osv","ecosystem":"Debian:14","package":"libcgi-pm-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.68-1","4.70-1","4.71-1","4.72-1","5.02-1"]},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"libcgi-pm-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.21-1","4.22-1","4.25-1","4.26-1"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"libcgi-pm-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.36-1","4.37-1","4.38-1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"libcgi-pm-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.44-1","4.45-1","4.46-1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"libcgi-pm-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.51-1","4.53-1","4.54-1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"libcgi-pm-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.57-1","4.60-1","4.61-1","4.62-1","4.63-1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"libcgi-pm-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.71-1build1","4.72-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"libcgi-pm-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.68-1","4.71-1","4.71-1build1"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"perl-CGI","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.20.0-1.1"}]}],"bundled":20}],"references":[{"url":"https://metacpan.org/release/LEEJO/CGI-4.72/source/lib/CGI.pm","tags":["technical-description","article","report"]},{"url":"https://metacpan.org/release/LEEJO/CGI-5.00/changes","tags":["release-notes","advisory","report"]},{"url":"https://github.com/leejo/CGI.pm/commit/69955309d371c8093d11cf12e3ddef491537ffad.patch","tags":["patch","fix","report"]},{"url":"https://github.com/leejo/CGI.pm/commit/7733c2753f4f240012097507cda2b6e87ae46db4.patch","tags":["patch","fix","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-120639","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-mxvj-3jfg-j4p6"},{"url":"https://cpan.org/modules","tags":["web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/120xxx/CVE-2026-120639.json","tags":["advisory"]},{"url":"https://github.com/leejo/CGI.pm","tags":["package"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-120639","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-120639","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-120639","tags":["report"]},{"url":"https://lists.security.metacpan.org/cve-announce/msg/44874826/","tags":["report"]},{"url":"https://github.com/leejo/CGI.pm/commit/69955309d371c8093d11cf12e3ddef491537ffad","tags":["report"]},{"url":"https://github.com/leejo/CGI.pm/commit/7733c2753f4f240012097507cda2b6e87ae46db4","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120631","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120632","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120633","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120634","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120635","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120636","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120637","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120638","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120639","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120640","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120641","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120642","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120643","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120644","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120645","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120646","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120647","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120648","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120650","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-120651","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2026-120639","title":"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.\n\nWith 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.\n\nAn application that passes request data into these header values can be made to add headers or split the response.","status":"published","published":"2026-11-03T23:40:30.552Z","modified":"2026-11-09T19:14:25.94Z","cvss":[{"version":"3.1","score":7.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","level":"high","assessor":"adp"}],"cwes":["CWE-113"],"updated_at":"2026-11-09T20:34:41.792859Z"}],"euvd":[{"id":"EUVD-2026-116606","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.\n\nWith 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.\n\nAn application that passes request data into these header values can be made to add headers or split the response.","status":"published","published":"2026-11-03T23:40:30Z","modified":"2026-11-09T19:14:25Z","cvss":[{"version":"3.1","score":7.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","level":"high"}],"updated_at":"2026-11-09T20:17:59.69274Z"}],"ghsa":[{"id":"GHSA-mxvj-3jfg-j4p6","title":"CGI versions before 5.00 for Perl allow HTTP header injection via entity decoding after the...","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.\n\nWith 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.\n\nAn application that passes request data into these header values can be made to add headers or split the response.","status":"published","published":"2026-11-04T00:32:22Z","modified":"2026-11-09T21:32:43Z","cvss":[{"version":"3.1","score":7.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","level":"high"}],"cwes":["CWE-113"],"updated_at":"2026-11-09T21:50:05.607095Z"}],"nvd":[{"id":"CVE-2026-120639","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.\n\nWith 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.\n\nAn application that passes request data into these header values can be made to add headers or split the response.","status":"published","published":"2026-11-04T00:17:25.263Z","modified":"2026-11-09T20:18:05.173Z","cvss":[{"version":"3.1","score":7.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","level":"high","assessor":"secondary"}],"cwes":["CWE-113"],"updated_at":"2026-11-09T22:15:54.230687Z"}],"osv":[{"id":"CVE-2026-120639","title":"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.\n\nWith 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.\n\nAn application that passes request data into these header values can be made to add headers or split the response.","status":"published","published":"2026-11-03T23:40:30.552Z","modified":"2026-11-11T10:30:44.521074607Z","cvss":[{"version":"3.1","score":7.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","level":"high"}],"cwes":["CWE-113"],"updated_at":"2026-11-10T10:57:25.458985Z"},{"id":"DEBIAN-CVE-2026-120639","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.","status":"published","published":"2026-11-04T00:17:25.263Z","modified":"2026-11-10T10:00:09.661624702Z","cvss":[{"version":"3.1","score":7.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","level":"high"}],"updated_at":"2026-11-10T10:26:30.347596Z"},{"id":"UBUNTU-CVE-2026-120639","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.","status":"published","published":"2026-11-04T00:17:00Z","modified":"2026-11-12T17:25:21.659370083Z","cvss":[{"version":"3.1","score":7.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","level":"high"}],"updated_at":"2026-11-12T18:05:20.870791Z"},{"id":"AZL-112768","title":"CVE-2026-120639 affecting package perl-CGI 4.60-1","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.\n\nWith 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.\n\nAn application that passes request data into these header values can be made to add headers or split the response.","status":"published","published":"2026-11-04T00:17:25Z","modified":"2026-11-07T14:18:05.329830899Z","updated_at":"2026-11-07T14:48:11.583685Z"},{"id":"openSUSE-SU-2026:12465-1","title":"perl-CGI-5.20.0-1.1 on GA media","description":"These are all security issues fixed in the perl-CGI-5.20.0-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-11-06T00:00:00Z","modified":"2026-11-07T17:23:15.83251468Z","updated_at":"2026-11-07T17:50:39.727056Z"}]}}
