{"id":"CVE-2026-115817","aliases":["DEBIAN-CVE-2026-115817","EUVD-2026-109558","GHSA-xcqf-6xfj-3q3x","UBUNTU-CVE-2026-115817","openSUSE-SU-2026:12276-1"],"status":"published","title":"Starman versions before 0.4019 for Perl allow a stalled request body to hold a worker indefinitely, as read_timeout covers only the headers","description":"Starman versions before 0.4019 for Perl allow a stalled request body to hold a worker indefinitely, as read_timeout covers only the headers.\n\nContent-Length and chunked request bodies are read with blocking reads and no deadline. A client that sends complete headers and then stalls or trickles the body keeps the worker waiting until it disconnects.\n\nA remote attacker can take every worker with a few such connections, five with the default worker count, so the server stops answering requests.\n\nVersion 0.4019 applies read_timeout to each wait for body data and adds a body_timeout limit, 300 seconds by default, on the total time to read a body.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"adp","from":"cve"},"epss":{"day":"2026-11-12","score":0.00514,"percentile":0.44285,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-770"],"published":"2026-10-25T16:50:33Z","modified":"2026-11-04T03:30:23Z","fixes":[{"ecosystem":"Debian:14","package":"starman","fixed_in":["0.4019-1"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Debian:12","package":"starman","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.4016-1","0.4017-1","0.4018-1","0.4019-1"]},{"source":"osv","ecosystem":"Debian:13","package":"starman","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.4017-1","0.4018-0+deb13u1","0.4018-1","0.4019-1"]},{"source":"osv","ecosystem":"Debian:14","package":"starman","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.4019-1"}]}],"versions":["0.4017-1","0.4018-1"]},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"starman","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.4014-1"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"starman","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.4014-1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"starman","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.4014-3","0.4015-1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"starman","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.4015-1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"starman","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.4016-1","0.4017-1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"starman","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.4017-1build1","0.4018-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"starman","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.4017-1","0.4017-1build1"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"perl-Starman","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.4019-1.1"}]}],"bundled":4}],"references":[{"url":"https://github.com/miyagawa/Starman/commit/89dffd3bdc9baa1cbe1b48a43615586ba2588558.patch","tags":["patch","fix","report"]},{"url":"https://github.com/miyagawa/Starman/commit/a30533c03051502d6b67cd48b3a95a61e129691b.patch","tags":["patch","fix","report"]},{"url":"https://metacpan.org/release/MIYAGAWA/Starman-0.4019/changes","tags":["release-notes","advisory","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-115817","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-xcqf-6xfj-3q3x"},{"url":"https://cpan.org/modules","tags":["web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/115xxx/CVE-2026-115817.json","tags":["advisory"]},{"url":"https://github.com/miyagawa/Starman","tags":["package"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-115817","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-115817","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-115817","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2026-115817","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-115822","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-115823","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-115824","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2026-115817","title":"Starman versions before 0.4019 for Perl allow a stalled request body to hold a worker indefinitely, as read_timeout covers only the headers","description":"Starman versions before 0.4019 for Perl allow a stalled request body to hold a worker indefinitely, as read_timeout covers only the headers.\n\nContent-Length and chunked request bodies are read with blocking reads and no deadline. A client that sends complete headers and then stalls or trickles the body keeps the worker waiting until it disconnects.\n\nA remote attacker can take every worker with a few such connections, five with the default worker count, so the server stops answering requests.\n\nVersion 0.4019 applies read_timeout to each wait for body data and adds a body_timeout limit, 300 seconds by default, on the total time to read a body.","status":"published","published":"2026-10-25T16:50:33.914Z","modified":"2026-11-02T14:17:17.089Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"adp"}],"cwes":["CWE-770"],"updated_at":"2026-11-02T18:00:08.034842Z"}],"euvd":[{"id":"EUVD-2026-109558","description":"Starman versions before 0.4019 for Perl allow a stalled request body to hold a worker indefinitely, as read_timeout covers only the headers.\n\nContent-Length and chunked request bodies are read with blocking reads and no deadline. A client that sends complete headers and then stalls or trickles the body keeps the worker waiting until it disconnects.\n\nA remote attacker can take every worker with a few such connections, five with the default worker count, so the server stops answering requests.\n\nVersion 0.4019 applies read_timeout to each wait for body data and adds a body_timeout limit, 300 seconds by default, on the total time to read a body.","status":"published","published":"2026-10-25T16:50:33Z","modified":"2026-11-02T14:17:17Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-02T16:58:45.261111Z"}],"ghsa":[{"id":"GHSA-xcqf-6xfj-3q3x","title":"Starman versions before 0.4019 for Perl allow a stalled request body to hold a worker...","description":"Starman versions before 0.4019 for Perl allow a stalled request body to hold a worker indefinitely, as read_timeout covers only the headers.\n\nContent-Length and chunked request bodies are read with blocking reads and no deadline. A client that sends complete headers and then stalls or trickles the body keeps the worker waiting until it disconnects.\n\nA remote attacker can take every worker with a few such connections, five with the default worker count, so the server stops answering requests.\n\nVersion 0.4019 applies read_timeout to each wait for body data and adds a body_timeout limit, 300 seconds by default, on the total time to read a body.","status":"published","published":"2026-10-25T18:31:41Z","modified":"2026-11-02T15:31:26Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-770"],"updated_at":"2026-11-02T18:00:14.917028Z"}],"nvd":[{"id":"CVE-2026-115817","description":"Starman versions before 0.4019 for Perl allow a stalled request body to hold a worker indefinitely, as read_timeout covers only the headers.\n\nContent-Length and chunked request bodies are read with blocking reads and no deadline. A client that sends complete headers and then stalls or trickles the body keeps the worker waiting until it disconnects.\n\nA remote attacker can take every worker with a few such connections, five with the default worker count, so the server stops answering requests.\n\nVersion 0.4019 applies read_timeout to each wait for body data and adds a body_timeout limit, 300 seconds by default, on the total time to read a body.","status":"published","published":"2026-10-25T17:17:00.94Z","modified":"2026-11-02T15:17:15.24Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"secondary"}],"cwes":["CWE-770"],"updated_at":"2026-11-02T20:51:42.820268Z"}],"osv":[{"id":"CVE-2026-115817","title":"Starman versions before 0.4019 for Perl allow a stalled request body to hold a worker indefinitely, as read_timeout covers only the headers","description":"Starman versions before 0.4019 for Perl allow a stalled request body to hold a worker indefinitely, as read_timeout covers only the headers.\n\nContent-Length and chunked request bodies are read with blocking reads and no deadline. A client that sends complete headers and then stalls or trickles the body keeps the worker waiting until it disconnects.\n\nA remote attacker can take every worker with a few such connections, five with the default worker count, so the server stops answering requests.\n\nVersion 0.4019 applies read_timeout to each wait for body data and adds a body_timeout limit, 300 seconds by default, on the total time to read a body.","status":"published","published":"2026-10-25T16:50:33.914Z","modified":"2026-11-04T02:30:41.059491885Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-770"],"updated_at":"2026-11-04T02:54:44.889498Z"},{"id":"DEBIAN-CVE-2026-115817","description":"Starman versions before 0.4019 for Perl allow a stalled request body to hold a worker indefinitely, as read_timeout covers only the headers.  Content-Length and chunked request bodies are read with blocking reads and no deadline. A client that sends complete headers and then stalls or trickles the body keeps the worker waiting until it disconnects.  A remote attacker can take every worker with a few such connections, five with the default worker count, so the server stops answering requests.  Version 0.4019 applies read_timeout to each wait for body data and adds a body_timeout limit, 300 seconds by default, on the total time to read a body.","status":"published","published":"2026-10-25T17:17:00.94Z","modified":"2026-11-03T10:00:32.262324209Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-03T10:27:58.933618Z"},{"id":"UBUNTU-CVE-2026-115817","description":"Starman versions before 0.4019 for Perl allow a stalled request body to hold a worker indefinitely, as read_timeout covers only the headers. Content-Length and chunked request bodies are read with blocking reads and no deadline. A client that sends complete headers and then stalls or trickles the body keeps the worker waiting until it disconnects. A remote attacker can take every worker with a few such connections, five with the default worker count, so the server stops answering requests. Version 0.4019 applies read_timeout to each wait for body data and adds a body_timeout limit, 300 seconds by default, on the total time to read a body.","status":"published","published":"2026-10-25T17:17:00Z","modified":"2026-11-04T03:30:23.693730743Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-04T03:56:39.110241Z"},{"id":"openSUSE-SU-2026:12276-1","title":"perl-Starman-0.4019-1.1 on GA media","description":"These are all security issues fixed in the perl-Starman-0.4019-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-10-26T00:00:00Z","modified":"2026-10-27T17:23:17.902614546Z","updated_at":"2026-11-02T16:58:40.245664Z"}]}}
