Security Advisories (1)
CVE-2026-114629 (2026-10-24)

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.

SYNOPSIS

## in your .cgi
#!/usr/bin/perl
use Plack::Server::CGI;

# or Plack::Util::load_psgi("/path/to/app.psgi");
my $app = sub {
    my $env = shift;
    return [
        200,
        [ 'Content-Type' => 'text/plain', 'Content-Length' => 13 ],
        'Hello, world!',
    ];
};

Plack::Server::CGI->new->run($app);

SEE ALSO

Plack::Server::Base