CVE-2025-22643
Executive Summary
CVE-2025-22643 is a Missing Authorization vulnerability in the OnePress WordPress theme by famethemes, affecting versions up to and including 2.3.11. This flaw allows an unauthenticated attacker to exploit incorrectly configured access control security levels, potentially leading to unauthorized data exposure or limited manipulation of site content. The vulnerability has a CVSS score of 4.3 (Medium) and an EPSS score of 0.0%, indicating low exploitation likelihood at this time. No public proof-of-concept or patch is currently available.
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 the WordPress ecosystem as a theme component. Organizations using the OnePress theme should treat this as a supply chain risk, as the theme is distributed via the official WordPress theme repository and may be bundled in managed WordPress hosting environments. No patch has been released by the vendor, making this a persistent risk for unmaintained installations.
CVSS Breakdown & Threat Level
- CVSS Score: 4.3 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: None
- Integrity Impact: Low
- Availability Impact: None
The low EPSS score (0.0%) suggests minimal active exploitation, but the lack of a patch increases long-term risk for unmonitored deployments.
Deep Dive & Mechanics
The vulnerability stems from missing authorization checks in the OnePress theme's AJAX handlers or REST endpoints. Specifically, the theme fails to validate user capabilities before executing sensitive actions such as modifying theme settings, updating options, or accessing protected data. This allows any unauthenticated visitor to trigger these actions by sending crafted HTTP requests.
The affected code likely resides in functions.php or a custom plugin file bundled with the theme, where wp_ajax_* hooks are registered without proper current_user_can() checks. For example, a function like onepress_save_settings() might be hooked to both wp_ajax_onepress_save_settings and wp_ajax_nopriv_onepress_save_settings, allowing unauthenticated access.
Vulnerable vs. Patched Code
Vulnerable Code (<= 2.3.11):
add_action('wp_ajax_onepress_save_settings', 'onepress_save_settings');
add_action('wp_ajax_nopriv_onepress_save_settings', 'onepress_save_settings');
function onepress_save_settings() {
// No capability check
update_option('onepress_theme_settings', $_POST['settings']);
wp_die();
}
Patched Code (Hypothetical):
add_action('wp_ajax_onepress_save_settings', 'onepress_save_settings');
// Remove nopriv hook to require authentication
function onepress_save_settings() {
if (!current_user_can('manage_options')) {
wp_die('Unauthorized', 403);
}
update_option('onepress_theme_settings', $_POST['settings']);
wp_die();
}
The patch adds a capability check (manage_options) and removes the nopriv hook to prevent unauthenticated access.
Exploitation & Lab Setup
Red Team
- Reconnaissance: Identify WordPress sites using OnePress theme via Shodan dorks or Wappalyzer.
- Craft Exploit: Send a POST request to the vulnerable AJAX endpoint:
curl -X POST http://target/wp-admin/admin-ajax.php \ -d "action=onepress_save_settings&settings[some_option]=malicious_value" - Verify: Check if the option was modified by accessing a page that uses the setting.
Blue Team
- Detection: Monitor for unusual AJAX requests to
admin-ajax.phpwithaction=onepress_*parameters from unauthenticated sources. - Honeypot: Deploy a fake endpoint that logs all requests and alerts on unauthorized access.
- Mitigation: Implement a Web Application Firewall (WAF) rule to block requests to
admin-ajax.phpwithactionparameters matchingonepress_*unless the user is authenticated.
Indicators of Compromise (IOCs)
- Network: HTTP POST requests to
/wp-admin/admin-ajax.phpwithaction=onepress_*parameters. - File: Modified
wp_optionstable entries withonepress_theme_settingsor similar keys. - Log: WordPress debug log entries showing unauthorized AJAX calls.
Detection Engineering
YARA Rule
rule CVE_2025_22643_OnePress_Missing_Auth {
meta:
description = "Detects vulnerable OnePress theme files with missing authorization"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-22643"
strings:
$ajax_hook = /add_action\s*\(\s*['\"]wp_ajax_nopriv_onepress_/
$no_cap = /function\s+onepress_\w+\s*\(\)\s*\{[^}]*?(?!current_user_can)/
condition:
$ajax_hook and $no_cap
}
Sigma Rule
title: CVE-2025-22643 OnePress Missing Authorization
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects unauthenticated AJAX requests to OnePress theme endpoints
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
c-uri|contains: '/wp-admin/admin-ajax.php'
cs-uri-query|contains: 'action=onepress_'
sc-status: 200
condition: selection
falsepositives:
- Legitimate admin actions (rare)
level: medium
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2025-22643 OnePress Missing Authorization Attempt";
flow:to_server,established;
content:"POST"; http_method;
content:"/wp-admin/admin-ajax.php"; http_uri;
content:"action=onepress_"; http_client_body;
classtype:attempted-admin;
sid:1000001;
rev:1;
)
Remediation & Mitigation
- Immediate: Disable the OnePress theme and switch to a supported alternative until a patch is released.
- Temporary: Add a WAF rule to block unauthenticated requests to
admin-ajax.phpwithactionparameters starting withonepress_. - Long-term: Monitor the famethemes website for a patched version (2.3.12 or later) and apply it promptly.
- Compensating: Restrict access to
/wp-admin/directory via.htaccessor IP whitelisting.
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.