{"id":25405,"date":"2026-09-18T00:32:32","date_gmt":"2026-09-17T16:32:32","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-88952"},"modified":"2026-09-18T00:32:32","modified_gmt":"2026-09-17T16:32:32","slug":"cve-2026-88952","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-88952","title":{"rendered":"CVE-2026-88952 &#8211; Improper Authentication vulnerability in team-alembic AshAuthentication allows an attacker"},"content":{"rendered":"<p>Improper Authentication vulnerability in team-alembic AshAuthentication allows an attacker to be signed in as another user by linking an OAuth2 identity to an account that is not theirs.<\/p>\n<p>AshAuthentication.Strategy.OAuth2.UserResolver.resolve\/3 matches an existing account using the register action&#8217;s upsert_identity keys, then gates linking the incoming provider identity to it on email_trusted?\/2, which reads only the provider&#8217;s email_verified boolean and never compares the provider&#8217;s email value with the matched account&#8217;s email. That gate assumes the account was matched by its email field, so under any other upsert_identity it is vacuous and an attacker presenting their own verified email is attached to, and issued a session for, an account matched on some other attribute. The same unguarded gate applies in OAuth2.SignInPreparation on the registration_enabled? false path, where the account is matched by the sign-in action&#8217;s read filter instead. The upsert also rewrites the matched account&#8217;s email to the attacker&#8217;s address, so later account recovery reaches the attacker rather than the owner.<\/p>\n<p>This issue affects ash_authentication: from 4.14.0 before 4.15.0 and from 5.0.0-rc.10 before 5.0.0-rc.14.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Improper Authentication vulnerability in team-alembic AshAuthentication allows an attacker to be signed in as another user by linking an OAuth2 identity to an account that is not theirs.<\/p>\n<p>AshAuthentic<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25405","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25405","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25405"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25405"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25405"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}