Skip to main content

QloApps CVE-2026-103588

| EUVDEUVD-2026-90436 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-09-30 VulnCheck GHSA-fcwp-ghxg-82xp
5.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Phish authenticated admin with crafted exceptions-param link
  2. Delivery
    Admin clicks link to back-office Transplant-module form
  3. Exploit
    Unescaped exceptions value reflects into input element
  4. Execution
    JavaScript executes in admin session
  5. Impact
    Steal session tokens / perform admin actions

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 back-office administrator session in QloApps (through 1.7.0) and that the victim follow an attacker-crafted link - the payload lands in the 'exceptions' parameter of the AdminModulesPositions 'Transplant a module' form, whose displayModuleExceptionList() reflects the value unescaped into an HTML input. Limiting factors: the attacker cannot exploit this without an admin being logged in and clicking the malicious link (UI:P/PR:L), the XSS is reflected (non-persistent, so each victim must be individually lured), and impact is bounded to the admin's browser session (Low C/I, no availability impact). Patched installations (PR #1899 / commit 7ed467d, which applies Tools::safeOutput) are not affected.

Impact

This is a genuinely low-to-moderate priority issue, not a high-CVSS-but-overrated flaw - the vendor's own CVSS 4.0 score of 5.1 (Medium) already reflects its constrained impact. The 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/SC:L/SI:L) shows network reach but three meaningful limiters: it requires an authenticated administrator (PR:L), passive user interaction (UI:P - the admin must follow the attacker's link), and yields only Low confidentiality/integrity impact (reflected, non-persistent script execution). No EPSS score was provided and the CVE is not in CISA KEV, so there is no evidence of active exploitation. Public proof-of-concept detail does exist (the hackmd write-up by @leediay documenting four reflected XSS in QloApps, plus the VulnCheck advisory), so exploitation is well-understood even if not automated. Signals are internally consistent: the reflected, admin-targeted, interaction-dependent nature matches the modest score. A patch is confirmed available (vendor PR #1899 / commit 7ed467d), which should be the primary remediation driver rather than fear of mass exploitation.

Exploit ScenarioDerived

An attacker crafts a URL to the QloApps back-office AdminModulesPositions controller with a JavaScript payload in the exceptions parameter, then lures a logged-in administrator (via phishing/chat) into clicking it. When the admin's browser renders the 'Transplant a module' exceptions form, the unescaped value reflects into the input and the script executes in the admin's session, enabling session/CSRF-token theft or back-office actions on the admin's behalf. Public write-ups (hackmd @leediay and the VulnCheck advisory) document the technique, so working exploit knowledge is available.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 01, 2026

Reflected cross-site scripting (CWE-79) in QloApps through 1.7.0 lets attackers inject JavaScript through the 'exceptions' parameter of the back-office 'Transplant a module' form, which AdminModulesPositionsController::displayModuleExceptionList() reflects unescaped into an HTML input so the payload executes in an authenticated administrator's browser once the victim follows a crafted link. Exploitation requires a logged-in back-office admin and victim interaction (CVSS 4.0 5.1 Medium; vector PR:L/UI:P, independently assessed as CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N), the payload is reflected and non-persistent so each victim must be individually lured, and impact is bounded to low confidentiality/integrity with no availability effect. An upstream fix is available (GitHub PR #1899 / commit 7ed467d, which introduces Tools::safeOutput), and no public exploit is identified at time of analysis.

RemediationAI

Upstream fix available (PR/commit); released patched version not independently confirmed. Apply QloApps commit 7ed467d911086b190180d7f297e3b15ba31e82d5 (GitHub PR https://github.com/Qloapps/QloApps/pull/1899), which encodes the exceptions value, shop name and option values with Tools::safeOutput(), integer-casts the shop id, and hardens the related JavaScript in form.tpl - or upgrade to a QloApps build that vendors this commit, after verifying with the project repository (https://github.com/Qloapps/QloApps) which release contains it, since the vendor advisory at https://www.vulncheck.com/advisories/qloapps-through-1.7.0-reflected-xss-via-exceptions-field did not specify a fixed version number. If immediate patching is not possible, compensating controls are: restrict back-office reachability by relocating/renaming the admin directory, IP-allowlisting or placing the admin panel behind VPN/SSO, and treating any unsolicited link to the module-transplant screen as hostile - trade-offs are that these measures break remote or roaming administrator workflows and do not remove the underlying flaw; alternatively, temporarily disable the 'Transplant a module' / module positions feature until the fix is deployed, accepting that legitimate module repositioning will be unavailable. As additional defense, deploy a Content-Security-Policy that disallows inline scripts on admin pages (with the caveat that legacy Smarty/back-office inline JavaScript may break and require testing), and warn administrators not to follow links containing crafted 'exceptions' parameters.

Affected VersionsENISA

QloApps 0 ≤1.7.0

Affected Packages

euvd qloapps 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

QloApps is a Webkul-built open-source hotel booking and property-management platform derived from the PrestaShop codebase, so it inherits PrestaShop's AdminController back-office architecture and Smarty template engine. The vulnerable surface is the AdminModulesPositions back-office controller, specifically the 'Transplant a module' workflow that hooks a module into a display position and accepts an 'exceptions' list of files. In displayModuleExceptionList() the input is built by raw string concatenation - '<input type="text" name="exceptions['.$shop_id.']" value="'.implode(', ', $file_list).'" ...>' - and the shop name and generated <option> values are interpolated the same way, with no HTML encoding; the accompanying form.tpl also builds a jQuery selector by string-concatenating user-influenced values (list.find('option[value="' + $.trim(values[i]) + '"]')). The CWE-79 root cause is failure to neutralize user-controllable input before it is placed in output: the reflected value lands inside an HTML attribute, so an attribute-breaking payload (for example '"><script>...' or an event-handler injection) is parsed and executed in the administrator's origin, giving script access to the whole authenticated back office. The upstream patch replaces concatenation with Tools::safeOutput() (HTML-special-character encoding) on the exceptions value, the shop name and the option values, casts $shop_id to an integer, switches the jQuery lookup to a strict .filter(function(){ return this.value === value; }) comparison, and replaces .html() with .text() on a related booking-dates view.

Know when Qloapps 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 (VulnCheck) PRIMARY 5.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
vuln.today AI 5.4 MEDIUM

Network-reachable reflected XSS needing an authenticated admin (PR:L) to click a link (UI:R); script-in-browser crosses into the admin DOM context (S:C) with limited C/I and no availability impact.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

QloApps through 1.7.0 contains a reflected cross-site scripting vulnerability in the exceptions field of the back-office Transplant a module form. Attackers can craft a malicious link containing JavaScript payload in the exceptions parameter that executes in an authenticated administrator's session when the victim follows the link.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Low
niche open-source hotel-booking/PrestaShop fork, limited production footprint
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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 Yes
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

CVE-2025-67325 CRITICAL POC
9.8 Jan 08

QloApps hotel management system (through 1.7.0) allows unauthenticated web shell upload through the hotel review feature

CVE-2023-36284 HIGH POC
7.5 Jun 23

An unauthenticated Time-Based SQL injection found in Webkul QloApps 1.6.0 via GET parameter date_from, date_to, and id_p

CVE-2024-40318 HIGH POC
7.2 Jul 25

An arbitrary file upload vulnerability in Webkul Qloapps v1.6.0.0 allows attackers to execute arbitrary code via uploadi

CVE-2026-93988 HIGH POC
7.1 Sep 19

Path traversal in QloApps through 1.7.0 lets an authenticated back-office user read arbitrary files from the web server

CVE-2023-36287 MEDIUM POC
6.1 Jun 23

An unauthenticated Cross-Site Scripting (XSS) vulnerability found in Webkul QloApps 1.6.0 allows an attacker to obtain a

CVE-2023-36289 MEDIUM POC
6.1 Jun 23

An unauthenticated Cross-Site Scripting (XSS) vulnerability found in Webkul QloApps 1.6.0 allows an attacker to obtain a

CVE-2023-30256 MEDIUM POC
6.1 May 11

Cross Site Scripting vulnerability found in Webkil QloApps v.1.5.2 allows a remote attacker to obtain sensitive informat

CVE-2025-10759 MEDIUM POC
5.5 Sep 21

A vulnerability was detected in Webkul QloApps up to 1.7.0. Rated medium severity (CVSS 5.5), this vulnerability is remo

CVE-2023-36288 MEDIUM POC
5.4 Jun 23

An unauthenticated Cross-Site Scripting (XSS) vulnerability found in Webkul QloApps 1.6.0 allows an attacker to obtain a

CVE-2025-1155 MEDIUM POC
5.3 Feb 10

A vulnerability, which was classified as problematic, was found in Webkul QloApps 1.6.1. Rated medium severity (CVSS 5.3

CVE-2026-25558 MEDIUM POC
4.8 Jun 08

Stored cross-site scripting in QloApps through 1.7.0 enables authenticated administrators to inject persistent JavaScrip

CVE-2026-75496 HIGH
8.6 Aug 25

Unrestricted file upload in Webkul QloApps allows a remote attacker holding administrative credentials to upload executa

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