Skip to content
Heist/ feed
Back to feed
High

Confirmation token accepted on any record in AshAuthentication

Type: advisorySources: OSV

Authorization Bypass Through User-Controlled Key vulnerability in team-alembic AshAuthentication allows an authenticated attacker to overwrite and confirm another user's email address, and so take over that account. A confirmation token issued to one user is accepted on any other user's record. AshAuthentication.AddOn.Confirmation.ConfirmChange verifies the token's signature and its act claim, then applies the changes stored against that token to whichever record the changeset targets, never comparing the sub claim against changeset.data. An attacker who registers an account and changes their own email replays the resulting token against a victim's record id, writing in their own address with force_change_attributes/2 and stamping confirmed_at, after which an ordinary password reset yields the account. The library's own confirmation flow is unaffected, because AshAuthentication.AddOn.Confirmation.Actions.confirm/3 resolves sub to a user and targets that record. This issue affects ash_authentication: from 0.5.0 before 4.15.0 and from 5.0.0-rc.0 before 5.0.0-rc.14.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-82685
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 13:07 UTC · Revision 1

Source evidence

Confirmation token accepted on any record in AshAuthentication

core-osv · Original source

Published 17 Sept 2026, 13:08 UTC

Authorization Bypass Through User-Controlled Key vulnerability in team-alembic AshAuthentication allows an authenticated attacker to overwrite and confirm another user's email address, and so take over that account. A confirmation token issued to one user is accepted on any other user's record. AshAuthentication.AddOn.Confirmation.ConfirmChange verifies the token's signature and its act claim, then applies the changes stored against that token to whichever record the changeset targets, never comparing the sub claim against changeset.data. An attacker who registers an account and changes their own email replays the resulting token against a victim's record id, writing in their own address with force_change_attributes/2 and stamping confirmed_at, after which an ordinary password reset yields the account. The library's own confirmation flow is unaffected, because AshAuthentication.AddOn.Confirmation.Actions.confirm/3 resolves sub to a user and targets that record. This issue affects ash_authentication: from 0.5.0 before 4.15.0 and from 5.0.0-rc.0 before 5.0.0-rc.14.

