All three CVE entries affect givanz VvvebJs 1.7.2 (a web editor / web UI component). The three issues are distinct but related: two are file-upload related (one explicitly “file upload via save.php”, one “insecure file upload”) and one is a directory-traversal in scan.php. Collectively they allow an attacker who can interact with the web application to place files on the server and/or access files outside intended directories — enabling remote code execution, data disclosure, or privilege escalation depending on server configuration.
Affected software
- givanz VvvebJs 1.7.2 — all three CVEs name this exact package/version. (This is the authoritative affected-product line reported in CVE feeds and GitHub advisories.)
Per-CVE technical details
CVE-2024-27480 — Insecure File Upload (givanz VvvebJs 1.7.2)
Short: insecure file upload handling in the VvvebJs code path (general upload endpoint / form).
Source summary: Tenable and GHSA advisory list CVE-2024-27480 as an insecure file upload in VvvebJs 1.7.2.
Technical nature (what the bug is):
- The upload routine fails to validate uploaded file type / extension and/or fails to enforce a safe destination path, permitting an attacker to upload arbitrary content (including server-side executable scripts) to a web-accessible location.
- Typical vulnerable patterns are: missing content-type/extension validation, trusting
filenamefrom the client, not restricting upload directories, and not rejecting web-executable extensions (e.g.,.php,.aspx,.jsp) or using dangerous file names. The public advisory identifies this class of weakness for 1.7.2.
Possible impacts:
- If the web server processes uploaded files (e.g., .php on PHP server), arbitrary code execution (remote command execution) is possible.
- If uploads are written to user-accessible paths, data exfiltration or malware staging is possible.
- On systems configured to run server scripts in upload directory, full compromise can follow.
Exploitability considerations:
- Requires ability to make HTTP requests to the upload endpoint (anonymous vs. authenticated depends on how the site exposes the endpoint).
- Impact is high where uploads land in webroot or are later processed by the server.
PoC / advisory links: GHSA advisory and public gist referenced in vendor/advisory pages (do not follow PoC if you’re defending a production site — use it only to test in safe lab environments).
CVE-2024-25182 — File Upload via save.php (givanz VvvebJs 1.7.2)
Short: file upload vulnerability specifically via save.php.
Technical nature:
save.phpaccepts file content and writes it to disk. The implementation apparently lacks sufficient filename sanitization, filetype checks, or destination controls — permitting upload of arbitrary files.- The presence of a named PHP endpoint (
save.php) makes it likely easier to locate and exercise in a site running VvvebJs pages.
Attack surface & preconditions:
- Same as CVE-27480: attacker must access the
save.phpendpoint (may be authenticated or unauthenticated depending on application integration). - If the endpoint is reachable without authentication on a public site, risk is immediate and severe.
Impact & remediation pointers:
- Treat
save.phpas immediately hostile — block or restrict it until patched, disable unauthenticated uploads, and deploy input validation and allow-list checks for file types.
CVE-2024-25183 — Directory Traversal via scan.php (givanz VvvebJs 1.7.2)
Short: scan.php insufficiently validates filesystem path input, allowing path-traversal (e.g., ../) to read files outside intended directories.
Technical nature:
- Directory traversal is typically caused by concatenating a user-controlled path into filesystem operations (open/read) without canonicalization and enforcement of an allowed base directory. If
scan.phpexposes a parameter such asfile,path, ordirthat is used directly to read files,../../etc/passwdstyle accesses become possible. - This leads to disclosure of arbitrary server files that the web server account can read—configuration files, credentials, private keys, etc.
Attack surface:
- Read-only access to files; combined with the upload vulnerabilities above, an attacker could upload a webshell and then use traversal to find credentials or other files helpful for escalation.
- Easily automated scanners can discover such endpoints if exposed.
Combined risk model
- Upload + traversal = powerful chain. Uploading a webshell (via
save.php/insecure upload) and then usingscan.phpto discover configuration files / credentials increases likelihood of post-exploit lateral movement and persistence. - Server configuration determines true severity. Even if uploads are restricted, traversal alone can leak sensitive files; if uploads land in webroot, immediate remote command exec is trivial. (See Tenable/GHSA notes.)
Detection & Indicators of Compromise (IoCs)
Logs to inspect
- Web server access logs for POSTs to
/save.php,/scan.php, or other upload endpoints from unusual IPs or with oddContent-Disposition/filenamevalues. Look formultipart/form-dataor unusual content lengths. - Requests containing
../or encoded traversal sequences (%2e%2e%2f,%2e%2e\) — search logs for%2e%2eor sequences of..in parameters. - Unexpected created files in webroot or uploads directory — inspect timestamps and owners.
- Outbound connections from web server processes soon after suspect uploads (possible beaconing from webshell).
YARA / detection patterns (high-level)
- Requests to
/save.phpwith filename ending in.php, or double extensions likeimage.jpg.php. - Requests with multipart filename containing suspicious characters (null bytes,
../).
Testing safely
- Reproduce only in isolated lab instances; do not run public PoCs on production. Use a staging copy and static analysis to inspect
save.php/scan.phpsource.
Mitigation & hardening
Immediate (if vulnerable instance is exposed):
- Block access to
save.php,scan.php, and any upload endpoints at the web server or WAF level (deny or require authentication) until patched. If you can’t block, restrict to internal IP ranges only. - Disable unauthenticated uploads — require a verified, least-privilege account to perform uploads.
- Remove / quarantine uploaded files that are unexpected (scan for .php/.jsp/.asp files in upload dirs).
- Rotate any secrets (API keys, credentials) that may have been exposed via traversal.
- Apply latest patched version if vendor/maintainer released one (see advisories / GHSA). If no patch, consider removing VvvebJs 1.7.2 and use a patched/supported alternative.
Recommended secure coding / configuration mitigations (for dev teams):
- Enforce allow-lists for upload MIME types and filenames (not blacklists). Accept known safe image types and validate file signatures (magic bytes).
- Store uploaded files outside webroot and serve via a proxy that does not execute them. If files must be served, rename to a safe extension and force download with
Content-Disposition: attachment. - Canonicalize and validate all path inputs with
realpath()/equivalent; ensure the resolved path remains inside a safe base directory. - Strip or reject filenames containing
.., absolute paths, null bytes, or suspicious chars. - Use content scanning (AV, static scanning) on uploads.
- Run web applications with least privilege; webserver account should not have write access to code directories or access to sensitive OS files.
- Add WAF rules to block common traversal payloads and suspicious upload patterns.
Monitoring & post-patch checks:
- After patching, verify no unknown files exist in webroot, examine logs for pre-patch activity, and run offline forensic checks if intrusion is suspected.
- Harden web server config (disable script execution in upload directories, disable unnecessary modules).
Responsible disclosure, PoCs, and safe testing
- Public advisories and gists exist describing the vulnerabilities and sometimes PoC code; those are useful for defenders to validate in labs but must not be used against production systems you don’t own. The GHSA advisories and gists are the referenced sources for the specifics of these CVEs.
Suggested incident response playbook
- Identify: inventory all sites using VvvebJs 1.7.2 (code repos, vendor libs, CMS plugins).
- Isolate: block public access to upload/traversal endpoints with WAF or firewall.
- Hunt: scan access logs for
save.php/scan.phprequests,../patterns, and recent POSTs with multipart uploads. - Remediate: remove/replace VvvebJs 1.7.2 with patched version or remove the vulnerable component; apply server config changes (disable script execution in uploads).
- Recover: restore from known-good backups if system integrity is uncertain; rotate keys and credentials.
- Report: if breach confirmed, follow local/regulatory breach notification rules and share details with stakeholders.
