CVE-2026-15743

Catalyst::Plugin::Static::Simple versions through 0.38 for Perl mark responses as publicly cacheable

Published Aug 20, 2026 CVSS 3.1 · 5.7 Medium EPSS < 1% KEV · Not listed
Description
Catalyst::Plugin::Static::Simple versions through 0.38 for Perl mark responses as publicly cacheable.

The _serve_static method always sets the Cache-Control header to "public", with no means of overriding it. This advises proxies that the content may be stored in a shared cache, and may be reused in responses to requests from other users. (This includes requests with an Authorization header.)

Configuring the expires time to "0" to disable caching, as documented, is ignored.

Remediation

Vendor Workaround

Apply the patch, and configure the default Cache-Control as needed. For deployments that cannot apply the patch, a method modifier of _serve_static in the Catalyst class can be used to override the Cache-Control or Expires headers as needed, for example: around _serve_static => sub { my ( $next, $c, $path, $cache_control ) = @_; $c->$next($path); my $config = $c->config->{'Plugin::Static::Simple'}; $cache_control ||= $config->{cache_control} || "public"; if ( defined $config->{expires} ) { if ( $config->{expires} <= 0 ) { $cache_control = 'no-store'; $c->res->headers->expires(0); } else { $c->res->headers->expires( time() + $config->{expires} ); } } $c->res->headers->header( 'Cache-Control' => $cache_control ); return 1; };

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Metrics cvssV3_1

{'score': 5.7, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N'}

ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Perl-catalyst
Perl-catalyst catalyst Plugin Static Simple
Vendors & Products Perl-catalyst
Perl-catalyst catalyst Plugin Static Simple
Type Values Removed Values Added
Description Catalyst::Plugin::Static::Simple versions through 0.38 for Perl mark responses as publicly cacheable. The _serve_static method always sets the Cache-Control header to "public", with no means of overriding it. This advises proxies that the content may be stored in a shared cache, and may be reused in responses to requests from other users. (This includes requests with an Authorization header.) Configuring the expires time to "0" to disable caching, as documented, is ignored.
Title Catalyst::Plugin::Static::Simple versions through 0.38 for Perl mark responses as publicly cacheable
Weaknesses CWE-524
References
Weaknesses

Sources

Status
PUBLISHED
Assigner
CPANSec
Published
Updated
Oct 19, 2026, 6:25 PM
Reserved
Jul 14, 2026, 2:24 PM
Status
Deferred
Published
Aug 20, 2026, 7:16 PM
Modified
Oct 26, 2026, 10:10 AM