Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-19800

CVE-2026-19800: Mail Mint WordPress Plugin SQL Injection

CVE-2026-19800 is a SQL injection flaw in the Mail Mint Email Marketing plugin for WordPress that allows authenticated attackers to extract sensitive database information. This post explains its impact, affected versions, and mitigation steps.

Published:

CVE-2026-19800 Overview

The Mail Mint plugin for WordPress contains a SQL injection vulnerability in the contact filtering functionality. The flaw affects all versions up to and including 1.31.0 and stems from unsafe concatenation of the user-supplied status parameter into a SQL query before $wpdb->prepare() executes. Authenticated attackers holding the mint_read_contacts capability, which is only assignable by an administrator, can append additional SQL statements to extract data from the WordPress database. The vulnerability is classified under CWE-89 (Improper Neutralization of Special Elements used in an SQL Command).

Critical Impact

Authenticated administrator-level attackers can inject arbitrary SQL through the REST API status parameter, enabling extraction of sensitive database contents including user credentials and personal data.

Affected Products

  • Mail Mint – Email Marketing, Newsletter, Email Automation & WooCommerce Emails plugin for WordPress
  • All versions up to and including 1.31.0
  • WordPress sites where the mint_read_contacts capability has been granted to non-administrator roles

Discovery Timeline

  • 2026-09-09 - CVE-2026-19800 published to the National Vulnerability Database
  • 2026-09-09 - Last updated in NVD database

Technical Details for CVE-2026-19800

Vulnerability Analysis

The vulnerability resides in the Mail Mint contact filtering logic exposed through the plugin's REST API. The ContactController builds a $contact_filter_query fragment from the attacker-controlled status array and concatenates that fragment directly into the SQL format string passed to $wpdb->prepare(). Because prepare() only substitutes %s and %d placeholders, any SQL syntax already embedded in the format string reaches the database engine intact. Attackers can use this behavior to append UNION SELECT statements or subqueries that read arbitrary rows from wp_users, wp_usermeta, and other sensitive tables.

Root Cause

Two compounding defects produce the sink. First, the plugin builds SQL by string concatenation rather than parameterization, so prepare() cannot neutralize injected syntax. Second, REST API JSON bodies are read from php://input and bypass WordPress's wp_magic_quotes() normalization. Double-quote characters inside status array values therefore reach the query builder unescaped, giving an attacker a reliable path to break out of the intended SQL context.

Attack Vector

Exploitation requires a valid authenticated session with the mint_read_contacts capability. This capability is plugin-specific and not assigned to any default WordPress role, so it must be explicitly granted by an administrator, effectively limiting exploitation to administrator-equivalent accounts. The attacker sends a crafted JSON body to the vulnerable contact-listing REST endpoint with a status array containing SQL metacharacters. The injected payload is appended to the existing query, and the database returns the attacker-requested data in the response.

See the vulnerable code paths in the Mail Mint ContactController, ContactRoute, and ContactModel sources.

Detection Methods for CVE-2026-19800

Indicators of Compromise

  • REST API requests to Mail Mint contact endpoints containing SQL metacharacters (", ), UNION, SELECT, --) inside the JSON status array
  • Unexpected UNION-based query patterns in MySQL slow query or general logs originating from the WordPress database user
  • Anomalous response sizes from the /wp-json/mrm/v1/contacts route or similar Mail Mint contact-listing endpoints
  • New or modified plugin capability assignments granting mint_read_contacts to non-administrator roles

Detection Strategies

  • Inspect web server logs for POST or GET requests to Mail Mint REST routes containing encoded SQL syntax in request bodies read from php://input
  • Enable MySQL query logging on WordPress database users and alert on information_schema reads or UNION SELECT patterns tied to plugin traffic
  • Correlate authenticated administrator sessions with sudden volumes of contact API requests that deviate from baseline behavior

Monitoring Recommendations

  • Monitor WordPress audit logs for administrator account creation, capability changes, and plugin configuration edits
  • Track outbound data volume from the WordPress host for signs of database exfiltration following API calls
  • Alert on any modification to Mail Mint plugin files outside of scheduled update windows

How to Mitigate CVE-2026-19800

Immediate Actions Required

  • Update the Mail Mint plugin to a version later than 1.31.0 that contains the vendor fix referenced in the Mail Mint changeset
  • Audit all WordPress roles for unexpected assignment of the mint_read_contacts capability and revoke it where not required
  • Rotate WordPress administrator passwords and any secrets that may have been readable from the database if exploitation is suspected

Patch Information

The vendor addressed the issue in a release after 1.31.0. Review the fixed code in the Mail Mint 1.30.1 ContactController, 1.30.1 ContactRoute, and 1.30.1 ContactModel, along with the Wordfence vulnerability report for advisory details.

Workarounds

  • Restrict access to the WordPress admin area and REST API endpoints via IP allowlisting on the web server or WAF
  • Deploy WAF rules that block SQL metacharacters in JSON bodies sent to /wp-json/mrm/* routes
  • Temporarily deactivate the Mail Mint plugin on sites that cannot immediately update
  • Enforce least-privilege administration and require multi-factor authentication for all WordPress administrator accounts
bash
# Example: apply plugin update via WP-CLI
wp plugin update mail-mint --version=latest

# Verify the installed version is above 1.31.0
wp plugin get mail-mint --field=version

# Audit which roles hold the vulnerable capability
wp role list --fields=role,name
wp cap list administrator | grep mint_read_contacts

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.