CVE-2026-28396: NocoDB Refresh Tokens Not Revoked on Password Reset
Summary
CVE-2026-28396: NocoDB's Refresh Tokens Not Revoked on Password Reset. Affects nocodb versions < 0.301.3. Fixed in 0.301.3. How to fix ↓
Check if this vulnerability affects your application
Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.
No signup required · Results in about 60 seconds
Background
NocoDB is an open-source platform that transforms your database into a smart spreadsheet interface, allowing users to manage and visualize their data easily. It provides features such as data collaboration, API generation, and integration with various databases. However, a vulnerability has been identified in its password reset functionality, which does not revoke existing refresh tokens, posing a security risk.
Vulnerability Detail
The vulnerability arises from the password reset flow in NocoDB, specifically in the passwordReset() function located in users.service.ts. While this function updates the token_version to invalidate existing JWTs, it fails to call UserRefreshToken.deleteAllUserToken(), which is responsible for deleting all refresh tokens. As a result, an attacker who has previously stolen a refresh token can continue to mint valid JWTs even after the victim has reset their password. This oversight allows unauthorized access until the stolen token expires, potentially compromising user accounts.
How To Fix
Latest published version: 0.301.3 as of 22 Oct 2026
npm install nocodb@0.301.3
The newest release already contains this fix.
Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →
Workaround
As a temporary workaround, users can manually revoke all refresh tokens by implementing a function that calls UserRefreshToken.deleteAllUserToken() whenever a password reset occurs. Here is a sample code snippet to illustrate this workaround:
function passwordReset(userId) {
// Existing password reset logic
updateTokenVersion(userId);
UserRefreshToken.deleteAllUserToken(userId);
// Ensure all refresh tokens are deleted
}
Conclusion
In summary, the vulnerability in NocoDB related to refresh tokens not being revoked during password resets poses a significant security risk. It is crucial for users to update to the latest version or implement the provided workaround to mitigate this issue and protect user accounts.
See every vulnerability recorded for nocodb →
FAQ
An attacker with a stolen refresh token can maintain access to the user's account even after the password has been reset, leading to potential unauthorized actions.
You can use Vulert's playground at Vulert Scanner to check if your application is affected by this vulnerability without needing to sign up.
Implement the provided workaround to revoke all refresh tokens during the password reset process until you can update to the patched version.
The CVSS score for this vulnerability is 4.9, indicating a moderate level of risk.
This issue was reported by @bugbunny-research from bugbunny.ai.
Related vulnerabilities
Recent vulnerabilities recorded for nocodb.