Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Memo poisoning occurs at dispatch before authentication (PR:N) via a trivial GET (AC:L); reliable impact is per-path denial (A:L) with limited, config-dependent authz-bypass so C:L/I:L rather than H.
Primary rating from Vendor (CPANSec).
CVSS VectorVendor: CPANSec
Lifecycle Timeline
5DescriptionCVE.org
Catalyst::Seal versions before 0.03 for Perl allow one request to disable a path or route a later one past an authorization check via a dispatch memo keyed on the request path alone.
Catalyst::Seal replaces the dispatcher's prepare_action with a version that memoises how a path resolved: which dispatch type matched, at which level, and what was left over as arguments. The key is the request path and nothing else. Action roles that match on the method, content type, scheme or query make that resolution depend on state the key does not carry, so the memo answers for a request it was not built from.
A path that resolves to no action is memoised as well, and replaying that entry returns without consulting any dispatch type, so no action is set and the request fails. A GET of a path whose action is declared POST-only therefore disables that path for every later request, the correct POST included. An entry that did resolve replays the level the earlier descent reached. Where a POST-only action sits below a shallower action on the same path, a GET memoises the shallow route, and a later POST is dispatched there with an auto() guarding the deeper controller never running.
The memo is cleared only when an action is registered, which happens at setup, so an entry lasts for the life of the process, and its cap of 2048 entries bounds how many paths one caller can disable. In the configuration measured, the misroute lands on the less privileged action, so it is an authorization check not running rather than a privilege gain.
AnalysisAI
Catalyst::Seal before 0.03 memoises how a request path resolved using the path alone as the cache key, so an unauthenticated GET to a path whose action is declared POST-only poisons that entry and permanently disables the route for every later request in the same Perl process, including the legitimate POST. Where a POST-only action sits below a shallower action on the same path, a priming GET memoises the shallow route and a subsequent POST is dispatched there, skipping the deeper controller's auto() authorization guard. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
No credit card · 7-day full trial
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Requires a Catalyst web application that has installed Catalyst::Seal before version 0.03, whose dispatcher replaces prepare_action with a path-only memoising variant. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The input CVSS is 8.8 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H), but the description undercuts the full-triad C:H/I:H claim: it states that in the measured configuration the misroute lands on the *less* privileged action, so the effect is 'an authorization check not running rather than a privilege gain.' The reliable, clearly-demonstrated primitive is availability/functional denial - an unauthenticated GET to a POST-only path poisons a path-keyed dispatch memo and disables that path (including the legitimate POST) for the life of the process. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | Full exploit scenario with step-by-step reproduction available after sign-in. |
| Remediation | Vendor-released patch: upgrade Catalyst::Seal to version 0.03, which is the first release that addresses the path-only dispatch memo (release notes: https://metacpan.org/release/LNATION/Catalyst-Seal-0.03/changes). … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours, identify all Catalyst applications that have installed the Catalyst::Seal module, particularly versions before 0.03, and assess whether any POST-only actions are declared below shallower actions on the same path; if the module is not essential, remove or disable it immediately. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
The _compile function in Maketext.pm in the Locale::Maketext implementation in Perl before 5.17.7 does not properly hand
Stack-based buffer overflow in the CPerlHost::Add method in win32/perlhost.h in Perl before 5.24.3-RC1 and 5.26.x before
The VDir::MapPathA and VDir::MapPathW functions in Perl 5.22 allow remote attackers to cause a denial of service (out-of
Perl before 5.26.3 has a buffer overflow via a crafted regular expression that triggers invalid write operations. Rated
Perl before 5.26.3 and 5.28.0 before 5.28.1 has a buffer overflow via a crafted regular expression that triggers invalid
Perl before 5.26.3 has a buffer over-read via a crafted regular expression that triggers disclosure of sensitive informa
Perl might allow context-dependent attackers to bypass the taint protection mechanism in a child process via duplicate e
CPAN.pm before 2.35 does not verify TLS certificates when downloading distributions over HTTPS. Rated high severity (CVS
The XSLoader::load method in XSLoader in Perl does not properly locate .so files when called in a string eval, which mig
In Perl through 5.26.2, the Archive::Tar module allows remote attackers to bypass a directory-traversal protection mecha
The (1) S_reghop3, (2) S_reghop4, and (3) S_reghopmaybe3 functions in regexec.c in Perl before 5.24.0 allow context-depe
Buffer overflow in the S_grok_bslash_N function in regcomp.c in Perl 5 before 5.24.3-RC1 and 5.26.x before 5.26.1-RC1 al
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-86474
GHSA-5qhg-xgvp-wq2g