Skip to main content

WP Inventory Manager EUVDEUVD-2026-82749

| CVE-2026-17607 MEDIUM
SQL Injection (CWE-89)
2026-09-18 Wordfence GHSA-q2g2-xwwx-rp3m
6.5
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain Contributor-level WordPress account
  2. Delivery
    Author content with [wpinventory] shortcode
  3. Exploit
    Inject UNION payload via 'where' attribute
  4. Execution
    parse_custom_where bypasses escaping
  5. Persist
    Concatenated into raw SELECT query
  6. Impact
    Exfiltrate database contents from rendered output

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Persistence

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated WordPress account at Contributor level or above (PR:L) on a site running WP Inventory Manager <=2.5.1, plus the ability to place a [wpinventory] shortcode with a 'where' attribute into content that gets rendered. The vulnerable parse_custom_where() only performs html_entity_decode(), strips semicolons, and does field-label name replacement - so stacked queries are blocked, but UNION and subquery injection remain viable; impact is limited to data reads (SELECT), not modification. Limiting factors: no unauthenticated path, and sites that do not grant Contributor-or-above accounts to untrusted users are not exposed.

Impact

This is a moderate-priority authenticated SQL injection. The CVSS 6.5 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N) is consistent with the description: network-reachable, low-complexity, but gated behind Contributor-level authentication (PR:L) and limited to confidentiality impact (C:H, I:N, A:N) because the injection sits in a raw SELECT executed via $wpdb->get_results(). No EPSS score, KEV listing, or public POC is present in the input, so exploitation status is 'no public exploit identified at time of analysis' - do not treat this as widespread active exploitation. The realistic risk driver is the low authentication bar: Contributor is a self-registerable or loosely-granted role on many multi-author WordPress sites, and the semicolon-stripping mitigation does NOT block UNION-based or subquery data extraction, so an attacker who holds any Contributor account can read arbitrary database contents (including password hashes and secret keys). Weighed against that, it is not an unauthenticated pre-auth flaw, which keeps it below the 'drop everything' tier; treat it as a prompt-patch item on sites that allow Contributor-or-above accounts.

Exploit ScenarioDerived

An attacker registers or obtains a Contributor-level account on a WordPress site running WP Inventory Manager <=2.5.1, then authors a post/page containing a [wpinventory where="..."] shortcode with a crafted UNION-based payload. When the shortcode renders, parse_custom_where() passes the unsanitized string into a raw SELECT executed by $wpdb->get_results(), returning sensitive rows (e.g., user hashes) into the rendered output. No public exploit code is identified in the provided data.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 18, 2026

Authenticated SQL injection in the WP Inventory Manager plugin for WordPress (versions up to and including 2.5.1) allows users with Contributor-level access or above to read sensitive data from the site database by injecting SQL through the 'where' attribute of the [wpinventory] shortcode. The root cause is in WPIMItem::get_all()/parse_custom_where(), which does not use $wpdb->prepare() or a field whitelist before concatenating the attacker-influenced string into a raw SELECT executed via $wpdb->get_results(); the assessed impact is confidentiality-only (CVSS 6.5, C:H/I:N/A:N). No public exploit code and no confirmed active exploitation (CISA KEV) were identified at time of analysis, and exposure is limited to sites that run the affected plugin, render the shortcode, and grant Contributor-or-above accounts to untrusted users.

RemediationAI

The primary fix is to update the WP Inventory Manager plugin to a release newer than 2.5.1 as soon as one is published; an upstream code change addressing this issue is referenced in the Trac changeset at https://plugins.trac.wordpress.org/changeset?reponame=&old=3657730%40wp-inventory-manager&new=3657730%40wp-inventory-manager (changeset 3657730), and the vendor's advisory should be monitored for the corresponding tagged release - the released patched version number is not independently confirmed in the available data, so verify the changelog before assuming any specific number is fixed. If upgrading is not immediately possible, remove or disable the plugin where inventory display is not required (the lowest-risk option), or, if it must stay active, audit all existing content for [wpinventory] shortcodes that use the 'where' attribute and strip that attribute - the trade-off is loss of custom filtering behavior on those listings. Additional compensating controls: restrict Contributor and higher roles to trusted users only, since the flaw requires Contributor-level or above plus an editor/publisher to actually publish the malicious shortcode (sites that never grant Contributor+ accounts to untrusted users are not exposed); downgrade untrusted authors to Subscriber; and if an application firewall or WordPress security plugin is deployed, confirm with the vendor whether a virtual-patching rule for this plugin's 'where' parameter is available, while treating such rules as temporary mitigations rather than a substitute for the upstream patch.

Affected VersionsENISA

WP Inventory Manager 0 ≤2.5.1

Affected Packages

euvd wp_inventory_manager no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

WP Inventory Manager is a WordPress plugin (CPE cpe:2.3:a:chuck1982:wp_inventory_manager:*:*:*:*:*:*:*:*) that renders inventory listings through the [wpinventory] shortcode. The shortcode accepts a 'where' attribute that is passed into WPIMItem::get_all() and processed by parse_custom_where() (see includes/wpinventory.item.class.php around lines 211, 269 and 748, includes/wpinventory.shortcode.class.php line 72, and wpinventory.core.php line 448). That routine applies only html_entity_decode(), strips semicolons, and performs field-label name substitution, then concatenates the result directly into a raw SELECT statement executed with $wpdb->get_results() rather than using WordPress's parameterized $wpdb->prepare() API. This is a classic CWE-89 improper-neutralization-of-SQL-commands defect: the missing prepared statement and missing identifier whitelist allow attacker-controlled SQL fragments to reach the database parser. Because semicolons are removed, stacked (multi-statement) injection is blocked, but UNION-based and subquery injection remain viable, so the practical outcome is read-only extraction of arbitrary data from the WordPress database (users, password hashes, configuration tables) rather than data modification.

Know when Wp Inventory Manager gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Wordfence) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 6.5 MEDIUM

Contributor auth required (PR:L), network shortcode-rendering path (AV:N/AC:L); SELECT-only injection yields data disclosure (C:H) with no write or availability impact (I:N/A:N).

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

DescriptionCVE.org

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.

Threat Intelligence Overview

EPSS Score
0.3%
Top 72% exploitable
Prevalence
Medium
niche WordPress inventory-management plugin, moderate install base
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy