Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as QloApps customer
-
ExploitSubmit refund request with foreign id_service_product_order_detail and own id_order
-
ExecutionServer creates refund record without ownership check
-
ImpactCancel victim service lines and corrupt refund quantities
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Exploitation requires a valid, authenticated QloApps customer account (PR:L) on an instance running version 1.7.0 or earlier; no administrative rights and no victim interaction (UI:N) are needed. The attacker must reach the OrderDetailController::displayAjaxSubmitRefundRequest() endpoint and supply a foreign id_service_product_order_detail value alongside their own id_order, which in practice means knowing or enumerating other customers' service-line identifiers. The limiting factors are therefore the need for any authenticated account and the need to discover/guess valid foreign id_service_product_order_detail values; there is no confidentiality disclosure, only tampering with and cancellation of victims' refund and service records. |
| Impact | This is a genuine but moderate-priority issue, not a high-CVSS-but-low-real-risk case nor a critical emergency. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) scores 5.3 (medium) and is internally consistent with the description: network-reachable, low-complexity, requires an authenticated customer account (PR:L), no user interaction. Impact is deliberately limited - VC:N (no confidentiality loss), VI:L and VA:L (low integrity and availability impact), reflecting that the flaw lets an attacker tamper with and cancel other customers' refund/service records rather than read data or take over the host. The vuln.today decision label is 'this_month' (not act_now/emergency), aligning with the medium score. Signals are largely consistent rather than conflicting; the main caveat is missing exploitation telemetry: no EPSS score and no KEV listing are provided, and no SSVC automatable/technical-impact breakdown is supplied, so widespread automated exploitation cannot be inferred. The vulnerability was reported by VulnCheck and a vendor patch exists, which raises confidence in the finding itself even though real-world exploitation data is absent. |
| Exploit ScenarioDerived | An attacker who registers or already holds a customer account on a QloApps hotel-booking site sends a crafted AJAX request to OrderDetailController::displayAjaxSubmitRefundRequest(), supplying another customer's id_service_product_order_detail together with their own id_order. Because the controller does not verify that the service line belongs to the requester (CWE-639), the server creates refund records against the victim's bookings, cancels the victim's service lines, and corrupts refund quantities. No public exploit code was identified at time of analysis, though the exact vulnerable code location is published in the references. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 22, 2026
Insecure direct object reference in QloApps (Webkul) through 1.7.0 lets any holder of a valid customer account act on other customers' bookings: by submitting a foreign id_service_product_order_detail alongside their own id_order to OrderDetailController::displayAjaxSubmitRefundRequest(), the attacker can create refund records against someone else's service line, cancel that line, and corrupt refund quantities. The impact is confined to integrity and availability (CVSS 4.0 base 5.3; assessed CVSS 3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L) - no data disclosure - and exploitation requires authentication plus knowledge or enumeration of other customers' service-line identifiers, with no victim interaction. No CISA KEV entry exists and no public exploit was identified at time of analysis; the vendor has published fix references and priority guidance places this in the this-month remediation window.
RemediationAI
Apply the vendor fix: the upstream change is published as pull request https://github.com/Qloapps/QloApps/pull/1930 and commit https://github.com/Qloapps/QloApps/commit/105241f9a77e94b30d6c2d577d14b247f33a5fba, so deploy a build that includes that commit or wait for the corresponding tagged release - no patched release version number is confirmed in the available data, so verify the tag contents before relying on it. If upgrading immediately is not possible, the practical compensating controls are to disable or hide the customer-facing refund submission action in OrderDetailController::displayAjaxSubmitRefundRequest() (for example by removing the refund request form/button from the order detail template), accepting that customers can no longer self-service refunds and staff must process them in the back office; or to restrict the affected front-office route at the web server/proxy layer to trusted networks, which breaks the feature for ordinary customers. In parallel, audit existing refund records for rows where id_order and id_service_product_order_detail do not belong to the same customer, restore any service lines that were cancelled without the owner's request, and monitor the endpoint for callers iterating service-line identifiers. Full details are in the vendor advisory at https://www.vulncheck.com/advisories/qloapps-through-1.7.0-idor-via-orderdetailcontroller-refund-request.
Affected VersionsENISA
Affected Packages
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 PHP hotel/property booking application derived from PrestaShop, following the same front-controller pattern where controllers under controllers/front/ handle customer-facing AJAX actions. The flaw is CWE-639 (Authorization Bypass Through User-Controlled Key), the classic IDOR/BOLA class: displayAjaxSubmitRefundRequest() accepts an object identifier (id_service_product_order_detail) directly from the request and acts on it without confirming that the referenced service line belongs to the caller's order or customer account. The only binding the code enforces is the attacker's own id_order, so pairing a legitimate order with a foreign service-line key produces refund records attached to another customer's booking, cancels that booking line, and distorts refunded quantities. The vendor code reference in the advisory points at controllers/front/OrderDetailController.php lines 624-631 as shipped in tag v1.7.0. The limiting factor is not technical sophistication but discovery: the attacker must know or enumerate valid foreign id_service_product_order_detail values, which are sequential database identifiers and therefore plausibly guessable. Fix references are a GitHub pull request and commit rather than a tagged release, and the diff excerpt supplied alongside the advisory covers broader escaping and Validate.php input-sanitisation changes, so the exact ownership-check hunk was not independently verified from the excerpt alone.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
Remote web request (AV:N/AC:L) by any authenticated customer (PR:L); no data disclosure (C:N) but unauthorized modification and cancellation of other customers' refund/service records gives I:L and A:L.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
QloApps through 1.7.0 contains an insecure direct object reference vulnerability in OrderDetailController::displayAjaxSubmitRefundRequest() that allows authenticated customers to submit refunds for other customers' service lines. Attackers can submit foreign id_service_product_order_detail values with their own id_order to create refund records, cancel victims' service lines, and corrupt refund quantities.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
QloApps hotel management system (through 1.7.0) allows unauthenticated web shell upload through the hotel review feature
An unauthenticated Time-Based SQL injection found in Webkul QloApps 1.6.0 via GET parameter date_from, date_to, and id_p
An arbitrary file upload vulnerability in Webkul Qloapps v1.6.0.0 allows attackers to execute arbitrary code via uploadi
Path traversal in QloApps through 1.7.0 lets an authenticated back-office user read arbitrary files from the web server
An unauthenticated Cross-Site Scripting (XSS) vulnerability found in Webkul QloApps 1.6.0 allows an attacker to obtain a
An unauthenticated Cross-Site Scripting (XSS) vulnerability found in Webkul QloApps 1.6.0 allows an attacker to obtain a
Cross Site Scripting vulnerability found in Webkil QloApps v.1.5.2 allows a remote attacker to obtain sensitive informat
A vulnerability was detected in Webkul QloApps up to 1.7.0. Rated medium severity (CVSS 5.5), this vulnerability is remo
An unauthenticated Cross-Site Scripting (XSS) vulnerability found in Webkul QloApps 1.6.0 allows an attacker to obtain a
A vulnerability, which was classified as problematic, was found in Webkul QloApps 1.6.1. Rated medium severity (CVSS 5.3
Stored cross-site scripting in QloApps through 1.7.0 enables authenticated administrators to inject persistent JavaScrip
Unrestricted file upload in Webkul QloApps allows a remote attacker holding administrative credentials to upload executa
EUVD-2026-108128
GHSA-7cwv-h2vr-67q3
NVD
CVE.org
EPSS
Exploit-DB