### Summary OAuth access and refresh tokens were not revoked when the user changed, reset, or recovered their password, leaving an attacker-issued OAuth grant valid after the user believed they had locked the attacker out. ### Details `revokeAllOAuthTokensByUser` in the users service was an empty stub being called from `passwordChange`, `passwordForgot`, and `passwordReset`. It now delegates to `OAuthToken.revokeAllByUser(userId)`, which deletes the rows and invalidates the related auth caches. All three reset/recovery flows now consistently revoke refresh tokens (GHSA-r989-7g3j-wjhw), OAuth tokens (this advisory), and rotate `token_version`. ### Impact Persistent unauthorized access through previously issued OAuth tokens after a documented security event (password change, forgot, or reset). ### Credit This issue was reported by [@bugbunny-research](https://github.com/bugbunny-research).
Update nocodb to 2026.05.1 if you use the affected versions. Test the change in a non-production environment first.
Local check
hol-guard supply-chain scanNocoDB: OAuth Tokens Persist Through Security Events affects nocodb (npm). Severity is medium. ### Summary OAuth access and refresh tokens were not revoked when the user changed, reset, or recovered their password, leaving an attacker-issued OAuth grant valid after the user believed they had locked the attacker out. ### Details `revokeAllOAuthTokensByUser` in the users service was an empty stub being called from `passwordChange`, `passwordForgot`, and `passwordReset`. It now delegates to `OAuthToken.revokeAllByUser(userId)`, which deletes the rows and invalidates the related auth caches. All three reset/recovery flows now consistently revoke refresh tokens (GHSA-r989-7g3j-wjhw), OAuth tokens (this advisory), and rotate `token_version`. ### Impact Persistent unauthorized access through previously issued OAuth tokens after a documented security event (password change, forgot, or reset). ### Credit This issue was reported by [@bugbunny-research](https://github.com/bugbunny-research).
AI coding agents often install or upgrade packages automatically in npm. A medium vulnerability in a dependency can be pulled into a project through a normal install or update without a human reviewing the change, expanding the blast radius from a single package to every agent workspace that depends on it.
| Package | Affected range |
|---|
### Summary OAuth access and refresh tokens were not revoked when the user changed, reset, or recovered their password, leaving an attacker-issued OAuth grant valid after the user believed they had locked the attacker out. ### Details `revokeAllOAuthTokensByUser` in the users service was an empty stub being called from `passwordChange`, `passwordForgot`, and `passwordReset`. It now delegates to `OAuthToken.revokeAllByUser(userId)`, which deletes the rows and invalidates the related auth caches. All three reset/recovery flows now consistently revoke refresh tokens (GHSA-r989-7g3j-wjhw), OAuth tokens (this advisory), and rotate `token_version`. ### Impact Persistent unauthorized access through previously issued OAuth tokens after a documented security event (password change, forgot, or reset). ### Credit This issue was reported by [@bugbunny-research](https://github.com/bugbunny-research).
Update nocodb to 2026.05.1 if you use the affected versions. Test the change in a non-production environment first.
Local check
hol-guard supply-chain scanNocoDB: OAuth Tokens Persist Through Security Events affects nocodb (npm). Severity is medium. ### Summary OAuth access and refresh tokens were not revoked when the user changed, reset, or recovered their password, leaving an attacker-issued OAuth grant valid after the user believed they had locked the attacker out. ### Details `revokeAllOAuthTokensByUser` in the users service was an empty stub being called from `passwordChange`, `passwordForgot`, and `passwordReset`. It now delegates to `OAuthToken.revokeAllByUser(userId)`, which deletes the rows and invalidates the related auth caches. All three reset/recovery flows now consistently revoke refresh tokens (GHSA-r989-7g3j-wjhw), OAuth tokens (this advisory), and rotate `token_version`. ### Impact Persistent unauthorized access through previously issued OAuth tokens after a documented security event (password change, forgot, or reset). ### Credit This issue was reported by [@bugbunny-research](https://github.com/bugbunny-research).
AI coding agents often install or upgrade packages automatically in npm. A medium vulnerability in a dependency can be pulled into a project through a normal install or update without a human reviewing the change, expanding the blast radius from a single package to every agent workspace that depends on it.
| Package | Affected range |
|---|
| Fixed version |
|---|
| nocodbnpm | <=2026.05.0 | 2026.05.1 |
|---|
Fixed versions are reported by the source feed; confirm compatibility before updating.
Reported by GitHub Security Advisories (ghsa).
HOL Guard can help your team review package activity against supported protection paths.
Explore HOL Guard| Fixed version |
|---|
| nocodbnpm | <=2026.05.0 | 2026.05.1 |
|---|
Fixed versions are reported by the source feed; confirm compatibility before updating.
Reported by GitHub Security Advisories (ghsa).
HOL Guard can help your team review package activity against supported protection paths.
Explore HOL Guard