Description
NocoDB is software for building databases as spreadsheets. Prior to 2026.05.1, a stolen refresh token survived a password-forgot flow and could be used to mint fresh JWTs even after the user reset their password. passwordChange and passwordReset deleted the user's refresh tokens, but passwordForgot only rotated token_version and revoked OAuth tokens — it did not call UserRefreshToken.deleteAllUserToken(user.id). An attacker holding a captured refresh cookie could still exchange it for a new access token after the victim triggered the recovery flow. This vulnerability is fixed in 2026.05.1.
Published: 2026-06-23
Score: 6.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

NocoDB fails to delete all refresh tokens when a user triggers the password‑forgot workflow. Prior to version 2026 05 01, the application rotated only the token_version field and revoked OAuth tokens but did not call UserRefreshToken.deleteAllUserToken(user.id). As a result, a stolen refresh cookie remains valid after the victim resets their password, allowing the attacker to exchange it for a new JWT and maintain access indefinitely. This flaw permits persistent unauthorized access through refresh tokens that should have been invalidated.

Affected Systems

The issue affects all NocoDB versions older than 2026.05.1, a software product for building databases as spreadsheets.

Risk and Exploitability

The CVSS score of 6.3 indicates medium severity. Although the EPSS score is unavailable, the vulnerability is not listed in CISA’s KEV catalog. Based on the description, it is inferred that an attacker must first acquire a user’s refresh token, most plausibly by compromising the victim’s session. Once obtained, the attacker can use the token to renew access tokens after a password reset, providing a persistent foothold until the user’s tokens are purged or the system is patched. The vulnerability is fixed in 2026.05.1.

Generated by OpenCVE AI on June 24, 2026 at 10:05 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to NocoDB 2026.05.1 or later to ensure refresh tokens are deleted during password recovery.
  • If an immediate upgrade is not possible, manually delete all existing refresh tokens for affected users via the admin interface or database before initiating password resets.
  • After applying the fix, test with a known stolen refresh token to confirm that it can no longer be exchanged for a new access token following a password reset.

Generated by OpenCVE AI on June 24, 2026 at 10:05 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-r989-7g3j-wjhw NocoDB: Refresh Tokens Persist Through Password Recovery
History

Wed, 24 Jun 2026 00:00:00 +0000

Type Values Removed Values Added
First Time appeared Nocodb
Nocodb nocodb
Vendors & Products Nocodb
Nocodb nocodb

Tue, 23 Jun 2026 20:30:00 +0000

Type Values Removed Values Added
Description NocoDB is software for building databases as spreadsheets. Prior to 2026.05.1, a stolen refresh token survived a password-forgot flow and could be used to mint fresh JWTs even after the user reset their password. passwordChange and passwordReset deleted the user's refresh tokens, but passwordForgot only rotated token_version and revoked OAuth tokens — it did not call UserRefreshToken.deleteAllUserToken(user.id). An attacker holding a captured refresh cookie could still exchange it for a new access token after the victim triggered the recovery flow. This vulnerability is fixed in 2026.05.1.
Title NocoDB: Refresh Tokens Persist Through Password Recovery
Weaknesses CWE-613
References
Metrics cvssV4_0

{'score': 6.3, 'vector': 'CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-06-24T13:13:23.758Z

Reserved: 2026-06-11T15:46:12.317Z

Link: CVE-2026-53928

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-06-24T10:15:05Z

Weaknesses
  • CWE-613

    Insufficient Session Expiration