Sentry SAML, Patreon auth, and locize message-origin identity boundary batch (GHSA-rcmw-7mc7-3rj7 / GHSA-f6qq-3m3h-4g42 / GHSA-w937-fg2h-xhq2)¶
Signal: GitHub Security Advisories updated 2026-04-30. Three identity-boundary bugs landed together: Sentry SAML account takeover, go-pkgz/auth Patreon account collapse, and locize InContext Editor cross-origin DOM XSS / handler hijack.
What it is¶
GHSA-rcmw-7mc7-3rj7: self-hosted Sentry21.12.0through26.4.0can allow account takeover through SAML SSO identity linking when the instance has multiple organizations and an attacker can configure SSO for another organization. Fixed in26.4.1.GHSA-f6qq-3m3h-4g42:github.com/go-pkgz/authPatreon provider maps every Patreon login to the same local user ID, causing cross-user impersonation or subscription/identity leakage. Fixed in1.25.2andv2.1.2.GHSA-w937-fg2h-xhq2: npmlocizebefore4.0.21trustspostMessagesender fields instead of browser-enforcedevent.origin, enabling cross-origin DOM XSS and editor handler hijack in locize-enabled pages.
References:
- https://github.com/advisories/GHSA-rcmw-7mc7-3rj7
- https://github.com/advisories/GHSA-f6qq-3m3h-4g42
- https://github.com/advisories/GHSA-w937-fg2h-xhq2
Triage¶
- Inventory self-hosted Sentry instances and check
SENTRY_SINGLE_ORGANIZATION, SAML SSO use, and organization-admin rights. - Search Go services for
github.com/go-pkgz/authPatreon provider and confirm whethertoken.User.IDis used as the stable account key. - Search browser apps for
locizeInContext Editor usage, especially pages that can be embedded, previewed, or opened by untrusted users. - Prioritize identity surfaces where an attacker can choose an IdP, OAuth provider account, iframe parent, or translation-editor frame.
Mitigation¶
- Upgrade Sentry to
26.4.1+, go-pkgz/auth to1.25.2+/v2.1.2+, and locize to4.0.21+. - Lock down who can configure SAML/OIDC providers and require domain/email-claim ownership checks before identity linking.
- Derive local user IDs from provider-stable, provider-scoped identifiers; never use empty/default user objects as identity keys.
- For
postMessage, require an exact origin allowlist and validate message schema before dispatching privileged handlers. - Disable embedding of sensitive app pages unless explicitly required (
frame-ancestors/ CSP).
Detection ideas¶
- Sentry: hunt new SAML providers, identity-linking events, or logins where a user joins an organization they did not belong to before.
- Patreon auth: look for multiple distinct Patreon accounts mapped to one local user ID or sudden subscription/role changes.
- locize: review browser error logs, CSP reports, and translation-editor actions initiated from unexpected origins or iframes.
Durable lesson¶
Identity code has three separate trust anchors: issuer, subject, and transport origin. Treat any default ID, unsigned browser message field, or tenant-controlled IdP setting as attacker input until it is bound to an explicit allowlist and verified claim.