DJ-HelpfulArticles: Unauthenticated stored XSS in administrator backend
Summary
DJ-HelpfulArticles, a free Joomla extension for article voting, stores the unvalidated client-supplied ip field from its vote handlers and prints it unescaped in the administrator backend. An unauthenticated attacker can submit a crafted vote through com_ajax, and the script runs when an administrator views the Helpful articles overview. This can lead to session hijacking or admin account compromise. The CNA rates the issue CVSS 4.0 8.7 (High), and user interaction by an administrator is required.
Affected
- DJ-HelpfulArticles 1.0.0 through 1.2.0 (Joomla extension, per CNA record)
Unknown whether other versions are affected.
Fixed in
- Version 1.3.0 or later
The vendor homepage lists a "DJ-HelpfulArticles 1.3: Security Update" post; the full advisory was not verified.
Workaround
- No vendor-published workaround.
- If an update cannot be applied immediately, restrict access to the Joomla administrator backend (IP allow-listing or VPN).
- Remove or disable the extension if it is not needed, and review stored vote records for HTML or script content in the ip field.
Exploitation
- No known exploitation in the wild.
- No public proof of concept found as of 31 Oct 2026.
- EPSS: 0.39 % (percentile 33).
Our recommendation
- Update DJ-HelpfulArticles to version 1.3.0 or later on all Joomla sites.
- Until patched, restrict administrator backend access and disable the extension if unused.
- Check existing vote records for script or HTML content in the ip field and treat suspicious entries as possible compromise attempts.
- Prioritise internet-facing sites that run version 1.2.0 or older and have administrators working in the backend.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- VulDB entry 427160 vuldb.com
- Strix CVE record CVE-2026-102800 www.strix.ai
- ThreatInt CVE record CVE-2026-102800 cve.threatint.com
- OffSeq threat radar entry radar.offseq.com
- MySites.guru vulnerability database mysites.guru
- DJ-Extensions homepage dj-extensions.com
- DJ-HelpfulArticles release announcement dj-extensions.com
- NVD CVE-2024-27183 (earlier XSS in same product) nvd.nist.gov
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 31 Oct 2026, 23:57.
Original description (NVD)
Joomla Extension - dj-extensions.com - Unauthenticated Stored XSS in DJ-HelpfulArticles < 1.3.0 - The “was this article helpful” voting widget posts a client-supplied ip field to its AJAX handlers (getDeny, getConfirm, getDenyReason in mod_djhelpful_articles/helper.php), reachable without authentication through com_ajax. The value was stored exactly as submitted instead of being taken from the connection by the server. It was then printed without output escaping in the administrator backend’s “Helpful articles” overview (views/items/tmpl/default.php). $db->quote() was applied on insert, which protects the SQL statement but does nothing for HTML output. There was no CSRF token, no rate limit, and the vote de-duplication keyed on the same attacker-controlled field.
NVD references (1)
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
