Skip to content

fix: prevent authenticated catalog image credential disclosure - #279

Merged
van-geaux merged 2 commits into
mainfrom
fix/security-ghsa-vr98-2hj5-h9wp
Oct 10, 2026
Merged

van-geaux merged 2 commits into
mainfrom
fix/security-ghsa-vr98-2hj5-h9wp

Conversation

@van-geaux

Copy link
Copy Markdown
Owner

Summary

  • Restrict authenticated catalog-image requests to the configured HTTP origin.
  • Strip credentials from external image requests and prevent credential restoration after cross-origin redirects.
  • Bound image responses and scope image caching to the active server/account session.
  • Reject stale image responses after account changes or cache invalidation.
  • Preserve provider-session restoration from PR fix: restore sessions across provider switches #278.

Security context

Remediates private advisory GHSA-vr98-2hj5-h9wp.

Verification

  • 875 JVM tests pass.
  • Android-test compilation and lintDebug pass.
  • Physical-device validation passes for same-origin authentication, external requests, redirects, oversized responses, account switching, stale responses, and cache invalidation.
  • The three security race tests pass after moving their asynchronous requests off the blocking instrumentation thread.

The complete integration class still contains three unrelated existing audiobook/progress failures. This PR does not change audiobook/progress behavior.

Keep the advisory private until the fixed 2.0.0 release is available.

JBWortley and others added 2 commits October 10, 2026 10:48
- bind credentials and cached covers to the active server session
- strip credentials and response cookies across untrusted redirects
- bound image responses and coordinate cache mutations across repositories
- cover account-switch, redirect, size and cache race regressions
@van-geaux
van-geaux merged commit 250152d into main Oct 10, 2026
1 check passed
@van-geaux
van-geaux deleted the fix/security-ghsa-vr98-2hj5-h9wp branch October 10, 2026 05:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants