CVE-2026-116128
Starlet versions from 0.20 before 0.33 for Perl allow memory exhaustion via unbounded buffering when decoding chunked request bodies
Starlet versions from 0.20 before 0.33 for Perl allow memory exhaustion via unbounded buffering when decoding chunked request bodies.
The decoder adds each read to one buffer of unconsumed input. Nothing limits the length of a chunk-size line, so a line without a CRLF grows the buffer for as long as the client keeps sending, and the read timeout restarts after every read. The data of a large chunk is also held in the buffer until the whole chunk has arrived.
A remote attacker can exhaust a worker's memory with a single request.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
Starlet versions from 0.20 before 0.33 for Perl allow memory exhaustion via unbounded buffering when decoding chunked request bodies
Starlet versions from 0.20 before 0.33 for Perl allow memory exhaustion via unbounded buffering when decoding chunked request bodies.
The decoder adds each read to one buffer of unconsumed input. Nothing limits the length of a chunk-size line, so a line without a CRLF grows the buffer for as long as the client keeps sending, and the read timeout restarts after every read. The data of a large chunk is also held in the buffer until the whole chunk has arrived.
A remote attacker can exhaust a worker's memory with a single request.
- Record
CVE-2026-116128- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-06
EUVDEUVD-2026-113909
7.5
Starlet versions from 0.20 before 0.33 for Perl allow memory exhaustion via unbounded buffering when decoding chunked request bodies.
The decoder adds each read to one buffer of unconsumed input. Nothing limits the length of a chunk-size line, so a line without a CRLF grows the buffer for as long as the client keeps sending, and the read timeout restarts after every read. The data of a large chunk is also held in the buffer until the whole chunk has arrived.
A remote attacker can exhaust a worker's memory with a single request.
- Record
EUVD-2026-113909- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-06
GitHub AdvisoriesGHSA-jrjq-4h5w-6gv7
7.5
Starlet versions from 0.20 before 0.33 for Perl allow memory exhaustion via unbounded buffering...
Starlet versions from 0.20 before 0.33 for Perl allow memory exhaustion via unbounded buffering when decoding chunked request bodies.
The decoder adds each read to one buffer of unconsumed input. Nothing limits the length of a chunk-size line, so a line without a CRLF grows the buffer for as long as the client keeps sending, and the read timeout restarts after every read. The data of a large chunk is also held in the buffer until the whole chunk has arrived.
A remote attacker can exhaust a worker's memory with a single request.
- Record
GHSA-jrjq-4h5w-6gv7- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-06
NVD
7.5
Starlet versions from 0.20 before 0.33 for Perl allow memory exhaustion via unbounded buffering when decoding chunked request bodies.
The decoder adds each read to one buffer of unconsumed input. Nothing limits the length of a chunk-size line, so a line without a CRLF grows the buffer for as long as the client keeps sending, and the read timeout restarts after every read. The data of a large chunk is also held in the buffer until the whole chunk has arrived.
A remote attacker can exhaust a worker's memory with a single request.
- Record
CVE-2026-116128- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-06
OSV
7.5
Starlet versions from 0.20 before 0.33 for Perl allow memory exhaustion via unbounded buffering when decoding chunked request bodies
Starlet versions from 0.20 before 0.33 for Perl allow memory exhaustion via unbounded buffering when decoding chunked request bodies.
The decoder adds each read to one buffer of unconsumed input. Nothing limits the length of a chunk-size line, so a line without a CRLF grows the buffer for as long as the client keeps sending, and the read timeout restarts after every read. The data of a large chunk is also held in the buffer until the whole chunk has arrived.
A remote attacker can exhaust a worker's memory with a single request.
- Record
CVE-2026-116128- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-07
OSVDEBIAN-CVE-2026-116128
7.5
Starlet versions from 0.20 before 0.33 for Perl allow memory exhaustion via unbounded buffering when decoding chunked request bodies. The decoder adds each read to one buffer of unconsumed input. Nothing limits the length of a chunk-size line, so a line without a CRLF grows the buffer for as long as the client keeps sending, and the read timeout restarts after every read. The data of a large chunk is also held in the buffer until the whole chunk has arrived. A remote attacker can exhaust a worker's memory with a single request.
- Record
DEBIAN-CVE-2026-116128- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-07
OSVUBUNTU-CVE-2026-116128 No score
Starlet versions from 0.20 before 0.33 for Perl allow memory exhaustion via unbounded buffering when decoding chunked request bodies. The decoder adds each read to one buffer of unconsumed input. Nothing limits the length of a chunk-size line, so a line without a CRLF grows the buffer for as long as the client keeps sending, and the read timeout restarts after every read. The data of a large chunk is also held in the buffer until the whole chunk has arrived. A remote attacker can exhaust a worker's memory with a single request.
- Record
UBUNTU-CVE-2026-116128- Updated
- 2026-11-05
Affected packages
| Package | Affected | Fixed |
|---|---|---|
starletDebian:12 |
All versions, plus listed versions 0.31-20.31-30.32-10.33-1 |
None known |
starletDebian:13 |
All versions, plus listed versions 0.31-20.31-2+deb13u10.31-30.32-10.33-1 |
None known |
starletDebian:14 |
before 0.33-1, plus listed versions 0.31-20.31-30.32-1 |
0.33-1 |
starletUbuntu:16.04:LTS |
All versions, plus listed versions 0.25-10.26-10.28-1 |
None known |
starletUbuntu:18.04:LTS |
All versions, plus listed versions 0.31-1 |
None known |
starletUbuntu:20.04:LTS |
All versions, plus listed versions 0.31-1 |
None known |
starletUbuntu:22.04:LTS |
All versions, plus listed versions 0.31-1.1 |
None known |
starletUbuntu:24.04:LTS |
All versions, plus listed versions 0.31-2 |
None known |
starletUbuntu:26.10 |
All versions, plus listed versions 0.31-2build10.31-30.32-1 |
None known |
starletUbuntu:26.04:LTS |
All versions, plus listed versions 0.31-20.31-2build1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| severity | CVE List, OSV | |
| affected, aliases, facts, references | OSV | |
| affected, facts | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-116128 is a high vulnerability (CVSS 7.5) in starlet, published October 30, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.38%, the 32nd percentile. Fixed in starlet 0.33-1.
References
github.com/kazuho/Starlet/commit/f3472712fff64329a43d86368768d80b61714106.patch
metacpan.org/release/KAZUHO/Starlet-0.33/changes
nvd.nist.gov/vuln/detail/CVE-2026-116128
github.com/advisories/GHSA-jrjq-4h5w-6gv7
cpan.org/modules
github.com/CVEProject/cvelistV5/tree/main/cves/2026/116xxx/CVE-2026-116128.json