osv:CVE-2026-82685
Complete source record
{
  "id": "8b1fac8707c789df5646364b30d48b247467ba97c3b36916f119bddc6b08facd",
  "url": "https://osv.dev/vulnerability/CVE-2026-82685",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Confirmation token accepted on any record in AshAuthentication",
    "summary": "Authorization Bypass Through User-Controlled Key vulnerability in team-alembic AshAuthentication allows an authenticated attacker to overwrite and confirm another user's email address, and so take over that account. A confirmation token issued to one user is accepted on any other user's record. AshAuthentication.AddOn.Confirmation.ConfirmChange verifies the token's signature and its act claim, then applies the changes stored against that token to whichever record the changeset targets, never comparing the sub claim against changeset.data. An attacker who registers an account and changes their own email replays the resulting token against a victim's record id, writing in their own address with force_change_attributes/2 and stamping confirmed_at, after which an ordinary password reset yields the account. The library's own confirmation flow is unaffected, because AshAuthentication.AddOn.Confirmation.Actions.confirm/3 resolves sub to a user and targets that record. This issue affects ash_authentication: from 0.5.0 before 4.15.0 and from 5.0.0-rc.0 before 5.0.0-rc.14.",
    "evidence": "osv:CVE-2026-82685",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-82685",
      "aliases": [
        "CVE-2026-82685",
        "EEF-CVE-2026-82685",
        "GHSA-g636-26vf-2w63"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/team-alembic/ash_authentication",
              "type": "GIT",
              "events": [
                {
                  "introduced": "1d4bb00617aecae85c33f2ff5bc7e094c6449a6e"
                },
                {
                  "fixed": "d7c15c21d39c009206e010cd67e2d86370fe7a28"
                },
                {
                  "introduced": "73c7788076a01f4336b624a7cc9650492d917135"
                },
                {
                  "fixed": "d6b2be35cf8f0b8ab84e7a934cfb0d91de0a3c17"
                },
                {
                  "introduced": "6767fe27eb952e5bc09aa2e5a7d8f96f5a1c424a"
                },
                {
                  "fixed": "fea75958a081ed337ceb578396174039694c48df"
                },
                {
                  "fixed": "1d4bb00617aecae85c33f2ff5bc7e094c6449a6e"
                },
                {
                  "fixed": "2a2396af131ab67e2f445b805fecce8e6ca86c0e"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "1d4bb00617aecae85c33f2ff5bc7e094c6449a6e"
                      },
                      {
                        "fixed": "d7c15c21d39c009206e010cd67e2d86370fe7a28"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "ChangesAt"
                  },
                  {
                    "range": [
                      {
                        "introduced": "0.5.0"
                      },
                      {
                        "fixed": "4.15.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandardRange"
                  },
                  {
                    "range": [
                      {
                        "introduced": "5.0.0-rc.0"
                      },
                      {
                        "fixed": "5.0.0-rc.14"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandardRange"
                  },
                  {
                    "range": [
                      {
                        "fixed": "1d4bb00617aecae85c33f2ff5bc7e094c6449a6e"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "d7c15c21d39c009206e010cd67e2d86370fe7a28"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "2a2396af131ab67e2f445b805fecce8e6ca86c0e"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v4.14.2",
            "v5.0.0-rc.13",
            "v4.14.1",
            "v5.0.0-rc.12",
            "v5.0.0-rc.11",
            "v5.0.0-rc.10",
            "v4.14.0",
            "v4.13.7",
            "5.0.0-rc.9",
            "5.0.0-rc.8",
            "v5.0.0-rc.7",
            "v5.0.0-rc.6",
            "v5.0.0-rc.5",
            "v5.0.0-rc.4",
            "v5.0.0-rc.3",
            "v5.0.0-rc.2",
            "v5.0.0-rc.1",
            "v5.0.0-rc.0",
            "v4.13.6",
            "v4.13.5",
            "v4.13.4",
            "v4.13.3",
            "v4.13.2",
            "v4.13.1",
            "v4.13.0",
            "v4.12.0",
            "v4.11.0",
            "v4.10.0",
            "v4.9.9",
            "v4.9.8",
            "v4.9.7",
            "v4.9.6",
            "v4.9.5",
            "v4.9.4",
            "v4.9.3",
            "v4.9.2",
            "v4.9.1",
            "v4.9.0",
            "v4.8.7",
            "v4.8.5",
            "v4.8.4",
            "v4.8.3",
            "v4.8.2",
            "v4.8.1",
            "v4.8.0",
            "v4.7.7",
            "v4.7.6",
            "v4.7.5",
            "v4.7.4",
            "v4.7.3",
            "v4.7.2",
            "v4.7.1",
            "v4.7.0",
            "v4.6.4",
            "v4.6.3",
            "v4.6.2",
            "v4.6.1",
            "v4.6.0",
            "v4.5.6",
            "v4.5.5",
            "v4.5.4",
            "v4.5.3",
            "v4.5.2",
            "v4.5.1",
            "v4.4.9",
            "v4.4.8",
            "v4.4.7",
            "v4.4.6",
            "v4.4.5",
            "v4.4.4",
            "v4.4.3",
            "v4.4.2",
            "v4.4.1",
            "v4.4.0",
            "v4.3.12",
            "v4.3.10",
            "v4.3.9",
            "v4.3.7",
            "v4.3.6",
            "v4.3.4",
            "v4.3.3",
            "v4.3.2",
            "v4.3.1",
            "v4.3.0",
            "v4.2.7",
            "v4.2.5",
            "v4.2.3",
            "v4.2.2",
            "v4.2.1",
            "v4.2.0",
            "v4.1.0",
            "v4.0.4",
            "v4.0.3",
            "v4.0.2",
            "v4.0.1",
            "v4.0.0",
            "v4.0.0-rc.7",
            "v4.0.0-rc.6",
            "v4.0.0-rc.5",
            "v4.0.0-rc.4",
            "v4.0.0-rc.3",
            "v4.0.0-rc.2",
            "v4.0.0-rc.1",
            "v4.0.0-rc.0",
            "v3.12.4",
            "v3.12.3",
            "v3.12.2",
            "v3.12.1",
            "v3.12.0",
            "v3.11.16",
            "v3.11.15",
            "v3.11.14",
            "v3.11.13",
            "v3.11.12",
            "v3.11.10",
            "v3.11.9",
            "v3.11.8",
            "v3.11.7",
            "v3.11.6",
            "v3.11.5",
            "v3.11.4",
            "v3.11.3",
            "v3.11.2",
            "v3.11.1",
            "v3.11.0",
            "v3.10.8",
            "v3.10.7",
            "v3.10.6",
            "v3.10.5",
            "v3.10.4",
            "v3.10.2",
            "v3.10.1",
            "v3.10.0",
            "v3.9.6",
            "v3.9.5",
            "v3.9.4",
            "v3.9.3",
            "v3.9.2",
            "v3.9.0",
            "v3.7.9",
            "v3.7.8",
            "v3.7.6",
            "v3.7.5",
            "v3.7.4",
            "v3.7.3",
            "v3.7.2",
            "v3.7.1",
            "v3.7.0",
            "v3.6.1",
            "v3.5.3",
            "v3.5.2",
            "v3.5.1",
            "v3.5.0",
            "v3.4.2",
            "v3.4.1",
            "v3.4.0",
            "v3.3.1",
            "v3.3.0",
            "v3.2.2",
            "v3.2.1",
            "v3.2.0",
            "v3.1.0",
            "v3.0.4",
            "v3.0.3",
            "v3.0.2",
            "v3.0.1",
            "v3.0.0",
            "v2.0.1",
            "v2.0.0",
            "v1.0.0",
            "v0.6.1",
            "v0.6.0",
            "v0.5.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-82685.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:50.903455215Z",
      "provider": "osv",
      "references": [
        "https://cna.erlef.org/cves/CVE-2026-82685.html",
        "https://github.com",
        "https://osv.dev/vulnerability/EEF-CVE-2026-82685",
        "https://repo.hex.pm",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/82xxx/CVE-2026-82685.json",
        "https://github.com/team-alembic/ash_authentication/security/advisories/GHSA-g636-26vf-2w63",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-82685",
        "https://github.com/team-alembic/ash_authentication/commit/1d4bb00617aecae85c33f2ff5bc7e094c6449a6e",
        "https://github.com/team-alembic/ash_authentication/commit/2a2396af131ab67e2f445b805fecce8e6ca86c0e",
        "https://github.com/team-alembic/ash_authentication/commit/d7c15c21d39c009206e010cd67e2d86370fe7a28",
        "https://github.com/team-alembic/ash_authentication"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-639"
        ],
        "cna_assigner": "EEF",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/82xxx/CVE-2026-82685.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-82685",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 519393,
  "published_at": "2026-09-17T13:08:56.491+00:00"
}