Browse / CVEs / CVE-2026-28358
CVE-2026-28358· nocodb / nocodb· CWE-204
NocoDB - User Enumeration
mediumseverity
5.3CVSS score
0.7%likelihood of exploitation, next 30 days
52%of all CVEs are less likely
Readycheck to confirm it
NocoDB is software for building databases as spreadsheets. Prior to version 0.301.3, the password forgot endpoint returned different responses for registered and unregistered emails, allowing user enumeration. This issue has been patched in version 0.301.3.
Impact
Attackers can enumerate registered users, potentially aiding further targeted attacks.
Fix
Update to version 0.301.3 or later.
How to confirm it
Send: POST /api/v1/auth/password/forgot
Positive when: contains "Your email has not been registered" AND contains in content_type "application/json" AND status 200Run it with nuclei: nuclei -id CVE-2026-28358 -u <target>. This check is not marked as verified by its authors.
The full check
id: CVE-2026-28358
info:
name: NocoDB - User Enumeration
author: DhiyaneshDk
severity: medium
description: |
NocoDB is software for building databases as spreadsheets. Prior to version 0.301.3, the password forgot endpoint returned different responses for registered and unregistered emails, allowing user enumeration. This issue has been patched in version 0.301.3.
impact: |
Attackers can enumerate registered users, potentially aiding further targeted attacks.
remediation: Update to version 0.301.3 or later.
reference:
- https://github.com/nocodb/nocodb/security/advisories/GHSA-387m-j3p9-3php
- https://github.com/nocodb/nocodb/releases/tag/0.301.3
- https://nvd.nist.gov/vuln/detail/CVE-2026-28358
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
cvss-score: 5.3
cve-id: CVE-2026-28358
cwe-id: CWE-204
epss-score: 0.00651
epss-percentile: 0.51556
metadata:
verified: false
max-request: 1
vendor: nocodb
product: nocodb
shodan-query: http.favicon.hash:-2017596142
tags: cve,cve2026,user-enum,nocodb
variables:
email: "{{randstr}}@{{rand_base(5)}}.com"
http:
- raw:
- |
POST /api/v1/auth/password/forgot HTTP/1.1
Host: {{Hostname}}
Accept: application/json, text/plain, */*
Content-Type: application/json
Origin: {{RootURL}}
Referer: {{RootURL}}/forgot-password
{"email":"{{email}}"}
matchers-condition: and
matchers:
- type: word
part: body
words:
- "Your email has not been registered"
- type: word
part: content_type
words:
- "application/json"
- type: status
status:
- 200References
- https://github.com/nocodb/nocodb/security/advisories/GHSA-387m-j3p9-3php
- https://github.com/nocodb/nocodb/releases/tag/0.301.3
- https://nvd.nist.gov/vuln/detail/CVE-2026-28358
Use this check only on systems you are authorised to test. Where the data comes from