Affected versions of the better-auth passkey plugin allow users with any valid session to delete arbitrary passkeys via their ID using POST /passkey/delete-passkey.
ctx.body.id is implicitly trusted and used in passkey deletion queries.
better-auth applications configured with useNumberId may use auto incrementing IDs which makes it trivial to delete all passkeys via enumeration.
{
"nvd_published_at": null,
"github_reviewed_at": "2025-11-25T21:42:53Z",
"severity": "HIGH",
"github_reviewed": true,
"cwe_ids": [
"CWE-284",
"CWE-639"
]
}