{"id":"CVE-2026-117656","title":"Unverified Sign in with Apple callback parameter can override verified ID token claims","summary":"Acceptance of Extraneous Untrusted Data With Trusted Data vulnerability in the Sign in with Apple strategy in pow-auth Assent allows an unauthenticated remote attacker to impersonate another user via the user parameter of the authorizati…","severity":"critical","cvss":9.3,"cvssVector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","cvssSource":"cna","cwe":["CWE-290","CWE-349"],"vendor":"pow-auth","product":"assent","affected":["assent >= 0.1.25 < 0.3.2","pow-auth/assent >= a2d331e8c51376d6c0b04a81aad31e0b4d4d64a3 < 18898bde0296152165ae470078490e5798329b1b"],"ssvc":{"exploitation":"none","automatable":"yes","technicalImpact":"total","timestamp":"2026-11-06T15:58:50.558643Z"},"published":"2026-10-30","updated":"2026-11-06","sourceUpdated":"2026-11-06T15:59:07.242Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-117656","references":[{"url":"https://github.com/pow-auth/assent/security/advisories/GHSA-9fr5-g44g-9526","label":"Unverified Sign in with Apple callback parameter can override verified ID token claims"},{"url":"https://cna.erlef.org/cves/CVE-2026-117656.html","label":"EEF CNA record for CVE-2026-117656"},{"url":"https://osv.dev/vulnerability/EEF-CVE-2026-117656","label":"OSV record EEF-CVE-2026-117656"},{"url":"https://github.com/pow-auth/assent/commit/a2d331e8c51376d6c0b04a81aad31e0b4d4d64a3","label":"Introducing commit a2d331e in pow-auth/assent"},{"url":"https://github.com/pow-auth/assent/commit/18898bde0296152165ae470078490e5798329b1b","label":"Fix commit 18898bd in pow-auth/assent"}],"tags":["cve.org"],"epss":0.00228,"epssPercentile":0.13655,"ingestedAt":"2026-11-05T16:24:31.492Z","slug":"CVE-2026-117656","body":"## Overview\n\nAcceptance of Extraneous Untrusted Data With Trusted Data vulnerability in the Sign in with Apple strategy in pow-auth Assent allows an unauthenticated remote attacker to impersonate another user via the user parameter of the authorization callback.\n\nApple posts the user's name to the callback endpoint in a user form parameter that the browser submits and the client controls. Assent.Strategy.Apple.callback/2 in lib/assent/strategies/apple.ex decodes that parameter, and fetch_user/2 merges it over the claims of the verified ID token, so the unverified map wins. An attacker who completes a Sign in with Apple login with their own Apple ID and edits the user parameter can replace sub, email, and any other claim. Applications that look up, link, or authorize accounts by the returned subject or email then act on the attacker's values.\n\nThis issue affects assent: from 0.1.25 before 0.3.2.\n\n## Affected\n\n- `assent >= 0.1.25 < 0.3.2`\n- `pow-auth/assent >= a2d331e8c51376d6c0b04a81aad31e0b4d4d64a3 < 18898bde0296152165ae470078490e5798329b1b`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n### Workarounds\n\nRemove the user parameter from the callback parameters before you pass them to Assent.Strategy.Apple.callback/2, for example with Map.delete(params, \"user\"). Without the parameter, decode_user_params/2 yields an empty map and the verified ID token claims pass through unchanged. The user's name is then unavailable, because Apple delivers it only through this parameter.","depth":"midnight","depthScore":51,"depthScoreParts":{"impact":51.2,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}