CVE-2025-54711
Executive Summary
CVE-2025-54711 is a Missing Authorization vulnerability in the bPlugins Info Cards WordPress plugin, affecting versions from n/a through 1.0.11. This flaw allows unauthenticated attackers to access functionality that should be constrained by Access Control Lists (ACLs), potentially leading to unauthorized data exposure, modification, or deletion of card data. The vulnerability is classified as a WordPress ecosystem issue, as the plugin is designed for the WordPress CMS. No public proof-of-concept (PoC) or patch details are currently available, but the CVSS score of 7.1 (High) underscores the need for immediate mitigation.
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 affects a WordPress plugin distributed via the official WordPress plugin repository. Users who installed the plugin via the WordPress admin dashboard or automated deployment tools (e.g., Composer, WP-CLI) are at risk. The lack of a patch from the vendor (bPlugins) means that supply chain integrity is compromised until an update is released. Organizations should consider removing the plugin or implementing strict access controls.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
- Base Score: 7.1 (High)
- Attack Vector: Network (AV:N) – Exploitable remotely.
- Attack Complexity: Low (AC:L) – No special conditions required.
- Privileges Required: None (PR:N) – No authentication needed.
- User Interaction: None (UI:N) – No user action required.
- Scope: Unchanged (S:U) – Impact confined to the vulnerable component.
- Confidentiality Impact: Low (C:L) – Limited data exposure.
- Integrity Impact: Low (I:L) – Limited data modification.
- Availability Impact: Low (A:L) – Limited service disruption.
Threat Level: High. The low attack complexity and lack of authentication make this a prime target for automated scanning and exploitation.
Deep Dive & Mechanics
The vulnerability resides in the Info Cards plugin’s REST API endpoints or AJAX handlers, which fail to properly verify user permissions before executing sensitive operations. The plugin likely exposes functions for creating, reading, updating, or deleting card data without checking for the edit_posts or manage_options capabilities. An unauthenticated attacker can send crafted HTTP requests to these endpoints to:
- List all cards (information disclosure).
- Create new cards (data injection).
- Modify existing cards (data tampering).
- Delete cards (data loss).
The missing authorization check is a classic CWE-862 (Missing Authorization) flaw, common in plugins that rely on client-side checks or omit server-side validation.
Vulnerable vs. Patched Code
Since no patch is available, the following is a hypothetical comparison based on typical WordPress plugin patterns.
Vulnerable Code (info-cards.php or similar):
add_action('wp_ajax_nopriv_info_cards_create', 'info_cards_create_callback');
function info_cards_create_callback() {
// No capability check
$data = $_POST['card_data'];
// Process and save data
update_option('info_cards_data', $data);
wp_die();
}
Patched Code (hypothetical):
add_action('wp_ajax_nopriv_info_cards_create', 'info_cards_create_callback');
function info_cards_create_callback() {
// Add capability check
if (!current_user_can('edit_posts')) {
wp_die('Unauthorized', 403);
}
$data = $_POST['card_data'];
// Process and save data
update_option('info_cards_data', $data);
wp_die();
}
The patched version adds a current_user_can() check to ensure only authenticated users with the edit_posts capability can access the function.
Exploitation & Lab Setup
Red Team (Attack Simulation)
Prerequisites:
- A WordPress site with Info Cards plugin version <= 1.0.11.
- Network access to the site.
Exploitation Steps:
- Enumerate Endpoints: Use a tool like Burp Suite or curl to discover AJAX endpoints. Common patterns include
/wp-admin/admin-ajax.php?action=info_cards_*. - Craft Request: Send a POST request to create a new card without authentication.
curl -X POST http://target.com/wp-admin/admin-ajax.php \ -d "action=info_cards_create&card_data=malicious_content" - Verify Exploitation: Check if the card appears on the frontend or in the database.
Automated Scanning with Nuclei (if template available):
id: info-cards-missing-auth
info:
name: Info Cards Missing Authorization
severity: high
description: Detects missing authorization in bPlugins Info Cards plugin
requests:
- method: POST
path:
- "{{BaseURL}}/wp-admin/admin-ajax.php"
body: "action=info_cards_create&card_data=test"
matchers:
- type: word
words:
- "success"
part: body
Blue Team (Defense & Detection)
Detection Steps:
- Monitor AJAX Requests: Look for unusual patterns in
/wp-admin/admin-ajax.phprequests, especially those withaction=info_cards_*from unauthenticated users. - Check Logs: Review web server access logs for POST requests to
admin-ajax.phpwith suspicious parameters. - Harden Plugin: If removal is not possible, restrict access to
admin-ajax.phpvia.htaccessor a Web Application Firewall (WAF) rule.
WAF Rule (ModSecurity):
SecRule REQUEST_URI "/wp-admin/admin-ajax.php" "chain,id:1001,deny,status:403"
SecRule ARGS:action "^info_cards_" "chain"
SecRule &ARGS:action "!@eq 0"
Indicators of Compromise (IOCs)
- Network IOCs:
- POST requests to
/wp-admin/admin-ajax.phpwithaction=info_cards_*parameters from unauthenticated IPs. - Unusual card data in the
wp_optionstable (e.g.,info_cards_dataoption).
- POST requests to
- File IOCs:
- Modified or new files in
/wp-content/plugins/info-cards/directory.
- Modified or new files in
- Behavioral IOCs:
- Unexpected creation of cards on the site.
- Unauthorized changes to card content.
Detection Engineering
YARA Rule
rule info_cards_missing_auth {
meta:
description = "Detects exploitation attempts against CVE-2025-54711"
author = "Valters IT"
date = "2025-04-10"
strings:
$ajax_action = "info_cards_" ascii wide nocase
$admin_ajax = "admin-ajax.php" ascii wide nocase
condition:
$ajax_action and $admin_ajax
}
Sigma Rule
title: Info Cards Missing Authorization Exploitation
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects unauthenticated POST requests to admin-ajax.php with info_cards actions
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: POST
cs-uri-stem: '/wp-admin/admin-ajax.php'
cs-uri-query|contains: 'action=info_cards_'
condition: selection
falsepositives:
- Legitimate admin actions (rare)
level: high
Suricata Rule
alert http any any -> $HOME_NET any (
msg:"CVE-2025-54711 - Info Cards Missing Authorization Exploitation";
flow:to_server,established;
content:"POST"; http_method;
content:"/wp-admin/admin-ajax.php"; http_uri;
content:"action=info_cards_"; http_client_body;
classtype:attempted-admin;
sid:1000001;
rev:1;
)
Remediation & Mitigation
- Immediate Action: Disable or remove the Info Cards plugin until a patch is released.
- Workaround: If the plugin is critical, restrict access to
admin-ajax.phpusing a WAF or.htaccessrule:
(Note: This may break legitimate AJAX functionality.)<Files "admin-ajax.php"> Require all denied </Files> - Monitor: Continuously monitor for exploitation attempts using the provided detection rules.
- Vendor Contact: Reach out to bPlugins for an ETA on the patch.
- Long-term: Implement a WordPress security plugin (e.g., Wordfence) that can block unauthenticated AJAX requests.
Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert
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.