With no explicit cache backend, WWW::Mechanize::Cached constructs a default Cache::FileCache under /tmp/FileCache without overriding the backend's documented directory_umask of 000, so the cache root and its subdirectories are created mode 0777 with no sticky bit. Cache entries are named by sha1_hex of the request and read back through Storable::thaw on the next cache hit.
A local attacker with write access to the cache tree can replace a victim's cache entry for a known URL with an arbitrary frozen HTTP::Response blob, causing the victim's next get() of that URL to return attacker controlled response bytes. Because the bytes are passed to Storable::thaw, a victim process that has loaded any class with a side-effectful STORABLE_thaw, DESTROY, or overload hook can be escalated to arbitrary code execution.
Project Subscriptions
No advisories yet.
Solution
Upgrade to WWW-Mechanize-Cached 2.00 or later.
Workaround
No workaround given by the vendor.
Mon, 18 May 2026 18:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Oalders www\
|
|
| CPEs | cpe:2.3:a:oalders:www\:\:mechanize\:\:cached:*:*:*:*:*:perl:*:* | |
| Vendors & Products |
Oalders www\
|
Sun, 17 May 2026 18:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Oalders
Oalders www::mechanize::cached |
|
| Vendors & Products |
Oalders
Oalders www::mechanize::cached |
Fri, 15 May 2026 15:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
cvssV3_1
|
Fri, 15 May 2026 06:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
Fri, 15 May 2026 02:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | WWW::Mechanize::Cached versions before 2.00 for Perl deserialize cached HTTP responses from a world-writable on-disk cache, enabling local response forgery and code execution. With no explicit cache backend, WWW::Mechanize::Cached constructs a default Cache::FileCache under /tmp/FileCache without overriding the backend's documented directory_umask of 000, so the cache root and its subdirectories are created mode 0777 with no sticky bit. Cache entries are named by sha1_hex of the request and read back through Storable::thaw on the next cache hit. A local attacker with write access to the cache tree can replace a victim's cache entry for a known URL with an arbitrary frozen HTTP::Response blob, causing the victim's next get() of that URL to return attacker controlled response bytes. Because the bytes are passed to Storable::thaw, a victim process that has loaded any class with a side-effectful STORABLE_thaw, DESTROY, or overload hook can be escalated to arbitrary code execution. | |
| Title | WWW::Mechanize::Cached versions before 2.00 for Perl deserialize cached HTTP responses from a world-writable on-disk cache, enabling local response forgery and code execution | |
| Weaknesses | CWE-502 CWE-732 |
|
| References |
|
Projects
Sign in to view the affected projects.
Status: PUBLISHED
Assigner: CPANSec
Published:
Updated: 2026-05-15T14:31:14.593Z
Reserved: 2026-05-14T16:30:23.954Z
Link: CVE-2026-8612
Updated: 2026-05-15T05:18:42.682Z
Status : Analyzed
Published: 2026-05-15T02:16:23.843
Modified: 2026-05-18T18:17:21.243
Link: CVE-2026-8612
No data.
OpenCVE Enrichment
Updated: 2026-05-17T17:01:54Z