CVE-2023-51362
Executive Summary
CVE-2023-51362 is a Missing Authorization vulnerability in the WordPress plugin My Sticky Elements by Premio, affecting versions up to and including 2.1.3. This flaw allows an unauthenticated attacker to exploit incorrectly configured access control security levels, potentially leading to unauthorized data exposure or manipulation. The vulnerability is classified as Medium Severity (CVSS 5.3) and is currently unpatched according to available data. No public proof-of-concept (PoC) or exploit code has been released, and the EPSS score is 0.0%, indicating low exploitation activity in the wild.
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 from the WordPress dashboard or via direct download are impacted. No NPM, PyPI, Go, or Ruby packages are involved.
CVSS Breakdown & Threat Level
- CVSS Score: 5.3 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: Low
- Integrity Impact: None
- Availability Impact: None
The vulnerability is exploitable remotely without authentication, but only leads to limited information disclosure. The lack of integrity or availability impact reduces the severity.
Deep Dive & Mechanics
The My Sticky Elements plugin provides sticky header/footer elements for WordPress sites. The vulnerability lies in the plugin's REST API endpoints or AJAX handlers that fail to properly verify user capabilities before executing sensitive operations. Specifically, the plugin does not enforce authorization checks for certain actions, allowing unauthenticated users to access or modify settings that should be restricted to administrators.
The flaw is categorized under CWE-862: Missing Authorization, meaning the software does not perform any authorization check when an actor attempts to access a resource or perform an action. In this case, the plugin's code likely uses wp_ajax_nopriv_* hooks without verifying nonces or capabilities, or exposes REST endpoints without proper permission callbacks.
Vulnerable vs. Patched Code
Since no official patch is available, the vulnerable code pattern is described generically:
Vulnerable Code (<= 2.1.3):
add_action('wp_ajax_nopriv_mystickyelements_save_settings', 'mystickyelements_save_settings');
function mystickyelements_save_settings() {
// No capability check
update_option('mystickyelements_settings', $_POST['settings']);
}
Patched Code (Hypothetical):
add_action('wp_ajax_mystickyelements_save_settings', 'mystickyelements_save_settings');
function mystickyelements_save_settings() {
if (!current_user_can('manage_options')) {
wp_die('Unauthorized');
}
update_option('mystickyelements_settings', $_POST['settings']);
}
The patched version would require authentication and proper capability checks (manage_options) before processing sensitive actions.
Exploitation & Lab Setup
Red Team (Attacker)
Prerequisites:
- Target WordPress site with My Sticky Elements <= 2.1.3 installed and activated.
- Network access to the site.
Exploitation Steps:
- Identify the vulnerable endpoint (e.g.,
/wp-admin/admin-ajax.phpwith actionmystickyelements_save_settings). - Send a crafted POST request without authentication:
curl -X POST https://target.com/wp-admin/admin-ajax.php \ -d "action=mystickyelements_save_settings&settings[option1]=malicious_value" - Verify unauthorized changes by checking the site's sticky elements behavior.
Note: No public exploit code is available; this is a conceptual demonstration.
Blue Team (Defender)
Detection Steps:
- Monitor for unusual AJAX requests to
/wp-admin/admin-ajax.phpwith actions related tomystickyelements. - Check for unauthorized changes to the
mystickyelements_settingsoption in the database. - Review server logs for requests from unauthenticated users to plugin-specific endpoints.
Mitigation:
- Disable the plugin until a patch is released.
- Implement a Web Application Firewall (WAF) rule to block unauthenticated requests to plugin AJAX actions.
- Use a security plugin to enforce capability checks on all AJAX handlers.
Indicators of Compromise (IOCs)
- Network:
- POST requests to
/wp-admin/admin-ajax.phpwithaction=mystickyelements_*parameters from unauthenticated sources. - Unusual values in the
settingsPOST parameter.
- POST requests to
- Host:
- Modified
wp_optionstable entries formystickyelements_settings. - Unexpected changes to sticky element configurations on the frontend.
- Modified
- Logs:
- Repeated 200 OK responses to AJAX requests without prior authentication.
Detection Engineering
YARA Rule
rule CVE_2023_51362_MyStickyElements {
meta:
description = "Detects vulnerable My Sticky Elements plugin files"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2023-51362"
strings:
$vuln_func = "wp_ajax_nopriv_mystickyelements" nocase
$no_cap = "current_user_can" nocase
condition:
$vuln_func and not $no_cap
}
Sigma Rule
title: CVE-2023-51362 - Missing Authorization in My Sticky Elements
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects unauthenticated AJAX requests to My Sticky Elements endpoints
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
c-uri: '/wp-admin/admin-ajax.php'
cs-uri-query:
- 'action=mystickyelements_*'
condition: selection
falsepositives:
- Legitimate admin actions (should be authenticated)
level: medium
Suricata Rule
alert http any any -> $HOME_NET any (
msg:"CVE-2023-51362 - My Sticky Elements Missing Authorization";
flow:to_server,established;
content:"POST"; http_method;
content:"/wp-admin/admin-ajax.php"; http_uri;
content:"action=mystickyelements_"; http_client_body;
classtype:attempted-recon;
sid:1000001;
rev:1;
)
Remediation & Mitigation
- Immediate Action: Disable the My Sticky Elements plugin until a security patch is released by Premio.
- Workaround: Implement a custom function in the theme's
functions.phpto add capability checks:add_action('init', function() { remove_action('wp_ajax_nopriv_mystickyelements_save_settings', 'mystickyelements_save_settings'); }); - Long-term: Monitor the plugin's update page for a patched version (>= 2.1.4). Apply the update as soon as it becomes available.
- Hardening: Use a WordPress security plugin (e.g., Wordfence, Sucuri) to enforce authentication on AJAX actions and monitor for exploitation attempts.
- Audit: Review all WordPress plugins for similar missing authorization vulnerabilities using automated scanners.
Valters IT
DevSecOps & Cyber Threat Intelligence
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.