Security Advisories (1)
CVE-2026-115825 (2026-10-25)

HTTP::Server::PSGI versions before 1.0056 for Perl allow a single request to crash the server by declaring a large Content-Length. The request body is read with sysread() calls sized by the remaining Content-Length. Perl grows the read buffer to the requested length before any data arrives, so the server tries to allocate as much memory as the client declares. A remote attacker can send one request with a large Content-Length and a few body bytes, and perl exits with an out-of-memory error before the application is called. HTTP::Server::PSGI runs as a single process, so the server stays down until restarted.

NAME

Plack::Middleware::RearrangeHeaders - Reorder HTTP headers for buggy clients

SYNOPSIS

use Plack::Builder;

my $app = sub {
    return [ 200, [
        'Last-Modified' => 'Wed, 23 Sep 2009 13:36:33 GMT',
        'Content-Type' => 'text/plain',
        'ETag' => 'foo bar',
    ], [ 'Hello Foo' ] ];
};

builder {
    enable "Plack::Middleware::RearrangeHeaders";
    $app;
};

DESCRIPTION

Plack::Middleware::RearrangeHeaders sorts HTTP headers based on "Good Practice" i.e.:

# "Good Practice" order of HTTP message headers:
#    - Response-Headers
#    - Entity-Headers

to work around buggy clients like very old MSIE or broken HTTP proxy servers. Most clients today don't (and shouldn't) care about HTTP header order but if you're too pedantic or have some environments where you need to deal with buggy clients like above, this might be useful.

AUTHOR

Tatsuhiko Miyagawa

SEE ALSO

HTTP::Headers