Skip to main content

Listdom CVE-2026-96647

| EUVDEUVD-2026-91255 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-02 Wordfence GHSA-gwjj-9h2j-mhf4
6.4
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Access
    Register low-privilege WordPress account
  2. Delivery
    Read nonce from [listdom-dashboard] page
  3. Exploit
    Submit crafted lsd[remark] via AJAX
  4. Execution
    Store XSS payload in listing
  5. Impact
    Script executes in victim/admin browser

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

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 authenticated account on the target site and that the site renders the [listdom-dashboard] shortcode on a page - this is what publicly emits the nonce needed to call the AJAX listing-creation handler. Nominally contributor-level access is required, but the description confirms Subscriber-level users can exploit it because the listing-creation branch of the AJAX handler omits the capability check; this makes open user registration (common on directory/classifieds sites) the key enabling condition. Payload is injected via the 'lsd[remark]' parameter and stored. The limiting factors that reduce real-world risk: the site must allow registration (or the attacker must otherwise obtain any authenticated account), must use the dashboard shortcode, and the payload only fires when another user subsequently views the injected page (deferred, victim-dependent execution).

Impact

This is a stored XSS flaw (CWE-79) in the Listdom WordPress plugin with a provided CVSS 3.1 score of 6.4 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N). The signals paint a moderate but credible risk. No EPSS score, KEV listing, or POC is present in the input, so by precision rules this is 'no public exploit identified at time of analysis' and there is NO evidence of active exploitation. The CVSS vector indicates network vector, low complexity, and only low privileges (PR:L), but the description materially LOWERS the effective privilege bar: although the vulnerability is nominally for contributor-level and above, it is actually reachable by Subscriber-level users because the listing-creation branch of the AJAX handler omits a capability check and the required nonce is publicly emitted on any page bearing the [listdom-dashboard] shortcode. That caveat means the real-world barrier is lower than PR:L alone suggests - Subscriber is the lowest authenticated WordPress tier and registration is frequently open on directory/classifieds sites. The scope change (S:C) plus the stored nature means injected script executes against any visitor, including administrators, which is the main escalation concern. Net: not a drop-everything critical, but a legitimately prioritizable issue on sites that allow open/Subscriber registration, undercut only by the lack of exploitation telemetry (no EPSS/KEV/POC in the data).

Exploit ScenarioDerived

An attacker registers a free Subscriber account on a Listdom-powered directory site that exposes the [listdom-dashboard] shortcode, harvests the publicly emitted nonce from that page, and submits a listing-creation AJAX request with a malicious payload in the 'lsd[remark]' parameter. Because input sanitization and output escaping are insufficient and the capability check is missing, the script is stored and later executes in the browser of any user - including an administrator - who views the injected page. No public exploit code is identified in the provided data.

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

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

Alert me

AnalysisAIv1 – Oct 02, 2026

Stored cross-site scripting in the Listdom: AI-powered Business Directory with Classifieds Ads Listings plugin for WordPress (all versions up to and including 6.1.1) allows an authenticated attacker to inject arbitrary JavaScript through the 'lsd[remark]' listing parameter, which is then persisted and executed in the browser of any user who later views the affected page. Because the listing-creation branch of the plugin's AJAX handler omits a capability check and the required nonce is publicly emitted on any page containing the [listdom-dashboard] shortcode, the practical prerequisite collapses to merely holding any account on the site - a Subscriber account suffices, making sites with open user registration (typical for directory and classifieds deployments) the primary exposure. There is no public exploit identified at time of analysis and the flaw is not confirmed as actively exploited (CISA KEV); the CVSS 3.1 score is 6.4 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N).

RemediationAI

The upstream fix is captured in Trac changeset 3711814 for the listdom plugin (https://plugins.trac.wordpress.org/changeset?reponame=&old=3711814%40listdom&new=3711814%40listdom), which addresses the 'lsd[remark]' sanitization/escaping path; because no tagged post-6.1.1 release version is confirmed in the available data, the status is best described as upstream fix available (changeset/commit) with a released patched version not independently confirmed, so verify in the WordPress.org plugin repository that you are installing a build containing changeset 3711814 rather than assuming a specific version number. Until that build is applied, the most effective compensating control is to close the registration path: disable 'Anyone can register' in WordPress Settings > General and remove any membership/registration plugin that grants Subscriber accounts, since any authenticated account - including Subscriber level - is sufficient for exploitation; the trade-off is loss of self-service signups for directory and classifieds sites. Second, remove or unpublish the [listdom-dashboard] shortcode from public pages, which stops the nonce from being publicly emitted and effectively blocks the AJAX listing-creation route at the cost of disabling the front-end dashboard and user listing submission. Third, if the remark field cannot be disabled outright (e.g., by filtering it at the theme/plugin level or via a small mu-plugin that strips HTML from 'lsd[remark]'), deploy a WAF rule that blocks script-bearing payloads in the lsd[remark] parameter and on the plugin's admin-ajax action, accepting that WAF evasion is possible for obfuscated payloads. Finally, review existing listing content for stored script payloads in the remark field and remove them, because injected scripts persist after patching and will continue to fire for visitors of already-poisoned pages.

Affected VersionsENISA

Listdom: AI-powered Business Directory with Classifieds Ads Listings 0 ≤6.1.1

Affected Packages

euvd listdom_ai_powered_business_directory_with_classifieds_ads_listings 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 is a classic CWE-79 stored/persistent cross-site scripting issue in a WordPress plugin. Listdom front-ends its listing-submission workflow through an AJAX handler exposed by the [listdom-dashboard] shortcode; that shortcode also emits the AJAX nonce on the public page, so the usual CSRF-style gate provides no real protection. The vulnerable data path is the 'lsd[remark]' field of a listing, rendered by the template element at app/includes/template/elements/remark.php (around line 122 in the 6.1.0 tag) without adequate output escaping, while input is insufficiently sanitized on the way into app/includes/entity/listing.php (around line 200). The dashboard shortcode code (app/includes/shortcodes/dashboard.php) is the referenced surface where the nonce is exposed and where the AJAX branch handling listing creation fails to enforce a capability check - the missing check is what downgrades the nominal contributor-level requirement to any authenticated user, including Subscribers. The CPE cpe:2.3:a:webilia:listdom:... confirms the affected vendor/product as Webilia's Listdom plugin, and the CVSS vector's scope-change (S:C) reflects that script execution crosses from the vulnerable component into the victim's WordPress session/domain context rather than remaining confined to the plugin itself.

Know when Listdom 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.4 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 6.4 MEDIUM

Remotely reachable by the lowest authenticated tier (PR:L), no victim interaction to inject; stored XSS crosses into other users' sessions (S:C) with limited C/I and no availability impact.

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

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

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

DescriptionCVE.org

The Listdom: AI-powered Business Directory with Classifieds Ads Listings plugin for WordPress is vulnerable to Stored Cross-Site Scripting via 'lsd[remark]' Parameter in all versions up to, and including, 6.1.1 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This is exploitable by Subscriber-level users because the listing-creation branch of the AJAX handler omits a capability check, and the required nonce is publicly emitted on any page containing the [listdom-dashboard] shortcode.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Low
niche Webilia directory/classifieds WordPress plugin, limited 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.2%
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

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

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