Skip to main content

Icegram Engage CVE-2026-16087

| EUVDEUVD-2026-51742 MEDIUM
SQL Injection (CWE-89)
2026-08-01 Wordfence GHSA-353r-r23c-w3ph
6.5
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as WordPress Editor
  2. Delivery
    POST crafted messages[][id] to save_campaign_preview AJAX
  3. Exploit
    Malicious ID value stored in post meta
  4. Execution
    Send preview request for target campaign
  5. Persist
    get_message_data() interpolates stored value into SQL IN() clause
  6. Impact
    Extract sensitive database contents via injected query

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Persistence

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an active, authenticated WordPress session holding the edit_post capability on Icegram campaign posts - the CVE description explicitly states this equates to Editor role or above. The attack is two-phase and both phases must succeed: first, the attacker POSTs the crafted messages[][id] payload to save_campaign_preview() (protected by a WordPress nonce, preventing CSRF-driven delivery); second, the attacker triggers a campaign preview request that invokes get_message_data() to execute the stored payload as SQL. SQL execution is scoped to the WordPress database user's privileges, which on shared hosts often equals full database access. Exploitation is limited by: (1) the Editor-level credential requirement - attackers must already hold a high-trust WordPress account or compromise one; (2) the two-step, workflow-aware nature of the attack, which precludes single-request mass scanning. Note: the CVE description opens with 'contributor-level access and above' but its technical section states 'edit_post capability, requiring Editor-level access or above' - this privilege discrepancy is unresolved and the true minimum role should be confirmed with Wordfence before finalizing access-control mitigations.

Impact

The vendor-assigned CVSS 6.5 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N) classifies this as a medium-severity, remotely exploitable, low-privilege, read-only SQL injection. However, the CVE description's own technical detail states the save_campaign_preview() AJAX action is gated by the edit_post capability 'requiring Editor-level access or above' - a privilege threshold that is higher than the PR:L (contributor level) the vendor assigned in the CVSS vector. This internal discrepancy is unresolved and materially affects real-world risk: if Editor role is truly required, the effective exploiter population on a given WordPress site is small, significantly reducing opportunistic risk. No EPSS data was provided, so statistical exploitation probability cannot be quantified. No KEV listing and no public proof-of-concept exist, placing this firmly in a 'patch promptly' category rather than emergency response. The two-phase exploitation requirement - save then preview - reduces risk from mass automated scanning, as it demands contextual knowledge of the campaign workflow. The impact is confidentiality-only: full read access to the WordPress database, which can include user password hashes, PII, subscriber email lists, and API secrets stored as wp_options rows - a meaningful data-breach vector for marketing-intensive WordPress deployments.

Exploit ScenarioDerived

An attacker who has obtained or created an Editor-level WordPress account sends a crafted POST to wp-admin/admin-ajax.php invoking the save_campaign_preview action with messages[][id] set to a payload such as 0) UNION SELECT option_value,2,3 FROM wp_options WHERE option_name='auth_key'--, satisfying the nonce and capability checks with their session credentials. WordPress stores the payload in post meta without sanitization. The attacker then requests the campaign preview, causing get_message_data() in class-icegram.php to embed the stored payload into a SQL IN() clause; the injected UNION SELECT returns the target option value in the preview response, exposing secret keys or other sensitive database contents. No public proof-of-concept exists at time of analysis, but the injection points are identified by line number in the public Trac source browser, making independent reproduction straightforward.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 01, 2026

Second-order SQL injection in the Icegram Engage WordPress plugin (all versions through 3.1.42) allows authenticated attackers holding sufficient WordPress role privileges to extract arbitrary data from the site database across two deliberate HTTP requests. A crafted messages[][id] value is first persisted to WordPress post meta through the save_campaign_preview() AJAX action, then later interpolated unescaped into a SQL IN() clause inside get_message_data() during a subsequent preview request - bypassing $wpdb->prepare() entirely. No public exploit code or CISA KEV listing exists at time of analysis; Wordfence reported the issue with a CVSS 6.5 base score reflecting high confidentiality impact against an unchanged scope.

RemediationAI

