Skip to main content

QloApps CVE-2026-103589

| EUVDEUVD-2026-90437 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-09-30 VulnCheck GHSA-qq8h-8w9q-4q22
5.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Lure authenticated back-office user
  2. Delivery
    Deliver crafted auto-submitting POST
  3. Exploit
    Inject payload into room_num/floor/comment
  4. Execution
    Reflected unescaped in input attribute
  5. Persist
    Execute JS in admin session
  6. Impact
    Hijack administrative actions/session

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 (administrative) user of QloApps through 1.7.0 and that user being induced to submit a crafted POST request to the room type editor with a malicious payload in the room_num, floor, or comment fields, which are reflected unescaped into HTML input value attributes (admin-dev/themes/default/template/controllers/products/configuration.tpl). Limiting factors: the attacker cannot self-trigger it - a logged-in back-office victim must perform the submission (active user interaction), raising the social-engineering bar; it is reflected (non-persistent), so each exploitation needs a fresh lure; and the patched version is already available. These conditions meaningfully constrain real-world risk below the raw network-attack-vector impression.

Impact

This is a reflected XSS (CWE-79) in the QloApps back-office room type editor, and the real-world risk is moderate-to-low despite being present in an administrative interface. The vendor CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/PR:L/UI:P/VC:L/VI:L/VA:N) scores 5.1, and this is well-calibrated: exploitation is network-reachable but gated behind PR:L (the victim must be an authenticated back-office user) and UI:P/active user interaction (the victim must be induced to submit a crafted POST request). Impact is limited (VC:L/VI:L) - script execution in the admin session, not direct full compromise. No EPSS score was provided and the CVE is not in CISA KEV, so there is no confirmed active exploitation; this is a self-reported/researcher-reported issue (VulnCheck) with a vendor patch already available. A detailed public technical writeup exists (hackmd '@leediay/four-reflected-xss-qloapps') describing the flaw, and the patch diff is public, which materially lowers the bar to craft a working payload - but no weaponized exploit or active exploitation is confirmed. Net: a legitimate issue to patch, but not an emergency; its severity ceiling is capped by the authenticated-victim + user-interaction requirements. Note one data-quality conflict: the input Tags list 'Microsoft', which is incorrect - the affected product is Webkul's QloApps per the CPE and all references.

Exploit ScenarioDerived

An attacker crafts a malicious page or link that auto-submits a POST request to the room type editor containing a JavaScript payload in the room_num, floor, or comment field. The attacker then social-engineers an authenticated back-office/admin user into triggering it (e.g., clicking a link while logged in), causing the unescaped value to be reflected into an input attribute and executed in the admin's session. A public technical writeup detailing the four reflected XSS vectors and the patch diff are available, so payload construction is straightforward, though no packaged exploit is confirmed.

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 in the QloApps back-office room type editor (all versions through 1.7.0) allows an attacker to execute arbitrary JavaScript in a logged-in administrator's session by inducing that administrator to submit a crafted POST request whose room_num, floor, or comment values are reflected unescaped into HTML input attributes. Exploitation is not self-triggering: it requires an authenticated back-office user and active user interaction, so the practical risk is moderate-to-low despite the administrative context, and each attempt needs a fresh lure because the XSS is non-persistent. No public exploit identified at time of analysis, and an upstream fix is available via the vendor's GitHub pull request and commit, though a tagged patched release version is not independently confirmed.

RemediationAI

Apply the upstream fix: QloApps PR #1899 (https://github.com/Qloapps/QloApps/pull/1899), merged as commit 7ed467d911086b190180d7f297e3b15ba31e82d5 (https://github.com/Qloapps/QloApps/commit/7ed467d911086b190180d7f297e3b15ba31e82d5), which adds |escape:'html':'UTF-8' to the room_num, floor, comment, status, min_los and max_los output in the back-office templates, swaps the .html() sink for .text(), and sanitizes generated form markup via Tools::safeOutput() and integer casts. Note that this is an upstream fix available (PR/commit); a tagged, released patched version is not independently confirmed, so verify the fix is present in the build you deploy rather than assuming a version number. If you cannot patch immediately, reduce exposure with compensating controls and accept their trade-offs: restrict back-office (/admin-dev/) access to trusted networks or VPN and enforce MFA, which shrinks the population of lureable administrators but does not remove the flaw; deploy a Content-Security-Policy on the admin panel with a restrictive script-src (no 'unsafe-inline') to blunt inline payload execution, accepting that legacy admin JavaScript may break and require tuning; and consider temporarily disabling the room type editor and other back-office editors that echo user-supplied values into attributes, at the cost of losing room configuration functionality. Because the XSS is reflected, user education about not following unsolicited links into the admin panel is a useful but secondary control. There is no vendor patch version to cite beyond the referenced commit, so do not rely on any specific release number unless your vendor confirms it.

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

This is a classic CWE-79 improper neutralization of input during web page generation (cross-site scripting), specifically reflected XSS. QloApps is Webkul's open-source hotel booking and property management application, derived from PrestaShop, and identified in the affected CPE as cpe:2.3:a:webkul:qloapps with a wildcard version, meaning every release up to and including 1.7.0 is in scope. The back-office room type editor is rendered through Smarty templates; the vulnerable file is admin-dev/themes/default/template/controllers/products/configuration.tpl, where values such as {$room_info['room_num']}, {$room_info['floor']}, and {$room_info['comment']} are interpolated directly into HTML input value="..." attributes without any output encoding. Because the value is placed inside an attribute that is delimited by double quotes, an attacker-supplied payload can break out of the attribute (for example a quote followed by an event handler) and execute script in the administrative origin. The upstream patch demonstrates the correct pattern: applying the Smarty modifier |escape:'html':'UTF-8' to each reflected variable, and additionally replacing an .html(roomNum) sink with .text(roomNum). The same PR hardens related surfaces, including lengthofstay.tpl and booked_room_date_ranges_list.tpl (escaped min_los/max_los and room_num), a jQuery attribute-selector built from untrusted values in modules_positions/form.tpl (replaced with a value-comparison filter to avoid selector injection), and AdminModulesPositionsController.php, where raw shop identifiers and names were passed into generated form HTML and are now cast to int or run through Tools::safeOutput(). This grouping indicates a systemic output-encoding weakness in the QloApps back-office templating layer rather than an isolated single-field bug.

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

Reflected XSS requiring an authenticated back-office victim (PR:L) to submit a crafted request (UI:R); script runs in the admin browser context (S:C) with limited confidentiality/integrity impact 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 back-office room type editor that fails to escape room_num, floor, and comment field values in input attributes. Attackers can induce authenticated back-office users to submit crafted POST requests with malicious payloads to execute arbitrary JavaScript in the victim's administrative session.

Threat Intelligence Overview

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Low
niche open-source hotel/booking e-commerce platform, limited production footprint
Data Quality
4 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 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