| Plugin Name | Post SMTP |
|---|---|
| Type of Vulnerability | Cross-Site Scripting (XSS) |
| CVE Number | CVE-2026-3090 |
| Urgency | Low |
| CVE Publish Date | 2026-03-20 |
| Source URL | CVE-2026-3090 |
Urgent Security Advisory: Post SMTP Plugin (≤ 3.8.0) — Unauthenticated Stored XSS (CVE-2026-3090) — Impact, Mitigation & Response
Date: 2026-03-20 | Author: Hong Kong Security Expert
Tags: WordPress, Security, WAF, XSS, Post SMTP, Vulnerability, CVE-2026-3090
Summary: A stored cross-site scripting (XSS) vulnerability (CVE-2026-3090) affecting the Post SMTP WordPress plugin (versions ≤ 3.8.0) allows an unauthenticated attacker to store a malicious payload via the
event_typeparameter. Successful exploitation can result in administrative actions being performed by a privileged user when they view or interact with the affected UI. A patched release is available (3.9.0). This advisory explains the risk, exploitation path, detection, mitigation and incident response steps from a pragmatic Hong Kong security perspective.
TL;DR (for site owners and admins)
- Vulnerability: Stored XSS via the
event_typeparameter in Post SMTP plugin versions ≤ 3.8.0 (CVE-2026-3090). - Risk: An unauthenticated attacker can persist a payload that executes in the browser of an administrator when viewing the plugin UI or events page; this can lead to session theft, admin account compromise, malware installation, or lateral movement.
- Patched version: 3.9.0 — update immediately.
- Immediate mitigations if you cannot patch right away:
- Restrict access to the plugin admin pages (IP whitelist, HTTP auth or similar host-level controls).
- Disable the plugin temporarily if it is not required.
- Apply host/WAF rules to block requests containing HTML/script payloads in
event_type. - Scan the database for stored payloads and remove them.
What is the vulnerability?
This is a stored cross-site scripting (XSS) issue affecting Post SMTP plugin versions up to and including 3.8.0. An unauthenticated attacker may submit specially crafted input to the plugin’s endpoints (specifically via the event_type parameter). The plugin stores that input and later outputs it in an administrative page without proper output escaping or sanitization. When a privileged user (for example, an administrator) views or interacts with that page, the stored malicious script runs in their browser context.
Because the script runs in the admin’s browser, it can perform actions with that user’s privileges — including creating or modifying options, installing plugins, creating administrator accounts, or exfiltrating cookies and credentials. The vulnerability therefore poses a high impact to site confidentiality and integrity despite originating from an unauthenticated attacker.
CVE: CVE-2026-3090
Affected: Post SMTP plugin ≤ 3.8.0
Patched in: 3.9.0
Disclosure date: 20 March 2026
How exploitation works (high-level)
- Attacker sends a request to an endpoint or action in the Post SMTP plugin that accepts an
event_typevalue. That request does not require authentication (unauthenticated submission). - The plugin accepts and stores the value directly to the database (or to a log/event store) with insufficient sanitization or validation.
- Later, a logged-in privileged user (administrator/manager) visits the plugin’s events or settings UI. The plugin renders the stored
event_typewithout proper escaping. - The browser executes the persisted script in context of the admin session. From there an attacker can:
- Read cookies or authentication tokens (session hijacking).
- Issue requests to admin endpoints to create users, change options, install plugins, etc.
- Persist backdoors or modify site content.
- Deface or redirect visitors or pivot to other parts of the site.
Note: Although the initial submission can be unauthenticated, exploitation requires an admin to view the affected content. This is often achieved by social engineering (sending a malicious link or encouraging an admin to visit a particular page).
Why this is dangerous
- Stored XSS persists in the site database and can trigger every time an admin views the affected page.
- Because the script executes in the administrator’s browser, it can perform actions with admin privileges—effectively enabling site takeover.
- Automated mass-exploitation is attractive to attackers: they can inject payloads across many sites rapidly and wait for an admin to browse the site UI.
- Post-exploitation activities can be stealthy (backdoors, scheduled tasks, malicious code) and difficult to detect without a thorough forensic review.
Realistic exploitation scenarios
- Phishing-like lure: Attacker injects a payload and emails an administrator a link to the plugin’s “Events” page with a convincing pretext. When the admin clicks, the payload executes.
- Automated pivot: A payload that creates a new admin account or modifies admin email settings to give the attacker password reset access.
- Persistent malware: Script writes malicious PHP backdoor via an admin-privileged AJAX action (triggered by the script), enabling remote code execution.
- Supply-chain annoyance: An attacker injects JavaScript that modifies outgoing emails or inserts tracking/ad scripts into content.
Immediate actions for site owners / administrators
If you run Post SMTP plugin on any WordPress site:
- Update the plugin to version 3.9.0 or later immediately.
- Go to Plugins > Installed Plugins, locate Post SMTP and update.
- If automatic updates are possible in your environment, enable them for this plugin.
- If you cannot update immediately:
- Consider disabling the plugin temporarily until the update is possible.
- Restrict access to the plugin admin pages:
- Use IP whitelisting at the web server level to limit admin area access.
- Protect wp-admin with HTTP auth for an additional barrier.
- Apply WAF/host rules to block requests that attempt to inject HTML/JS into the
event_typeparameter (examples below). - Monitor logs for suspicious POST requests to plugin endpoints.
- Scan the database for stored malicious payloads: