☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Newsletters logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 8.1 CVSS:3.1/AV:N/AC:H/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-16267

CVE-2026-16267 Vulnerability in WordPress
📅 PUBLISHED: 2026-08-08 00:00 UTC 🔄 UPDATED: 2026-09-23 20:16 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.27%
👁️
0.27% probability
6.7× 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: USA License: Open Source
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS VECTOR BREAKDOWN 8.1
AV: N Attack Vector Network
AC: H Attack Complexity High
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
8.1
THREAT LEVEL
INTEL SOURCES NVD EPSS HOW WE SCORE →
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-16267 is a critical object injection vulnerability in the Newsletters WordPress plugin, affecting all versions prior to 4.16. The flaw resides in an insecure unserialize() call that processes attacker-controlled data from a public form submission without restricting allowed PHP classes. An unauthenticated attacker can exploit this to inject arbitrary PHP objects, potentially leading to remote code execution, complete site compromise, and lateral movement into the hosting environment. Organizations running WordPress with the Newsletters plugin versions < 4.16 must treat this as an emergency priority given the pre-auth attack vector and the plugin's popularity among newsletter-driven marketing sites.

⚡ 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

The vulnerability exists in the Newsletters plugin's form processing logic. The plugin accepts user-supplied serialized data through a publicly accessible form endpoint. This data is later passed to PHP's unserialize() function. Critically, the plugin does not employ a configurable whitelist (such as the allowed_classes parameter introduced in PHP 7.0) nor any server-side validation to restrict which class types can be instantiated during the unserialization process.

The attack surface is twofold:

  1. Entry Point: A public-facing form (likely the subscription or profile update form) that captures a serialized string field. The plugin trusts this input and stores it, later invoking unserialize() on the stored value without sanitization.

  2. Triger Chain: Because no allowed_classes restriction exists, an attacker can replace the serialized payload with an object graph referencing PHP magic methods (__wakeup, __destruct, __toString, etc.) of any class autoloadable by the WordPress application. This includes classes from the plugin itself, WordPress core, and any active theme or plugin.

Common gadget chains exploited in this class of vulnerability include:

  • WordPress core classes that support arbitrary file operations or callback execution.
  • Plugin-specific classes that might interact with file uploads, database wrappers, or email functions.
  • Common DOM/XML classes when phpDocumentor or Symfony components are loaded, enabling file read/write primitives.

The unserialize() failure mode is well-documented. Without an allowed_classes whitelist, PHP will instantiate any object whose class is defined within the process's include path context. For WordPress sites with numerous plugins and themes, the available gadget surface is substantial.

The technical trigger is a crafted POST request to the form handler. The vulnerable code path likely resembles:

$data = $_POST['serialized_data'];
$obj = unserialize($data); // no allowed_classes restriction!

The lack of CWE details and exploit templates indicates the vulnerability was recently reported and is undergoing disclosure. The NVD description identifies the fix version as 4.16, implying the vendor released a patched build. Patch confidence is 2/4 — the patch claim comes solely from NVD, and the vendor advisory is not yet independently verified.

Exploitation Scenarios

Step 1 — Reconnaissance (Target Identification) The attacker identifies WordPress sites running the Newsletters plugin. Fingerprinting vectors include:

  • wp-content/plugins/newsletters/readme.txt — accessible by default, reveals plugin version.
  • HTML source code comments left by the plugin.
  • HTTP response headers if the plugin adds custom X-Newsletters-Version headers.
  • WordPress plugin API endpoint: /wp-json/ if the plugin exposes REST routes.

Shodan/Google dorks — e.g., http.title:"Newsletters" wordpress — provide bulk target harvesting.

Step 2 — Weaponization (Crafting the Payload) The attacker analyzes the server environment to identify an existing gadget chain. For a standard WordPress install, the attacker identifies a class with a __destruct() or __wakeup() magic method that enables arbitrary file write or code execution. For example, a chain through:

  • WP_Theme → get_template() → arbitrary file read.
  • A caching plugin's __destruct writing to wp-content/ with attacker-controlled content.

The attacker serializes the malicious object graph using PHP's serialize():

O:12:"Gadget_Class":1:{s:7:"payload";s:15:"<?php eval(...)";}

Step 3 — Execution (Form Submission) The attacker submits the crafted serialized payload through the public form. The POST request targets the form processing endpoint, e.g.:

POST /wp-admin/admin-post.php
Content-Type: application/x-www-form-urlencoded

action=newsletters_subscribe&email=test@test.com&serialized_payload=<payload>

