---
title: "CVE-2026-93889: Mail logging – WP Mail Catcher - Stored XSS"
description: "Mail logging – WP Mail Catcher plugin for WordPress <= 2.1.12 contains a stored cross-site scripting caused by insufficient input sanitization and output escaping in PHPMailer 'wp_mail_failed' error message, letting unauthenticated attackers inject scripts executed when users access injected pages, exploit requires a separately installed plugin passing user input to mail fields."
url: https://panop.io/threat-heartbeat/CVE-2026-93889/
---

# CVE-2026-93889 Mail logging – WP Mail Catcher - Stored XSS

Mail logging – WP Mail Catcher plugin for WordPress <= 2.1.12 contains a stored cross-site scripting caused by insufficient input sanitization and output escaping in PHPMailer 'wp\_mail\_failed' error message, letting unauthenticated attackers inject scripts executed when users access injected pages, exploit requires a separately installed plugin passing user input to mail fields.

CVSS base score 7.2 /10

High

CISA KEV

Not listed

Public exploit

None known

Authentication

Not required

EPSS

0.24% chance of exploitation in 30 days

[View the NVD record ↗](https://nvd.nist.gov/vuln/detail/CVE-2026-93889)

## Details

Type

Stored XSS

Impact

Stored XSS

CVSS vector

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N

Published

3 October 2026

Updated

15 October 2026

Weakness

[CWE-79](https://cwe.mitre.org/data/definitions/79.html)

## Vendor fix

Update to the latest version of Mail logging – WP Mail Catcher.

Patching closes this CVE. It does not tell you which of your systems run the affected version, or what else is exposed alongside them.

## References

- [https://nvd.nist.gov/vuln/detail/CVE-2026-93889](https://nvd.nist.gov/vuln/detail/CVE-2026-93889)
- [https://plugins.trac.wordpress.org/browser/wp-mail-catcher/tags/2.1.12/src/Loggers/LogHelper.php#L69](https://plugins.trac.wordpress.org/browser/wp-mail-catcher/tags/2.1.12/src/Loggers/LogHelper.php#L69)
- [https://plugins.trac.wordpress.org/browser/wp-mail-catcher/tags/2.1.12/src/Loggers/WpMail.php#L30](https://plugins.trac.wordpress.org/browser/wp-mail-catcher/tags/2.1.12/src/Loggers/WpMail.php#L30)
- [https://plugins.trac.wordpress.org/browser/wp-mail-catcher/tags/2.1.12/src/MailAdminTable.php#L149](https://plugins.trac.wordpress.org/browser/wp-mail-catcher/tags/2.1.12/src/MailAdminTable.php#L149)
- [https://plugins.trac.wordpress.org/browser/wp-mail-catcher/tags/2.1.12/src/Views/LogModal.php#L83](https://plugins.trac.wordpress.org/browser/wp-mail-catcher/tags/2.1.12/src/Views/LogModal.php#L83)
- [https://plugins.trac.wordpress.org/changeset?reponame=&old=3717442%40wp-mail-catcher&new=3717442%40wp-mail-catcher](https://plugins.trac.wordpress.org/changeset?reponame=&old=3717442%40wp-mail-catcher&new=3717442%40wp-mail-catcher)
- [https://www.wordfence.com/threat-intel/vulnerabilities/id/6a1d9d03-0216-484c-85ca-73f157595713?source=cve](https://www.wordfence.com/threat-intel/vulnerabilities/id/6a1d9d03-0216-484c-85ca-73f157595713?source=cve)

[← All CVEs](https://panop.io/threat-heartbeat/)

## What this record can't tell you

- Whether you run the affected software, and where
- Whether an attacker can actually reach and exploit it
- The misconfigurations that never get a CVE number
- What it would cost the business, ranked into what to fix first

Panop answers these inside your environment, for this CVE and every other finding.

[Book a demo](https://panop.io/demo)
