CVE-2024-56273
Executive Summary
CVE-2024-56273 is a Missing Authorization vulnerability in the WPvivid Backup and Migration WordPress plugin (slug: wpvivid-backuprestore). This flaw allows an unauthenticated attacker to access functionality that should be constrained by Access Control Lists (ACLs). The vulnerability affects all versions up to and including 0.9.106. As of this report, no official patch has been released by the vendor, and no public exploit code or proof-of-concept is available. The CVSS score is 4.3 (Medium), with a low EPSS probability of exploitation (0.0%). The primary risk is unauthorized access to backup/restore endpoints, potentially leading to information disclosure or disruption of backup operations.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability resides in a WordPress plugin distributed via the official WordPress plugin repository. Users who installed the plugin via the WordPress dashboard or directly from the repository are affected. No third-party package manager (NPM, PyPI, Go, Ruby) is involved. The plugin is not signed or checksum-verified by default, increasing the risk of supply chain compromise if the plugin is obtained from unofficial sources.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
- Base Score: 4.3 (Medium)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: None (UI:N)
- Scope: Unchanged (S:U)
- Confidentiality Impact: Low (C:L)
- Integrity Impact: None (I:N)
- Availability Impact: None (A:N)
Threat Level: Medium. The vulnerability allows unauthenticated access to backup/restore functionality, which could expose sensitive database dumps, file archives, and configuration data. However, the lack of public exploit code and low EPSS score reduces immediate risk.
Deep Dive & Mechanics
The WPvivid Backup and Migration plugin provides REST API endpoints for backup creation, restoration, and migration. The vulnerability stems from improper permission checks on these endpoints. Specifically, the plugin fails to verify that the requesting user has the necessary capabilities (e.g., manage_options) before executing sensitive operations.
Affected Endpoints (likely):
/wp-json/wpvivid/v1/backup– Initiate backup/wp-json/wpvivid/v1/restore– Restore from backup/wp-json/wpvivid/v1/delete_backup– Delete backup files/wp-json/wpvivid/v1/download_backup– Download backup archives
An attacker can send crafted HTTP requests to these endpoints without authentication, potentially:
- Downloading full database backups (containing user credentials, sensitive data)
- Deleting existing backups (causing data loss)
- Triggering resource-intensive backup operations (denial of service)
The vulnerability is classified as CWE-862: Missing Authorization, meaning the plugin does not enforce access controls before executing functionality.
Vulnerable vs. Patched Code
Since no official patch exists, the following is a hypothetical comparison based on common WordPress authorization patterns.
Vulnerable Code (wpvivid-backuprestore <= 0.9.106):
// In class-wpvivid-rest-api.php
add_action('rest_api_init', function () {
register_rest_route('wpvivid/v1', '/backup', array(
'methods' => 'POST',
'callback' => 'wpvivid_handle_backup',
// Missing 'permission_callback' parameter
));
});
function wpvivid_handle_backup($request) {
// No capability check
// Execute backup logic
}
Patched Code (hypothetical fix):
add_action('rest_api_init', function () {
register_rest_route('wpvivid/v1', '/backup', array(
'methods' => 'POST',
'callback' => 'wpvivid_handle_backup',
'permission_callback' => function () {
return current_user_can('manage_options');
}
));
});
function wpvivid_handle_backup($request) {
// Backup logic remains unchanged
}
The fix adds a permission_callback that checks for the manage_options capability, ensuring only administrators can access the endpoint.
Exploitation & Lab Setup
Red Team
Prerequisites:
- Target WordPress site with WPvivid Backup and Migration plugin <= 0.9.106
- Network access to the site
Exploitation Steps:
- Identify the vulnerable endpoint by scanning for
/wp-json/wpvivid/v1/. - Send an unauthenticated POST request to trigger a backup:
curl -X POST https://target.com/wp-json/wpvivid/v1/backup -H "Content-Type: application/json" -d '{"backup_type":"full"}' - Retrieve the backup file location from the response (e.g.,
/wp-content/uploads/wpvividbackups/backup_2024-12-01.zip). - Download the backup without authentication:
curl -O https://target.com/wp-content/uploads/wpvividbackups/backup_2024-12-01.zip - Extract the archive to access database dumps and file contents.
Note: No public exploit code exists; this is a theoretical exploitation path.
Blue Team
Detection & Prevention:
- Monitor REST API access logs for unauthorized requests to
/wp-json/wpvivid/v1/*endpoints. - Implement Web Application Firewall (WAF) rules to block unauthenticated requests to these endpoints.
- Use a WordPress security plugin to enforce authentication on REST API routes.
- Regularly audit plugin versions and apply virtual patching via WAF.
Honeypot Setup:
- Deploy a decoy WordPress instance with the vulnerable plugin.
- Log all requests to
/wp-json/wpvivid/v1/and alert on any unauthenticated access.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests to
/wp-json/wpvivid/v1/backupwithoutAuthorizationheader - Unusual download requests for
.zipfiles in/wp-content/uploads/wpvividbackups/ - Repeated POST requests to
/wp-json/wpvivid/v1/delete_backupfrom unknown IPs
- HTTP requests to
File IOCs:
- Unexpected backup archives in
/wp-content/uploads/wpvividbackups/created without admin action - Modified
.htaccessorwp-config.phpfiles (if attacker gains further access)
- Unexpected backup archives in
Log IOCs:
- WordPress debug log entries showing REST API errors from unauthenticated users
- Web server access logs with
wp-json/wpvivid/v1/in the request URI and401status codes (if WAF blocks)
Detection Engineering
YARA Rule
rule wpvivid_missing_auth_cve_2024_56273 {
meta:
description = "Detects vulnerable WPvivid Backup and Migration plugin files"
author = "Valters IT"
date = "2024-12-01"
cve = "CVE-2024-56273"
strings:
$vuln_func = "register_rest_route('wpvivid/v1'" nocase
$no_permission = "permission_callback" nocase
condition:
$vuln_func and not $no_permission
}
Sigma Rule
title: Unauthenticated Access to WPvivid Backup REST API
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects unauthenticated HTTP requests to WPvivid Backup and Migration REST API endpoints
author: Valters IT
date: 2024-12-01
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-method: 'POST'
cs-uri-stem|startswith: '/wp-json/wpvivid/v1/'
sc-status: 200
filter:
cs-username|exists: true
condition: selection and not filter
falsepositives:
- Legitimate admin requests (should have authentication)
level: medium
Suricata Rule
alert http any any -> $HOME_NET any (
msg:"CVE-2024-56273 - Unauthenticated WPvivid Backup REST API Access";
flow:to_server,established;
content:"POST";
http_method;
content:"/wp-json/wpvivid/v1/";
http_uri;
pcre:"/^\/wp-json\/wpvivid\/v1\/(backup|restore|delete_backup|download_backup)/i";
sid:10000001;
rev:1;
metadata:created_at 2024-12-01, cve CVE-2024-56273;
)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin if not critical to operations.
- Apply virtual patching via WAF to block unauthenticated requests to
/wp-json/wpvivid/v1/*. - Monitor logs for any signs of exploitation.
Long-term Fix:
- The vendor must release a patched version (>= 0.9.107) that adds proper
permission_callbackto all REST API routes. - Until then, consider switching to an alternative backup plugin with active security maintenance.
Workaround:
- Add custom code to the theme's
functions.phpto enforce authentication:add_filter('rest_authentication_errors', function($result) { if (strpos($_SERVER['REQUEST_URI'], '/wp-json/wpvivid/v1/') !== false) { if (!is_user_logged_in() || !current_user_can('manage_options')) { return new WP_Error('rest_forbidden', 'Unauthorized', array('status' => 401)); } } return $result; });
Valters IT
DevSecOps & Cyber Threat Intelligence
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.