chore(deps): update dependency better-auth to v1.3.26 [security] #2468
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.


This PR contains the following updates:
1.3.7->1.3.26GitHub Vulnerability Alerts
CVE-2025-61928
Summary
Unauthenticated attackers can create or modify API keys for any user by passing that user's id in the request body to the
api/auth/api-key/createroute.Details
The vulnerability exists in the authentication logic at when checking for user authentication then derives the user as
session?.user ?? (authRequired ? null : { id: ctx.body.userId }). When no session exists butuserIdis present in the request body,authRequiredbecomes false and the user object is set to the attacker-controlled ID. Server-only field validation only executes whenauthRequiredis true (lines 280-295), allowing attackers to set privileged fields. No additional authentication occurs before the database operation, so the malicious payload is accepted. The same pattern exists in the update endpoint.PoC
Response contains the new API key whose userId matches the victim, confirming the bypass.
Impact
This is a critical authentication bypass enabling full an unauthenticated attacker can generate an API key for any user and immediately gain complete authenticated access. This allows the attacker to perform any action as the victim user using the api key, potentially compromise the user data and the application depending on the victim's privileges.
This issue was found by ZeroPath.
Release Notes
better-auth/better-auth (better-auth)
v1.3.26Compare Source
🐞 Bug Fixes
View changes on GitHub
v1.3.25Compare Source
🚀 Features
cli- by @Kinfe123 and @himself65 in #4872 (e1082)🐞 Bug Fixes
requestPasswordReset- by @Eazash in #5014 (d6224)null- by @ping-maxwell in #5036 (84e99)getCustomerCreateParamsnot actually being called - by @ebalo55 and @himself65 in #5019 (cdd6f)🏎 Performance
View changes on GitHub
v1.3.24Compare Source
🚀 Features
🐞 Bug Fixes
onDeleteis ignored - by @himself65 in #4973 (aba9a)🏎 Performance
Auth- by @himself65 in #4930 (574b9)View changes on GitHub
v1.3.23Compare Source
v1.3.22Compare Source
v1.3.21Compare Source
v1.3.20Compare Source
v1.3.19Compare Source
🐞 Bug Fixes
getSessionshouldn't exposeoptionsandpathtypes - by @Bekacru in #4947 (633a7)View changes on GitHub
v1.3.18Compare Source
🐞 Bug Fixes
Set-Cookieheader - by @frectonz in #4388 (15b00)View changes on GitHub
v1.3.17Compare Source
🚀 Features
🐞 Bug Fixes
View changes on GitHub
v1.3.16Compare Source
No significant changes
View changes on GitHub
v1.3.15Compare Source
🐞 Bug Fixes
View changes on GitHub
v1.3.14Compare Source
🚀 Features
🐞 Bug Fixes
Math.flooraround the division when calculating TTL - by @DevDuki, Dusan Misic, ping-maxwell and @himself65 in #4768 (08da9)ctxto DB hooks - by @ping-maxwell in #4769 (39c21)beforeCreateOrganization- by @ping-maxwell in #4765 (25a43)View changes on GitHub
v1.3.13Compare Source
🚀 Features
returnHeaderstogetSession- by @frectonz in #3983 (8a4b3)🐞 Bug Fixes
autoCreateOnSignUpoption as it's not implemented yet - by @Bekacru in #4755 (21bd4)emailfrom query - by @himself65 in #4740 (8709a)View changes on GitHub
v1.3.12Compare Source
🚀 Features
generateOTP- by @ping-maxwell in #4723 (11dbf)🐞 Bug Fixes
View changes on GitHub
v1.3.11Compare Source
🚀 Features
🐞 Bug Fixes
errorCallbackURLin failed oauth flows - by @frectonz in #4650 (43545)init- by @LightTab2 and @himself65 in #4680 (9d216)View changes on GitHub
v1.3.10Compare Source
Maintenance update: We fixed lots of issues from the community. Thanks to everyone for contributing to better-auth.
🚀 Features
🐞 Bug Fixes
refreshTokenExpiresAt- by @himself65 in #4569 (cc007)dontRememberMemode - by @frectonz in #4558 (acb28)method- by @himself65 in #4595 (60930)unknownby default - by @himself65 in #4596 (78250)global.crypto- by @himself65 in #4606 (ef450)onMount- by @frectonz in #4669 (9d6e4)infoshows the correct version - by @himself65 in #4547 (7faae)window.cryptois undefined - by @himself65 in #4620 (7dbc5)checkRolePermissionshouldn't be a promise - by @ping-maxwell in #4533 (abfc4)client_secrectfrom authorizationUrl - by @arslan2012 in #4511 (71aeb)View changes on GitHub
v1.3.9Compare Source
🚀 Features
🐞 Bug Fixes
node:sqlite- by @himself65 in #4415 (14ad4)iatfor/tokenendpoint - by @dvanmali in #4501 (8f80a)/api/authfromwwwAuthenticateValueand properly format the header - by @paoloricciuti in #4462 (4b364)base64.encode- by @himself65 in #4527 (4ebc6)client_key- by @Manokii in #4437 (d8145)View changes on GitHub
v1.3.8Compare Source
🚀 Features
node:sqlite- by @himself65 in #3869 (fc8a2)onUpdatefield on db schema generation - by @himself65 in #4241 (240ef)@defaultand@updatedAtfor prisma generator - by @himself65 in #4375 (c84b3)defaultNow()for drizzle timestamp fields - by @Badbird5907 and @himself65 in #3873 (9fb9b)/admin/update-userrole as array - by @alliefitter in #4371 (6c00b)infoscript - by @himself65 in #4143 (79311)Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.