File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ ---
2+ gem : faraday-http-cache
3+ ghsa : c33f-42f2-gwcc
4+ url : https://github.com/sourcelevel/faraday-http-cache/security/advisories/GHSA-c33f-42f2-gwcc
5+ title : Shared cache serves responses to authenticated requests to other callers
6+ date : 2026-09-15
7+ description : |
8+ faraday-http-cache acts as a shared cache by default (shared_cache: true).
9+ The ByUrl strategy keys entries on method and URL and treats a cached
10+ response without a Vary header as matching every request, and the
11+ ByVary strategy relies on the origin listing Authorization in Vary.
12+ A response to a request that carried an Authorization header is
13+ therefore stored and served to later requests from different callers
14+ whenever the origin omits Vary and does not mark the response private.
15+
16+ RFC 9111 section 3.5 requires a shared cache not to reuse such a
17+ response unless it carries public, must-revalidate or s-maxage. The
18+ middleware did not implement that rule.
19+
20+ NOTE: Versions 2.0.0 through 2.7.0 were confirmed by the reporter;
21+ the 1.x line was not tested.
22+
23+ ## CREDIT
24+
25+ Reported by Matthew Mongeau (Ruby Central / Project Glasswing).
26+ RFC 9111 section 3.5.
27+ cvss_v3 : 6.5
28+ patched_versions :
29+ - " >= 2.8.0"
30+ related :
31+ url :
32+ - https://rubygems.org/gems/faraday-http-cache/versions/2.8.0
33+ - https://github.com/sourcelevel/faraday-http-cache/blob/master/CHANGELOG.md#280-2026-09-15
34+ - https://github.com/sourcelevel/faraday-http-cache/compare/v2.7.0...v2.8.0
35+ - https://github.com/sourcelevel/faraday-http-cache/security/advisories/GHSA-c33f-42f2-gwcc
36+ notes : |
37+ - cvss_v3 from GHSA URL.
38+ - No CVE in GHSA URL.
Original file line number Diff line number Diff line change 1+ ---
2+ gem : faraday-http-cache
3+ ghsa : p8jg-8p9f-pgmr
4+ url : https://github.com/sourcelevel/faraday-http-cache/security/advisories/GHSA-p8jg-8p9f-pgmr
5+ title : Cache entries deserialized with JSON.load can instantiate
6+ arbitrary classes named by an origin server
7+ date : 2026-09-15
8+ description : |
9+ faraday-http-cache stores cached responses with the JSON module by
10+ default and reads them back with JSON.load, which honours the
11+ json_class key and calls json_create on the named class. Response
12+ headers are stored verbatim inside the cache entry, so an origin
13+ server that returns a json_class response header causes that class
14+ to be instantiated in the client process on the next cache hit. Any
15+ application that uses the middleware to fetch URLs it does not
16+ fully control is affected with the default configuration, through
17+ both the ByUrl and ByVary strategies.
18+
19+ NOTE: Versions 2.0.0 through 2.7.0 were confirmed by the reporter;
20+ the 1.x line was not tested but uses the same deserialization path.
21+
22+ ## CREDIT
23+
24+ Reported by Matthew Mongeau (Ruby Central / Project Glasswing).
25+ cvss_v3 : 8.1
26+ patched_versions :
27+ - " >= 2.8.0"
28+ related :
29+ url :
30+ - https://rubygems.org/gems/faraday-http-cache/versions/2.8.0
31+ - https://github.com/sourcelevel/faraday-http-cache/blob/master/CHANGELOG.md#280-2026-09-15
32+ - https://github.com/sourcelevel/faraday-http-cache/compare/v2.7.0...v2.8.0
33+ - https://github.com/sourcelevel/faraday-http-cache/security/advisories/GHSA-p8jg-8p9f-pgmr
34+ notes : |
35+ - cvss_v3 from GHSA URL.
36+ - No CVE in GHSA URL.
You can’t perform that action at this time.
0 commit comments