Skip to main content

DJ-HelpfulArticles CVE-2026-102800

| EUVDEUVD-2026-110809 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-27 Joomla GHSA-q7p6-hg4g-4wgq
8.7
CVSS 4.0 · Vendor: Joomla
View

Attack ChainAIDerived

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

  1. Access
    POST crafted ip field to com_ajax handler
  2. Delivery
    Value stored unescaped in votes data
  3. Exploit
    Administrator opens Helpful Articles overview
  4. Execution
    Payload executes in admin session
  5. Impact
    Abuse administrator privileges in backend

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 the DJ-HelpfulArticles 'was this article helpful' voting widget (mod_djhelpful_articles) to be deployed and reachable via com_ajax on a Joomla site running a version below 1.3.0 (affected 1.0.0-1.2.0). The injection step needs no authentication, no CSRF token, and is not rate-limited: the attacker directly supplies the 'ip' field to the getDeny/getConfirm/getDenyReason handlers, which store it as submitted rather than deriving it from the connection. The key limiting factor is that the stored payload only executes when a logged-in administrator opens the backend 'Helpful articles' items overview (views/items/tmpl/default.php) - this is the passive user interaction (UI:P) the CVSS vector reflects, so impact depends on an administrator viewing that page.

Impact

The signals are moderately consistent and point to a credible but conditional priority. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P, score 8.7) and CWE-79 describe an unauthenticated, network-reachable stored XSS requiring only passive interaction from a victim - specifically an administrator viewing the backend overview. The vuln.today decision label is 'this_week' rather than act_now or emergency, which fits a serious-but-not-actively-exploited issue. No EPSS score, no CISA KEV listing, and no PoC/exploit reference are present in the input, so there is no evidence of active exploitation or published exploit code at time of analysis. The main nuance is that the stored payload only fires when a logged-in administrator opens the 'Helpful articles' items view, so impact is gated on admin behavior rather than being a direct server takeover; this makes it lower urgency than a true unauthenticated RCE but still significant because the injection point is completely unauthenticated and the execution context is the Joomla administrator session. The vendor's VA:H (availability) rating is difficult to justify for an HTML-output XSS and appears overstated; treat the confidentiality/integrity exposure of the admin session as the real risk. Net: a real priority for sites running the affected extension, aligned with the 'this_week' label, but not an emergency given no exploitation or exploit-code evidence.

Exploit ScenarioDerived

An unauthenticated attacker sends a crafted request to the com_ajax voting handlers (getDeny/getConfirm/getDenyReason) with a malicious JavaScript payload in the client-supplied 'ip' field, which is stored verbatim. When a Joomla administrator later opens the 'Helpful articles' overview in the backend, the payload renders unescaped and executes in the administrator's authenticated session. No public exploit was identified at time of analysis, but the attack is low-complexity and needs no authentication to plant the payload.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 28, 2026

Unauthenticated stored cross-site scripting in the DJ-HelpfulArticles voting module for Joomla (affected versions 1.0.0 through 1.2.0) lets remote attackers plant persistent script in the site database through the client-supplied 'ip' field of the getDeny, getConfirm and getDenyReason com_ajax handlers, which store the submitted value verbatim rather than deriving it from the connection. The injected payload is later rendered without output escaping in the administrator backend 'Helpful articles' overview (views/items/tmpl/default.php), so it executes only when a logged-in administrator opens that page - a passive user-interaction prerequisite reflected in the assessed vector (UI:R, scope changed C:H/I:H). No public exploit code has been identified at time of analysis, and the vendor has released version 1.3.0 as the fixed release.

RemediationAI

Upgrade DJ-HelpfulArticles to version 1.3.0, the fixed release, which supersedes the affected 1.0.0-1.2.0 range; vendor information is published at https://www.dj-extensions.com/. If the upgrade cannot be applied immediately, the direct compensating control is to unpublish or disable the mod_djhelpful_articles module so the com_ajax getDeny, getConfirm and getDenyReason handlers are no longer reachable - the trade-off is that the 'was this article helpful' voting widget disappears from the front end and all accumulated vote data stops being collected. Blocking com_ajax wholesale is not recommended as a workaround because it is Joomla's shared AJAX dispatcher for modules and plugins and disabling it breaks unrelated front-end functionality. Because the injected payload only executes when an administrator opens the backend 'Helpful articles' overview, reviewing the contents of the stored vote records for injected markup before that page is viewed, and limiting backend access to trusted administrators, reduces the window in which a stored payload can fire - noting the vendor fix is the only complete remediation.

Affected VersionsENISA

DJ-HelpfulArticles extension for Joomla 1.0.0-1.2.0

Affected Packages

euvd dj_helpfularticles_extension_for_joomla 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 flaw sits in a Joomla module, mod_djhelpful_articles, whose helper.php exposes three AJAX voting endpoints (getDeny, getConfirm, getDenyReason) that are reachable without authentication through Joomla's com_ajax dispatcher - the standard component used to route AJAX calls to module and plugin handlers. Rather than reading the client address from the server-side connection, these handlers accept an 'ip' parameter supplied by the caller and persist it exactly as submitted. The insert is wrapped in $db->quote(), which correctly parameterises the SQL statement and blocks SQL injection, but has no bearing on HTML context: the stored value is subsequently printed unescaped in the administrator 'Helpful articles' items overview template, producing CWE-79 stored cross-site scripting. The vulnerable design compounds the problem in three ways described by the reporter: no CSRF token on the voting endpoints, no rate limiting, and vote de-duplication keyed on the same attacker-controlled 'ip' field - so the same submission path that injects the payload also governs duplicate-vote state. The trigger sequence is a two-stage chain: an unauthenticated injection request followed by an administrator page view; because the payload crosses from the voting widget into the privileged backend session, our independent assessment rates scope as changed with high confidentiality and integrity impact and no availability impact.

Know when PHP 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 (Joomla) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 9.3 CRITICAL

Injection is network-reachable and unauthenticated (AV:N/PR:N) but fires only when an admin views the backend page (UI:R); script runs in a different authority (S:C) compromising the admin session (C:H/I:H), with no availability impact (A:N).

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

Primary rating from Vendor (Joomla).

CVSS VectorVendor: Joomla

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

A high-severity stored cross-site scripting vulnerability in the DJ-HelpfulArticles Joomla extension (versions 1.0.0-1.2.0) allows unauthenticated attackers to inject persistent malicious scripts that execute when administrators view the 'Helpful articles' backend page, potentially compromising admin sessions and the integrity of the entire site. This poses a significant risk to organizations using Joomla for public-facing websites, as successful exploitation could lead to administrative account takeover and full site compromise.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 67% exploitable
Prevalence
Low
niche third-party Joomla extension with limited install base
Data Quality
3 sources
Confidence: Low

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 HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
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.

Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

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