Security Advisories (1)
CVE-2026-7381 (2026-04-29)

Plack::Middleware::XSendfile versions through 1.0053 for Perl can allow client-controlled path rewriting. Plack::Middleware::XSendfile allows the variation setting (sendfile type) to be set by the client via the X-Sendfile-Type header, if it is not considered in the middleware constructor or the Plack environment. A malicious client can set the X-Sendfile-Type header to "X-Accel-Redirect" to services running behind nginx reverse proxies, and then set the X-Accel-Mapping to map the path to an arbitrary file on the server. Since 1.0053, Plack::Middleware::XSendfile is deprecated and will be removed from future releases of Plack. This is similar to CVE-2025-61780 for Rack::Sendfile, although Plack::Middleware::XSendfile has some mitigations that disallow regular expressions to be used in the mapping, and only apply the mapping for the "X-Accel-Redirect" type.

Changes for version 1.0052 - 2024-09-30

  • IMPROVEMENTS
    • Plack::MIME: Add definitions for JPEG XL, zstd and GnuPG file extensions

Documentation

Run PSGI application with Plack handlers

Modules

Converts HTTP::Request and HTTP::Response from/to PSGI env and response UNAUTHORIZED
Standalone PSGI compatible HTTP server UNAUTHORIZED
Perl Superglue for Web frameworks and Web Servers (PSGI toolkit) UNAUTHORIZED
cgi-bin replacement for Plack servers UNAUTHORIZED
Cascadable compound application UNAUTHORIZED
Serve static files from document root with directory index UNAUTHORIZED
Serve static files from root directory UNAUTHORIZED
Run .psgi files from a directory UNAUTHORIZED
Map multiple apps in different paths UNAUTHORIZED
Compiles a CGI script as PSGI application UNAUTHORIZED
OO and DSL to enable Plack Middlewares UNAUTHORIZED
Base class for PSGI endpoints UNAUTHORIZED
Parse HTTP headers UNAUTHORIZED
Pure perl fallback of HTTP::Parser::XS UNAUTHORIZED
Connects PSGI applications and Web servers UNAUTHORIZED
Apache 1.3.x mod_perl handlers to run PSGI application UNAUTHORIZED
Apache 2.0 mod_perl handler to run PSGI application UNAUTHORIZED
Runs .psgi files. UNAUTHORIZED
CGI handler for Plack UNAUTHORIZED
FastCGI handler for Plack UNAUTHORIZED
adapter for HTTP::Server::PSGI UNAUTHORIZED
adapter for HTTP::Server::PSGI UNAUTHORIZED
HTTP::Request/Response compatible interface with HTTP::Tiny backend UNAUTHORIZED
(auto)load Plack Servers UNAUTHORIZED
Delay the loading of .psgi until the first run UNAUTHORIZED
Restarting loader UNAUTHORIZED
forking implementation of plackup UNAUTHORIZED
MIME type registry UNAUTHORIZED
Base class for easy-to-use PSGI middleware UNAUTHORIZED
Logs requests like Apache's log format UNAUTHORIZED
Logs requests with time and accurate body size UNAUTHORIZED
Simple basic authentication middleware UNAUTHORIZED
Enable buffering for non-streaming aware servers UNAUTHORIZED
Applies chunked encoding to the response body UNAUTHORIZED
Conditional wrapper for Plack middleware UNAUTHORIZED
Middleware to enable conditional GET UNAUTHORIZED
Adds Content-Length header automatically UNAUTHORIZED
Automatically sets the Content-MD5 header on all String bodies UNAUTHORIZED
Set Error Document based on HTTP status code UNAUTHORIZED
Catch HTTP exceptions UNAUTHORIZED
auto delete response body in HEAD requests UNAUTHORIZED
fixes wrong SCRIPT_NAME and PATH_INFO that IIS6 sets UNAUTHORIZED
fixes buffer being cut off on redirect when keep-alive is active on IIS. UNAUTHORIZED
Wraps JSON response in JSONP if callback parameter is specified UNAUTHORIZED
fixes wrong SCRIPT_NAME and PATH_INFO that lighttpd sets UNAUTHORIZED
Validate request and response UNAUTHORIZED
Uses Log::Log4perl to configure logger UNAUTHORIZED
Uses Log::Dispatch to configure logger UNAUTHORIZED
Send logs to /dev/null UNAUTHORIZED
Reorder HTTP headers for buggy clients UNAUTHORIZED
Allows PSGI apps to include or forward requests recursively UNAUTHORIZED
Refresh all modules in %INC UNAUTHORIZED
Sets an X-Runtime response header UNAUTHORIZED
Filters response content UNAUTHORIZED
Simple logger that prints to psgi.errors UNAUTHORIZED
Displays stack trace when your app dies UNAUTHORIZED
serve static files with Plack UNAUTHORIZED
Sample middleware to add X-Framework UNAUTHORIZED
Sets X-Sendfile (or a like) header for frontends UNAUTHORIZED
Portable HTTP request object from PSGI env hash UNAUTHORIZED
handles file upload requests UNAUTHORIZED
Portable HTTP Response object for PSGI response UNAUTHORIZED
plackup core UNAUTHORIZED
Test PSGI applications with various backends UNAUTHORIZED
Run mocked HTTP tests through PSGI applications UNAUTHORIZED
Run HTTP tests through live Plack servers UNAUTHORIZED
Test suite for Plack handlers UNAUTHORIZED
Utility subroutines for Plack server and framework developers UNAUTHORIZED
Accessor generation utility for Plack UNAUTHORIZED

Provides

in lib/Plack/Handler/CGI.pm UNAUTHORIZED
in lib/Plack/Middleware/Recursive.pm UNAUTHORIZED
in lib/Plack/TempBuffer.pm UNAUTHORIZED
in lib/Plack/Util.pm UNAUTHORIZED
in lib/Plack/Util.pm UNAUTHORIZED