| Title | OALDERS (Olaf Alders)のWWW::Mechanize::Cachedにおける複数の脆弱性 |
|---|---|
| Summary | PerlのWWW::Mechanize::Cached 2.00未満のバージョンは、世界書き込み可能なオンディスクキャッシュからキャッシュされたHTTPレスポンスをデシリアライズするため、ローカルレスポンスの偽造およびコード実行を可能にします。明示的なキャッシュバックエンドが指定されていない場合、WWW::Mechanize::CachedはデフォルトでCache::FileCacheを/tmp/FileCacheに構築し、バックエンドのドキュメントに記載されているdirectory_umask 000をオーバーライドしません。そのため、キャッシュルートおよびサブディレクトリはスティッキービットなしのモード0777で作成されます。キャッシュエントリはリクエストのsha1_hexで名前付けされ、次回のキャッシュヒット時にStorable::thawを介して読み戻されます。キャッシュツリーへの書き込み権限を持つローカル攻撃者は、既知のURLに対する被害者のキャッシュエントリを任意の冷凍されたHTTP::Responseのバイナリで置き換えることができ、被害者が次にそのURLをget()すると、攻撃者制御のレスポンスバイトが返されます。これらのバイトはStorable::thawに渡されるため、STORABLE_thaw、DESTROY、またはオーバーロードフックに副作用を持つクラスを読み込んだ被害者プロセスは、任意のコード実行にエスカレートされる可能性があります。 |
| Possible impacts | 当該ソフトウェアが扱う情報の一部が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う情報の一部が書き換えられる可能性があります。 さらに、当該ソフトウェアの一部が停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| Solution | 正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。 |
| Publication Date | May 15, 2026, midnight |
| Registration Date | May 20, 2026, 1:21 p.m. |
| Last Update | May 20, 2026, 1:21 p.m. |
| CVSS3.0 : 警告 | |
| Score | 5.3 |
|---|---|
| Vector | CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L |
| OALDERS (Olaf Alders) |
| WWW::Mechanize::Cached 2.00 未満 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年05月20日] 掲載 |
May 20, 2026, 1:21 p.m. |
| Summary | 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. |
|---|---|
| Publication Date | May 15, 2026, 11:16 a.m. |
| Registration Date | May 17, 2026, 4:11 a.m. |
| Last Update | May 19, 2026, 3:17 a.m. |
| Configuration1 | or higher | or less | more than | less than | |
| cpe:2.3:a:oalders:www\:\:mechanize\:\:cached:*:*:*:*:*:perl:*:* | 2.00 | ||||