Better Auth is an authentication and authorization library for TypeScript. From 1.4.0-beta.18 until 1.7.7, deployments that enable Magic Link with storeToken set to plain, or with storeToken set to hashed and the global verification.storeIdentifier setting also set to hashed, enable a built-in social or Generic OAuth provider, and use account.storeStateStrategy set to database can accept an OAuth sign-in state value as a Magic Link token. These settings can cause Magic Link verification records and OAuth state to resolve to the same stored identifier, allowing an unauthenticated attacker to start OAuth sign-in for a known email address and redeem the returned state through Magic Link without controlling the mailbox or completing the provider callback. The attacker can obtain a normal session for an existing user, or create an account incorrectly marked as email verified when sign-up is enabled. This issue is fixed in version 1.7.7.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-287"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/114xxx/CVE-2026-114607.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "1.4.0-beta.18"
},
{
"fixed": "1.7.7"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "ac54bfd67821a7607533af2059858b12bc54e26a"
}
],
"source": "REFERENCES_COMMIT"
},
{
"original_tag": "v1.7.7",
"range": [
{
"fixed": "db02f233918ad1233bf0753e437e1c0da353273d"
}
],
"source": "REFERENCES_TAG"
}
]
}