---
id: CVE-2026-114629
title: >-
  Web::Simple versions before 0.035 for Perl allocate a buffer sized by the
  Content-Length header for urlencoded body parameters
summary: >-
  Web::Simple versions before 0.035 for Perl allocate a buffer sized by the
  Content-Length header for urlencoded body parameters.


  Web::Dispatch::ParamParser::get_unpacked_body_from reads an
  application/x-www-form-urlencoded body using a s…
severity: none
cwe:
  - CWE-789
product: Web-Simple
affected:
  - Web-Simple < 0.035
published: '2026-10-24'
updated: '2026-10-24'
sourceUpdated: '2026-10-24T16:06:39.380Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-114629'
references:
  - url: >-
      https://github.com/p5sagit/Web-Simple/commit/7e02c4f6204a2898938d357e6efe6dc2679af695.patch
  - url: 'https://metacpan.org/release/ETHER/Web-Simple-0.035/changes'
tags:
  - cve.org
ingestedAt: '2026-10-24T13:59:30.007Z'
---

## Overview

Web::Simple versions before 0.035 for Perl allocate a buffer sized by the Content-Length header for urlencoded body parameters.

Web::Dispatch::ParamParser::get_unpacked_body_from reads an application/x-www-form-urlencoded body using a single read call, with no cap and the return value ignored. Perl's read grows the buffer to the requested length before reading, so the declared Content-Length determines the allocation.

An attacker can trigger this through any route whose dispatch specification has a % body-parameter match, such as sub (POST + %name=), sending a Content-Length far larger than the body actually sent. No authentication is involved.

## Affected

- `Web-Simple < 0.035`

## Remediation

Upgrade to Web::Simple 0.035 or later, and in the application configure $Web::Dispatch::ParamParser::MAX_BODY_SIZE.

### Workarounds

For deployments that cannot upgrade but are running behind a reverse proxy, configure the proxy to reject requests above a maxiumum Content-Length.