The plugin's unserialize() call deserializes the payload, instantiating the gadget object. When the object is destroyed (typically at script termination via __destruct), the side-effect executes, writing a PHP webshell to the webroot:

GET /wp-content/uploads/shell.php

Step 4 — Post-Exploitation With a webshell or RCE primitive, the attacker:

  • Establishes persistence by injecting a backdoor user into the WordPress admin or adding a cron job.
  • Extracts the wp-config.php file for database credentials.
  • Encrypts files or exfiltrates the subscriber database (a goldmine for newsletter spam and phishing).
  • Leverages the compromised site for SEO poisoning or malicious redirects, abusing the site's domain reputation.

Due to the pre-auth nature, even rate-limiting or IP-based blocking on the form is insufficient since the attacker can rotate through proxies or use botnets.

Impact Assessment

Business Impact:

  • Confidentiality: Full site compromise extends to database access (user credentials, PII, newsletter subscriber lists with email addresses). Data from other co-tenant applications on shared hosting is also at risk.
  • Integrity: Attacker can deface the site, inject malicious scripts, or alter newsletter content sent to thousands of subscribers, turning the site into a phishing distributor.
  • Availability: Malicious object destruction can corrupt plugin data or cause persistent crashes. An attacker may also cryptolock the webroot.

Affected Systems: All WordPress installations with Newsletters plugin version < 4.16. Given the plugin's marketing focus, affected sites are typically high-traffic content, e-commerce, or community sites — increasing an attacker's desire to compromising them for traffic exfiltration or spam infrastructure.

Blast Radius: Out of the box, CVSS is N/A; however, the vulnerability class (unrestricted unserialize with an unauthenticated injection point) historically scores 9.8 Critical (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) because exploitation requires no credentials or user interaction. The lack of authentication and the requirement for only a valid gadget chain makes weaponization feasible within hours of patch disclosure.

Lateral Movement: The compromised host may serve as a pivot point into the shared hosting network or the organization's internally hosted WordPress environment, facilitating further intrusion into the corporate infrastructure.

Detection Guidance

The detection rules below target behavior indicative of object injection attempts and post-exploitation activity. Tune thresholds to your environment's baseline.

Sigma Rule

title: CVE-2026-16267 - Newsletters Plugin Unrestricted Unserialize
id: d8f4a3c7-1028-4f7b-9a5c-66f2c8a0d23e
status: experimental
description: Detects POST requests to the Newsletters plugin form endpoints with serialized PHP object markers in parameter values.
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2026-16267
tags:
    - attack.t1190
    - attack.t1203
    - cve.2026.16267
logsource:
    category: webserver
    product: apache
    definition: 'Web server access logs or reverse proxy logs.'
detection:
    selection:
        http.method: POST
        c-uri|contains:
            - '/admin-post.php'
            - '/newsletters/'
            - '/subscribe'
        cs-uri_query|contains:
            - 'O:'
            - 'serialized'
    condition: selection
    timeframe: 5m
falsepositives:
    - Legitimate plugin functionality that passes serialized data (unlikely in default config).
level: high

YARA Rule

rule CVE_2026_16267_Newsletters_Unserialize_Payload
{
    meta:
        author = "ValtersIT Threat Intel"
        description = "Detects serialized PHP objects targeting the Newsletters plugin form injection"
        date = "2026-02-14"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-16267"
        score = 85
    strings:
        $action1 = "newsletters_subscribe" ascii wide
        $action2 = "newsletters_profile" ascii wide
        $admin_post = "admin-post.php" ascii wide
        // serialized object prefix with ~80+ char class name length is unusual
        $obj_start = "O:" ascii wide
        $obj_len_gte = /O:\d{3,}:/
        $destruct = "__destruct" ascii wide
        $wakeup = "__wakeup" ascii wide
        $eval = "eval(" ascii wide
        $base64 = "base64_decode" ascii wide
        $shell = ".php" ascii wide
    condition:
        filesize < 5KB and
        1 of ($action*) and
        ($obj_start at 0 or $obj_start in (0..50)) and
        (any of ($destruct, $wakeup, $eval, $base64)) and
        ($shell)
}

Suricata IDS Rule

alert http any any -> $HOME_NET any (
    msg:"CVE-2026-16267 - Newsletters Plugin Unrestricted Unserialize Attempt";
    flow:to_server,established;
    http.method;
    content:"POST";
    http.uri;
    content:"admin-post.php";
    content:"O:"; http_client_body;
    pcre:"/O:\d{2,}:[A-Za-z0-9_\\\\]+:|O:\d{2,}:\"{1}/";
    classtype:attempted-admin;
    sid:1626701;
    rev:1;
    metadata:cve CVE-2026-16267, affected_product WordPress_Newsletters, tag object_injection;
    reference:url,https://nvd.nist.gov/vuln/detail/CVE-2026-16267;
)

Elastic Detection

network where event.outcome == "success" and process.name == "php-fpm" or process.name == "php" and
  request.path like "*admin-post.php*" and
  request.body like "*O:*" and
  request.body like "*newsletters*" and
  (request.body regexp "O:[0-9]{3,}:.+__destruct" or
   request.body regexp "O:[0-9]{3,}:.+__wakeup" or
   request.body regexp "O:[0-9]{3,}:.+eval\(")

Splunk SPL Query

index=web sourcetype=access_combined_wcookie OR sourcetype=apache_access
| where method="POST"
| regex uri="(?i)(admin-post\.php|newsletters|subscribe)"
| regex form_data="(?i)O:\d{3,}:"
| rex field=_raw "O:(?<class_len>\d+):\"(?<class_name>[A-Za-z0-9_\\\\]+)\""
| stats count by clientip, class_name, uri
| where count > 3
| table _time, clientip, class_name, uri, count

Wazuh OSSEC Rule

<group name="wordpress,cve-2026-16267,">
  <rule id="348777" level="12">
    <if_sid>31122</if_sid>
    <match>admin-post.php</match>
    <regex>O:\d{3,}:"</regex>
    <description>CVE-2026-16267: Unauthenticated PHP object injection attempt against Newsletters plugin form</description>
    <mitre>
      <id>T1190</id>
    </mitre>
    <group>attack.exploit_public_facing_application,</group>
  </rule>
</group>

Mitigation & Patch Guidance

Patch Confidence: 2/4 (CLAIMED) — NVD indicates a patched version (4.16) exists, but the fix has not been independently confirmed by a vendor advisory, changelog, or third-party analysis. Proceed with verification.

1) Immediate Mitigations (Do This Now):

  • Disable or restrict access to the vulnerable endpoints: Block external access to admin-post.php and any newsletters form endpoints at the WAF or firewall layer. Whitelist internal IPs if legitimate submissions originate from your own frontend.
  • Apply WAF virtual patch: Block requests where POST body parameter values match the regex pattern /O:\d{2,}:"/ (PHP object serialization marker) targeting the newsletters form URIs.
  • Increase logging verbosity on the web server and monitor incoming request payloads for the above pattern.

2) Patch/Upgrade Steps (Verify and Apply):

  1. Confirm the patched version exists in the WordPress Admin > Plugins page — check for the update notification.
  2. If available, update the plugin to version 4.16 or later immediately after staging/backup — run the update in a staging environment first.
  3. If the plugin update is not yet visible (patch unconfirmed), contact the vendor (via the plugin's WordPress.org support page or their official site) to request the patched build or timeline.
  4. After updating, review the plugin's changelog to verify that the fix was applied to the unserialization logic (look for lines mentioning allowed_classes or input sanitization).

3) Long-Term Hardening:

  • Audit all plugins and themes for unchecked unserialize() calls. If you find any, request fixes or develop patches. For plugins where PHP 7+ is required, enforce unserialize($data, ['allowed_classes' => false]) — safe only for data that never legitimately contains objects.
  • Enable PHP open_basedir to restrict file and directory access for PHP processes, containing file-write payloads.
  • Limit the plugin's exposure: Disable public form endpoints if subscription is managed through an external service (e.g., Mailchimp integrations).
  • Enforce stricter server-side validation: Add a WAF rule that requires the email and subscriber fields match expected types and rejects any POST parameter containing serialized-object delimiters.
  • Establish a plugin policy: Limit the number of third-party plugins; maintain an asset inventory with version tracking; subscribe to CVE feeds to enable rapid response to future disclosures.
  • Run a WordPress security scanner to check for other object injection or file inclusion vulnerabilities.

References

  1. NVD Entry — CVE-2026-16267: https://nvd.nist.gov/vuln/detail/CVE-2026-16267
  2. Wordpress Plugin Repo — Newsletters: https://wordpress.org/plugins/newsletters/ (changelog may confirm 4.16 availability)
  3. OWASP — Deserialization of Untrusted Data Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Deserialization_Cheat_Sheet.html
  4. PortSwigger Research — PHP Object Injection: https://portswigger.net/research/php-object-injection

No known threat actor campaigns or in-the-wild exploitation have been reported as of this writing, and CISA KEV does not list this CVE. However, given the unauthenticated vector and the plugin's user base, a surge of scanning activity within days of public disclosure is historically highly probable. We recommend immediate patching.

💣 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-16267/ · 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.