Better Auth has an Open Redirect Vulnerability in Verify Email Endpoint
Better Auth is an authentication library for TypeScript. An open redirect vulnerability has been identified in the verify email endpoint of all versions of Better Auth prior to v1.1.6, potentially allowing attackers to redirect users to malicious websites. This issue affects users relying on email verification links generated by the library. The verify email callback endpoint accepts a `callbackURL` parameter. Unlike other verification methods, email verification only uses JWT to verify and redirect without proper validation of the target domain. The origin checker is bypassed in this scenario because it only checks for `POST` requests. An attacker can manipulate this parameter to redirect users to arbitrary URLs controlled by the attacker. Version 1.1.6 contains a patch for the issue.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2024-56734
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 08:15 UTC · Revision 1
Source evidence
Better Auth has an Open Redirect Vulnerability in Verify Email Endpoint
core-osv · Original sourcePublished 30 Dec 2024, 16:48 UTC
Better Auth is an authentication library for TypeScript. An open redirect vulnerability has been identified in the verify email endpoint of all versions of Better Auth prior to v1.1.6, potentially allowing attackers to redirect users to malicious websites. This issue affects users relying on email verification links generated by the library. The verify email callback endpoint accepts a `callbackURL` parameter. Unlike other verification methods, email verification only uses JWT to verify and redirect without proper validation of the target domain. The origin checker is bypassed in this scenario because it only checks for `POST` requests. An attacker can manipulate this parameter to redirect users to arbitrary URLs controlled by the attacker. Version 1.1.6 contains a patch for the issue.
osv:CVE-2024-56734
Complete source record
{
"id": "7a13ae2ab8ec9ab319a8684f2a920a870101761634117ca0b42c40cb2d17a25e",
"url": "https://osv.dev/vulnerability/CVE-2024-56734",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Better Auth has an Open Redirect Vulnerability in Verify Email Endpoint",
"summary": "Better Auth is an authentication library for TypeScript. An open redirect vulnerability has been identified in the verify email endpoint of all versions of Better Auth prior to v1.1.6, potentially allowing attackers to redirect users to malicious websites. This issue affects users relying on email verification links generated by the library. The verify email callback endpoint accepts a `callbackURL` parameter. Unlike other verification methods, email verification only uses JWT to verify and redirect without proper validation of the target domain. The origin checker is bypassed in this scenario because it only checks for `POST` requests. An attacker can manipulate this parameter to redirect users to arbitrary URLs controlled by the attacker. Version 1.1.6 contains a patch for the issue.",
"evidence": "osv:CVE-2024-56734",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2024-56734",
"aliases": [
"CVE-2024-56734",
"GHSA-8jhw-6pjj-8723"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/better-auth/better-auth",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "e7a03bdc0efdf27ba3cd51c2716a3f78d3c0e996"
},
{
"fixed": "deb3d73aea90d0468d92723f4511542b593e522f"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:better-auth:better_auth:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "1.1.6"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "deb3d73aea90d0468d92723f4511542b593e522f"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"v1.1.5",
"v1.1.4",
"v1.1.4-beta.2",
"v1.1.4-beta.1",
"v1.1.3",
"v1.1.3-beta.6",
"v1.1.2",
"v1.1.2-beta.4",
"v1.1.2-beta.3",
"v1.1.2-beta.2",
"v1.1.2-beta.1",
"v1.1.1",
"v1.1.0",
"v1.0.23-beta.6",
"v1.0.23-beta.2",
"v1.0.22",
"v1.0.22-beta.4",
"v1.0.22-beta.3",
"v1.0.22-beta.2",
"v1.0.22-beta.1",
"v1.0.21",
"v1.0.20",
"v1.0.19",
"v1.0.18",
"v1.0.17",
"v1.0.16",
"v1.0.16-beta.2",
"v1.0.16-beta.1",
"v1.0.15",
"v1.0.14",
"v1.0.13",
"v1.0.12",
"v1.0.12-beta.3",
"v1.0.12-beta.2",
"v1.0.12-beta.1",
"v1.0.11",
"v1.0.11-beta.8",
"v1.0.11-beta.7",
"v1.0.11-beta.6",
"v1.0.11-beta.5",
"v1.0.11-beta.4",
"v1.0.11-beta.2",
"v1.0.10",
"v1.0.10-beta.3",
"v1.0.10-beta.2",
"v1.0.10-beta.1",
"v1.0.9",
"v1.0.9-beta.7",
"v1.0.9-beta.6",
"v1.0.9-beta.5",
"v1.0.9-beta.3",
"v1.0.9-beta.1",
"v1.0.8",
"v1.0.8-beta.4",
"v1.0.8-beta.2",
"v1.0.8-beta.1",
"v1.0.7",
"v1.0.6",
"v1.0.5",
"v1.0.4",
"v1.0.3",
"v1.0.2",
"v0.8.9-beta.2",
"v0.8.8",
"v0.8.8-beta.2",
"v0.8.8-beta.1",
"v0.8.7-beta.5",
"v0.8.7-beta.3",
"v0.8.7-beta.2",
"v0.8.7-beta.1",
"v0.8.6-beta.6",
"v0.8.6-beta.3",
"v0.8.6-beta.2",
"v0.8.6-beta.1",
"v0.8.5",
"v0.8.5-beta.3",
"v0.8.5-beta.2",
"v0.8.5-beta.1",
"v0.8.4",
"v0.8.4-beta.7",
"v0.8.4-beta.6",
"v0.8.4-beta.5",
"v0.8.4-beta.4",
"v0.8.3-beta.6",
"v0.8.3-beta.5",
"v0.8.3-beta.4",
"v0.8.3-beta.3",
"v0.8.2",
"v0.8.2-beta.3",
"v0.8.2-beta.1",
"v0.8.1",
"v0.8.1-beta.5",
"v0.8.1-beta.4",
"v0.8.1-beta.3",
"v0.8.1-beta.2",
"v0.8.1-beta.1",
"v0.8.0",
"v0.7.6-beta.4",
"v0.7.6-beta.3",
"v0.7.6-beta.2",
"v0.7.6-beta.1",
"v0.7.5",
"v0.7.5-beta.9",
"v0.7.5-beta.8",
"v0.7.5-beta.7",
"v0.7.5-beta.6",
"v0.7.5-beta.5",
"v0.7.5-beta.4",
"v0.7.5-beta.3",
"v0.7.5-beta.2",
"v0.7.5-beta.1",
"v0.7.4",
"v0.7.3",
"v0.7.3-beta.11",
"v0.7.3-beta.9",
"v0.7.3-beta.8",
"v0.7.3-beta.7",
"v0.7.3-beta.6",
"v0.7.3-beta.5",
"v0.7.3-beta.4",
"v0.7.3-beta.3",
"v0.7.3-beta.2",
"v0.7.3-beta.1",
"v0.7.2",
"v0.7.2-beta.5",
"v0.7.2-beta.4",
"v0.7.1",
"v0.7.1-beta.6",
"v0.7.1-beta.4",
"v0.7.1-beta.3",
"v0.7.1-beta.1",
"v0.7.0",
"v0.7.0-beta.1",
"v0.6.3-beta.5",
"v0.6.2",
"v0.6.2-beta.8",
"v0.6.1",
"v0.6.1-beta.9",
"v0.6.1-beta.7",
"v0.6.1-beta.5",
"v0.6.1-beta.4",
"v0.6.1-beta.3",
"v0.6.1-beta.2",
"v0.6.1-beta.1",
"v0.6.0",
"v0.6.0-beta.1",
"v0.5.4-beta.6",
"v0.5.4-beta.5",
"v0.5.4-beta.4",
"v0.5.4-beta.3",
"v0.5.3",
"v0.5.3-beta.17",
"v0.5.3-beta.16",
"v0.5.3-beta.15",
"v0.5.3-beta.13",
"v0.5.3-beta.11",
"v0.5.3-beta.9",
"v0.5.3-beta.8",
"v0.5.3-beta.7",
"v0.5.3-beta.6",
"v0.5.3-beta.5",
"v0.5.3-beta.4",
"v0.5.3-beta.3",
"v0.5.3-beta.2",
"v0.5.3-beta.1",
"v0.5.2-beta.20",
"v0.5.2-beta.18",
"v0.5.2-beta.17",
"v0.5.2-beta.16",
"v0.5.2-beta.14",
"v0.5.2-beta.13",
"v0.5.2-beta.12",
"v0.5.2-beta.11",
"v0.5.2-beta.10",
"v0.5.2-beta.9",
"v0.5.2-beta.8",
"v0.5.2-beta.7",
"v0.5.2-beta.6",
"v0.5.2-beta.5",
"v0.5.2-beta.2",
"v0.5.1",
"v0.5.1-beta.6",
"v0.5.1-beta.5",
"v0.5.1-beta.4",
"v0.5.1-beta.3",
"v0.5.1-beta.2",
"v0.5.1-beta.1",
"v0.5.0",
"v0.4.14-beta.2",
"v0.4.14-beta.1",
"v0.4.13",
"v0.4.12",
"v0.4.12-beta.7",
"v0.4.12-beta.5",
"v0.4.12-beta.4",
"v0.4.12-beta.3",
"v0.4.12-beta.2",
"v0.4.12-beta.1",
"v0.4.11",
"v0.4.11-beta.3",
"v0.4.11-beta.2",
"v0.4.11-beta.1",
"v0.4.10",
"v0.4.10-beta.5",
"v0.4.10-beta.4",
"v0.4.9-beta.11",
"v0.4.9-beta.7",
"v0.4.9-beta.10",
"v0.4.9-beta.9",
"v0.4.9-beta.8",
"v0.4.9-beta.6",
"v0.4.9-beta.5",
"v0.4.9-beta.4",
"v0.4.9-beta.3",
"v0.4.9-beta.2",
"v0.4.9-beta.1",
"v0.4.8",
"v0.4.7",
"v0.4.7-beta.2",
"v0.4.7-beta.1",
"v0.4.5",
"v0.4.4",
"v0.4.4-beta.1",
"v0.4.3",
"v0.4.3-beta.1",
"v0.4.2",
"v0.4.1",
"v0.4.0",
"v0.3.6",
"v0.3.5",
"v0.3.5-beta.8",
"v0.3.5-beta.7",
"v0.3.5-beta.6",
"v0.3.5-beta.5",
"v0.3.5-beta.4",
"v0.3.5-beta.2",
"v0.3.5-beta.1",
"v0.3.4",
"v0.3.4-beta.6",
"v0.3.4-beta.2",
"v0.3.4-beta.1",
"v0.3.3",
"v0.3.3-beta.12",
"v0.3.3-beta.11",
"v0.3.3-beta.10",
"v0.3.3-beta.9",
"v0.3.3-beta.8",
"v0.3.3-beta.5",
"v0.3.3-beta.4",
"v0.3.3-beta.3",
"v0.3.3-beta.2",
"v0.3.3-beta.1",
"v0.3.2",
"v0.3.0",
"v0.2.11",
"v0.2.10",
"v0.2.9",
"v0.2.9-beta.9",
"v0.2.9-beta.8",
"v0.2.9-beta.7",
"v0.2.9-beta.6",
"v0.2.9-beta.5",
"v0.2.9-beta.4",
"v0.2.9-beta.2",
"v0.2.9-beta.1",
"v0.2.8",
"v0.2.8-beta.13",
"v0.2.8-beta.12",
"v0.2.8-beta.11",
"v0.2.8-beta.10",
"v0.2.8-beta.9",
"v0.2.8-beta.8",
"v0.2.8-beta.1",
"v0.2.6",
"v0.2.6-beta.10",
"v0.2.6-beta.9",
"v0.2.6-beta.8",
"v0.2.6-beta.7",
"v0.2.6-beta.6",
"v0.2.6-beta.5",
"v0.2.6-beta.4",
"v0.2.6-beta.3",
"v0.2.6-beta.1",
"v0.2.5",
"v0.2.5-beta.4",
"v0.2.5-beta.3",
"v0.2.5-beta.1",
"v0.2.3",
"v0.2.2",
"v0.2.1",
"v0.2.1-beta.1",
"v0.1.1-beta.6",
"v0.1.1-beta.5",
"v0.1.1-beta.4",
"v0.1.1-beta.2",
"v0.1.1-beta.1",
"v0.1.0",
"v0.0.10-beta.27",
"v0.0.10-beta.26",
"v0.0.10-beta.25",
"v0.0.10-beta.24",
"v0.0.10-beta.23",
"v0.0.10-beta.22",
"v0.0.10-beta.21",
"v0.0.10-beta.20",
"v0.0.10-beta.19",
"v0.0.10-beta.18",
"v0.0.10-beta.17",
"v0.0.10-beta.16",
"v0.0.10-beta.15",
"v0.0.10-beta.14",
"v0.0.10-beta.13",
"v0.0.10-beta.12",
"v0.0.10-beta.11",
"v0.0.10-beta.10",
"v0.0.10-beta.9",
"v0.0.10-beta.8",
"v0.0.10-beta.7",
"v0.0.10-beta.6",
"v0.0.10-beta.5",
"v0.0.10-beta.4",
"v0.0.10-beta.3",
"v0.0.10-beta.2",
"v0.0.10-beta.1",
"v0.0.9",
"v0.0.9-beta.38",
"v0.0.9-beta.37",
"v0.0.9-beta.36",
"v0.0.9-beta.35",
"v0.0.9-beta.34",
"v0.0.9-beta.33",
"v0.0.9-beta.32",
"v0.0.9-beta.31",
"v0.0.9-beta.30",
"v0.0.9-beta.29",
"v0.0.9-beta.28",
"v0.0.9-beta.27",
"v0.0.9-beta.26",
"v0.0.9-beta.25",
"v0.0.9-beta.24",
"v0.0.9-beta.23",
"v0.0.9-beta.22",
"v0.0.9-beta.21",
"v0.0.9-beta.20",
"v0.0.9-beta.19",
"v0.0.9-beta.18",
"v0.0.9-beta.17",
"v0.0.9-beta.16",
"v0.0.9-beta.15",
"v0.0.9-beta.14",
"v0.0.9-beta.13",
"v0.0.9-beta.12",
"v0.0.9-beta.11",
"v0.0.9-beta.10",
"v0.0.9-beta.9",
"v0.0.9-beta.8",
"v0.0.9-beta.7",
"v0.0.9-beta.6",
"v0.0.9-beta.5",
"v0.0.9-beta.4",
"v0.0.9-beta.3",
"v0.0.9-beta.2",
"v0.0.9-beta.1",
"v0.0.8",
"v0.0.8-beta.29",
"v0.0.8-beta.28",
"v0.0.8-beta.27",
"v0.0.8-beta.26",
"v0.0.8-beta.25",
"v0.0.8-beta.8",
"v0.0.8-beta.24",
"v0.0.8-beta.23",
"v0.0.8-beta.22",
"v0.0.8-beta.21",
"v0.0.8-beta.20",
"v0.0.8-beta.19",
"v0.0.8-beta.18",
"v0.0.8-beta.17",
"v0.0.8-beta.16",
"v0.0.8-beta.15",
"v0.0.8-beta.14",
"v0.0.8-beta.13",
"v0.0.8-beta.12",
"v0.0.8-beta.11",
"v0.0.8-beta.10",
"v0.0.8-beta.9",
"v0.0.8-beta.7",
"v0.0.8-beta.6",
"v0.0.8-beta.5",
"v0.0.8-beta.4",
"v0.0.8-beta.3",
"v0.0.8-beta.2",
"v0.0.8-beta.1",
"v0.0.7",
"v0.0.6",
"v0.0.5",
"v0.0.4",
"v0.0.3",
"v0.0.2"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-56734.json"
}
}
],
"modified": "2026-10-28T02:30:27.263007503Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/56xxx/CVE-2024-56734.json",
"https://github.com/better-auth/better-auth/security/advisories/GHSA-8jhw-6pjj-8723",
"https://nvd.nist.gov/vuln/detail/CVE-2024-56734",
"https://github.com/better-auth/better-auth/commit/deb3d73aea90d0468d92723f4511542b593e522f"
],
"provider_metadata": {
"cwe_ids": [
"CWE-601"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/56xxx/CVE-2024-56734.json"
}
},
"related_cves": [
{
"value": "CVE-2024-56734",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 493702,
"published_at": "2024-12-30T16:48:58.184+00:00"
}