<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Mon, 28 Sep 2026 12:35:25 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-88952 — OAuth2 sign-in attached to an existing account without an email comparison in AshAuthentication</title>
      <link>https://db.gcve.eu/vuln/cve-2026-88952</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; team-alembic ash_authentication&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;AshAuthentication.Strategy.OAuth2.UserResolver.resolve/3 matches an existing account using the register action&amp;#39;s upsert_identity keys, then gates linking the incoming provider identity to it on email_trusted?/2, which reads only the provider&amp;#39;s email_verified boolean and never compares the provider&amp;#39;s email value with the matched account&amp;#39;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&amp;#39;s read filter instead. The upsert also rewrites the matched account&amp;#39;s email to the attacker&amp;#39;s address, so later account recovery reaches the attacker rather than the owner.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; team-alembic ash_authentication&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;AshAuthentication.Strategy.OAuth2.UserResolver.resolve/3 matches an existing account using the register action&amp;#39;s upsert_identity keys, then gates linking the incoming provider identity to it on email_trusted?/2, which reads only the provider&amp;#39;s email_verified boolean and never compares the provider&amp;#39;s email value with the matched account&amp;#39;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&amp;#39;s read filter instead. The upsert also rewrites the matched account&amp;#39;s email to the attacker&amp;#39;s address, so later account recovery reaches the attacker rather than the owner.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-88952</guid>
    </item>
  </channel>
</rss>