An upstream fix is available in WordPress plugin repository changeset 3628434 (https://plugins.trac.wordpress.org/changeset?reponame=&old=3628434%40icegram&new=3628434%40icegram); the exact released version number above 3.1.42 is not independently confirmed from available data, so administrators should update to the latest available version of Icegram Engage from the WordPress plugin repository and verify the installed version exceeds 3.1.42. If an immediate update is not possible, restrict the WordPress Editor role to the minimum number of trusted accounts necessary, since the edit_post capability on campaign posts is the prerequisite gate - reducing the Editor user population limits exposure. A WAF rule blocking SQL metacharacters (quotes, comment markers, UNION keywords) in the messages[][id] POST parameter provides partial defense-in-depth but should not substitute for patching, as bypass techniques exist. Blocking or rate-limiting requests to the save_campaign_preview AJAX action in wp-admin/admin-ajax.php is a more aggressive mitigation that will break the campaign preview feature as a side effect.

Affected VersionsENISA

Icegram Engage – Popups, Optins, CTAs & Lead Generation 0 ≤3.1.42

Affected Packages

euvd icegram_engage_popups_optins_ctas_lead_generation no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability (CWE-89, SQL Injection) resides in the lite edition of the Icegram Engage - Popups, Optins, CTAs & Lead Generation WordPress plugin (CPE: cpe:2.3:a:icegram:icegram_engage_-_popups,_optins,_ctas_&_lead_generation:*:*:*:*:*:*:*:*). Two distinct files form the attack surface. The injection sink is lite/classes/class-icegram-campaign-admin.php at line 1134, inside save_campaign_preview(), which accepts the attacker-controlled messages[][id] array via an AJAX POST and persists it to WordPress post meta after only a nonce and capability check. The execution sink is lite/class-icegram.php at lines 1338, 1720, and 1770, where get_message_data() reads the stored ID back from post meta and embeds it directly into a SQL IN() clause without calling $wpdb->prepare() or applying integer casting. The root cause is a classic deferred-injection pattern: storage and execution are separated across request boundaries, making automated scanners that test persistence and query execution in a single pass less likely to flag it. Because no sanitization converts the stored value to a safe integer before SQL embedding, arbitrary SQL fragments - including UNION SELECT and stacked queries - can be appended.

Know when Icegram gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Wordfence) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 4.9 MEDIUM

Technical description explicitly gates the save action on Editor-level `edit_post` capability, warranting PR:H over vendor PR:L; no integrity or availability impact applies.

3.1 AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

DescriptionCVE.org

The Icegram Engage - Popups, Optins, CTAs & Lead Generation plugin for WordPress is vulnerable to second-order SQL Injection via 'messages[][id]' Parameter in all versions up to, and including, 3.1.42 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for authenticated attackers, with contributor-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database. The injection is second-order: the malicious id value is first persisted to post meta via the save_campaign_preview() AJAX action (gated by a nonce check and edit_post capability, requiring Editor-level access or above), and only executed as SQL when a subsequent preview request triggers get_message_data() to interpolate the stored value directly into a SQL IN() clause without $wpdb->prepare() or integer casting.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Medium
popular WordPress lead-generation plugin, moderate install base
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

CVE-2024-4295 CRITICAL POC
9.8 Jun 05

The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in

CVE-2022-0439 HIGH POC
8.8 Mar 07

The Email Subscribers & Newsletters WordPress plugin before 5.3.2 does not correctly escape the `order` and `orderby` pa

CVE-2018-6015 HIGH POC
7.5 Jan 26

An issue was discovered in the "Email Subscribers & Newsletters" plugin before 3.4.8 for WordPress. Rated high severity

CVE-2020-5767 MEDIUM POC
6.5 Jul 17

Cross-site request forgery in Icegram Email Subscribers & Newsletters Plugin for WordPress v4.4.8 allows a remote attack

CVE-2019-19984 MEDIUM POC
6.3 Dec 26

The WordPress plugin, Email Subscribers & Newsletters, before 4.2.3 had a flaw that allowed users with edit_post capabil

CVE-2024-6172 CRITICAL
9.8 Jul 02

The Email Subscribers by Icegram Express - Email Marketing, Newsletters, Automation for WordPress & WooCommerce plugin f

CVE-2025-0671 MEDIUM POC
6.1 Apr 25

The Icegram Express WordPress plugin before 5.7.50 does not sanitise and escape some of its Template settings, which cou

CVE-2023-2398 MEDIUM POC
6.1 Jun 12

The Icegram Engage WordPress plugin before 3.1.12 does not escape a parameter before outputting it back in an attribute,

CVE-2021-24941 MEDIUM POC
6.1 Dec 21

The Popups, Welcome Bar, Optins and Lead Generation Plugin WordPress plugin before 2.0.5 does not sanitise and escape th

CVE-2024-5756 CRITICAL
9.8 Jun 21

The Email Subscribers by Icegram Express - Email Marketing, Newsletters, Automation for WordPress & WooCommerce plugin f

CVE-2024-31352 CRITICAL
9.8 Jun 09

Missing Authorization vulnerability in Email Subscribers & Newsletters.7.13. Rated critical severity (CVSS 9.8), this vu

CVE-2019-13569 CRITICAL
9.8 Jul 19

A SQL injection vulnerability exists in the Icegram Email Subscribers & Newsletters plugin through 4.1.7 for WordPress.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy