Description
The WP Inventory Manager plugin for WordPress is vulnerable to SQL Injection via the 'where' shortcode attribute of the [wpinventory] shortcode in versions up to, and including, 2.5.1. This is due to insufficient escaping on the user-supplied parameter and lack of sufficient preparation on the existing SQL query in the WPIMItem::get_all() function — parse_custom_where() only performs html_entity_decode(), strips semicolons, and does field-label name replacements, without using $wpdb->prepare() or a whitelist. The resulting string is concatenated into a raw SELECT statement that is executed via $wpdb->get_results(). This makes it possible for authenticated attackers, with Contributor-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.
References7
- plugins.trac.wordpress.org/browser/wp-inventory-manager/tags/2.…
- plugins.trac.wordpress.org/browser/wp-inventory-manager/tags/2.…
- plugins.trac.wordpress.org/browser/wp-inventory-manager/tags/2.…
- plugins.trac.wordpress.org/browser/wp-inventory-manager/tags/2.…
- plugins.trac.wordpress.org/browser/wp-inventory-manager/tags/2.…
- plugins.trac.wordpress.org/changeset?reponame=&old=3657730%40wp…
- www.wordfence.com/threat-intel/vulnerabilities/id/1f439d60-0295…
Metrics
- CVSS 3.1
-
6.5
MEDIUM
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N - EPSS — exploit probability
- 0% percentile: 40 · as of 8 November 2026
- CWE
- CWE-89
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.