{"id":"GHSA-9h33-g3ww-mqff","summary":"Pocket ID: OAuth redirect_uri validation bypass via userinfo/host confusion","details":"### Impact\nA flaw in callback URL validation allowed crafted `redirect_uri` values containing URL userinfo (`@`) to bypass legitimate callback pattern checks. If an attacker can trick a user into opening a malicious authorization link, the authorization code may be redirected to an attacker-controlled host.\n\n### Patches\nFixed in `v2.3.1` (commit 3a339e33191c31b68bf57db907f800d9de5ffbc8).\nThe fix replaces delimiter-based callback matching with structured URL pattern matching and updates validation logic/tests.\n\n### Workarounds\n- Reject callback URLs containing userinfo (`@`) at reverse proxy / app policy level if feasible.","aliases":["CVE-2026-28512","GO-2026-4653"],"modified":"2026-03-12T02:11:33.829426654Z","published":"2026-03-09T17:24:27Z","database_specific":{"cwe_ids":["CWE-601"],"severity":"HIGH","github_reviewed":true,"github_reviewed_at":"2026-03-09T17:24:27Z","nvd_published_at":"2026-03-10T17:38:50Z"},"references":[{"type":"WEB","url":"https://github.com/pocket-id/pocket-id/security/advisories/GHSA-9h33-g3ww-mqff"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-28512"},{"type":"WEB","url":"https://github.com/pocket-id/pocket-id/commit/3a339e33191c31b68bf57db907f800d9de5ffbc8"},{"type":"PACKAGE","url":"https://github.com/pocket-id/pocket-id"}],"affected":[{"package":{"name":"github.com/pocket-id/pocket-id/backend","ecosystem":"Go","purl":"pkg:golang/github.com/pocket-id/pocket-id/backend"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.0.0-20260228130835-3a339e33191c"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/03/GHSA-9h33-g3ww-mqff/GHSA-9h33-g3ww-mqff.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N"}]}