Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLoad storefront, harvest review_ajax_token
-
DeliveryEnumerate sequential id_order values
-
ExploitPOST to qlohotelreview AddReview action
-
ExecutionSubmit fake review bypassing ownership check
-
ImpactFalsified ratings attributed to other customers
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 | Requires a QloApps 1.6.0-1.7.0 installation with the qlohotelreview module active and its AddReview AJAX front-controller reachable. The specific prerequisites named in the evidence are: (1) the review_ajax_token is publicly exposed on storefront pages and can be reused, and (2) id_order values are sequential and guessable, allowing enumeration. Per the CVSS vector (AV:N/AC:L/PR:N/UI:N), no authentication, no user interaction, and no special non-default configuration are required against a store running the review module. The limiting factor is impact scope only: the attacker can forge review content/ratings attributed to other orders (integrity), but cannot read order data or disrupt availability. The pre-patch code path confirmed by the fix diff shows the missing $objOrder->secure_key comparison as the sole gating weakness. |
| Impact | This is a genuine but low-to-moderate priority issue, and the signals are internally consistent rather than conflicting. The CVSS 4.0 vector (AV:N/AC:L/PR:N/UI:N) confirms remote, unauthenticated, low-complexity exploitation with no user interaction, which matches the description of an IDOR (CWE-639) reachable through a public AJAX token. However, impact is deliberately narrow: only VI:L (low integrity) is set, with VC:N and VA:N - there is no data disclosure and no availability loss. SSVC agrees: Exploitation=none (no observed exploitation), Automatable=yes (the attack is scriptable via sequential id_order enumeration), Technical Impact=partial. EPSS is low at 0.25% (16th percentile), and the vulnerability is NOT in CISA KEV, so there is no evidence of active exploitation - consistent with SSVC's 'none'. The vuln.today decision label is 'this_month', not 'act_now' or 'emergency', so this should be remediated on a routine monthly cycle rather than as a fire drill. Bottom line: a real, trivially automatable integrity/reputation flaw (fake reviews attributed to other customers), but one with limited technical impact and no confidentiality or availability consequences - appropriately rated medium (6.9), not a critical priority. |
| Exploit ScenarioDerived | An unauthenticated attacker loads a QloApps storefront page, harvests the publicly exposed review_ajax_token, and scripts POST requests to the qlohotelreview AddReview action while incrementing id_order values. Because the AddReview handler never verified that the requester owned the order, each request posts a fake rating and review attributed to the real customer behind that order. No public exploit is identified in the input, but the VulnCheck advisory and the public fix diff (PR #1757) make the mechanism fully transparent and the attack straightforward to reproduce. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Unauthenticated review forgery in QloApps 1.6.0 through 1.7.0 allows remote attackers to post fake ratings and reviews attributed to other customers by reusing the publicly exposed review_ajax_token and enumerating sequential id_order values against the qlohotelreview module's AddReview AJAX action. The impact is limited to integrity - forged review content and ratings attached to arbitrary orders - with no read of order data and no effect on availability, consistent with an assessed CVSS:3.1 vector of AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N. No public exploit has been identified at time of analysis and EPSS is low at 0.25% (16th percentile), although the attack is automatable and SSVC records no observed exploitation; the vendor has published an upstream fix.
RemediationAI
Apply the upstream vendor fix, referenced in the advisory data as available from the vendor: pull request https://github.com/Qloapps/QloApps/pull/1757 and commit https://github.com/Qloapps/QloApps/commit/d5ce1333c99b9619fc17412580fbb28c02be2580 - no tagged patched release version is stated in the available data, so confirm with the vendor before relying on a specific build number. The fix enforces an ownership check in displayAjaxAddReview() by validating the submitted order_secure_key against $objOrder->secure_key, passes that key into the booking-action template, and appends it to the AJAX form data; the same three changes (controller, template, review.js) must be applied together or review submission will break. If immediate upgrade is not possible, the only exposure-removing workaround supported by the evidence is to disable the qlohotelreview module on affected 1.6.0-1.7.0 installations, which removes the AddReview AJAX endpoint entirely at the cost of losing customer review functionality on the storefront. No other compensating control is described in the available sources, and the vendor position reflected in the fix is that validating the order secure key is the complete remedy - note that a patch is available but no exploitation has been observed, so this can be scheduled within the vendor's normal maintenance cadence.
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 PrestaShop-derived hotel booking and property management platform, and the affected component is the qlohotelreview front-office module. The vulnerable code lives in modules/qlohotelreview/controllers/front/default.php, in the displayAjaxAddReview() action (referenced lines 37-104 in the v1.7.0 source), which accepts review submissions via an AJAX endpoint guarded by a review_ajax_token that is rendered into storefront pages and therefore publicly reusable. The root cause is CWE-639, Authorization Bypass Through User-Controlled Key: the order identifier id_order is supplied by the client, the values are sequential and guessable, and the pre-patch code path never compared the submitted request against the order's own secure_key. The source diff confirms this was the sole gating weakness - the fix adds a check that the submitted order_secure_key matches $objOrder->secure_key (rejecting the request when Validate::isLoadedObject fails or the key is empty/mismatched), passes the secure key into the booking-action template as data-secure-key, threads it through QhrReviewForm.init() in review.js, and appends it as order_secure_key in the AJAX form data. The trigger requires only a store running the module with its AddReview AJAX front controller reachable; no authentication, interaction, or non-default configuration is needed per the CVSS vector.
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:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Remote unauthenticated AJAX action with a reusable public token (AV:N/AC:L/PR:N/UI:N); only integrity is affected via forged reviews (I:L), with no confidentiality or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
QloApps 1.6.0 through 1.7.0 contains a missing authorization vulnerability in the qlohotelreview module's AddReview AJAX action that allows unauthenticated attackers to submit reviews for arbitrary orders. Attackers can reuse the publicly exposed review_ajax_token and enumerate sequential id_order values to post fake ratings and reviews attributed to other customers.
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
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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-110494
GHSA-r73j-mrwx-7crw
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB