WordPress security changelog
MEDIUM CVE-2026-17555 Received

WPvivid export task IDs permit Administrator SQL injection

WPvivid through 0.9.131 accepts export_data JSON object keys in prepare_export_post(), stores them as post IDs without integer casting, then joins them into an unquoted WHERE ID IN clause in export_post_to_xml(). An Administrator can inject SQL through those keys and extract database information.

CVE / CNA score 4.9 CVSS 3.1 · security@wordfence.com
NVD score Pending NVD has not published its own CVSS assessment.
Component
WPvivid — Backup, Migration & Staging
Plugin slug
wpvivid-backuprestore
Affected
<= 0.9.131
Safe version
> 0.9.131
Published
Aug 01, 2026
Weakness
CWE-89 — Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')

This CVE was published Aug 01, 2026 and is one of 13 known issues for this plugin.

Update, patch or deactivate.

Update to a corrected release after 0.9.131. Review export tasks and database logs for nonnumeric post IDs or SQL syntax, and rotate credentials if disclosure is suspected.

A safe version is available, so updating to that version or later is the preferred remediation. If an immediate update is not practical, consider a targeted application patch or temporarily restricting the affected functionality.

Deactivate only when warranted by your risk profile, or when advised by your hosting provider in the limited circumstances where the vulnerability cannot otherwise be mitigated. If you’re unsure which action is appropriate, contact Fused or your hosting provider for guidance.

Technical description

The WPvivid Backup & Migration plugin for WordPress is vulnerable to SQL Injection via the export_data parameter in versions up to, and including, 0.9.131. This is due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. The values are received in prepare_export_post(), passed through sanitize_text_field() and stripslashes(), JSON-decoded, and the attacker-controlled JSON object keys are collected as $posts_ids without integer casting. They are stored in the export task options and later joined with commas and interpolated directly into a `WHERE ID IN (...)` clause inside a $wpdb->get_results() call in export_post_to_xml() (unquoted, numeric context), with no $wpdb->prepare() or esc_sql(). This makes it possible for authenticated attackers, with Administrator-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.

CVE / CNA vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N

Primary and upstream sources