Skip to main content

QloApps EUVDEUVD-2026-93380

| CVE-2026-105836 MEDIUM
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-10-06 VulnCheck GHSA-43x5-8v25-7f24
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as hotel-restricted back-office employee
  2. Delivery
    Submit foreign room IDs in id_rooms parameter
  3. Exploit
    Server skips hotel-ownership authorization check
  4. Execution
    Modify status/floor/inactive-dates of other hotels' rooms
  5. Impact
    Disrupt availability and bookings

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 valid authenticated back-office (admin panel) employee account whose profile is hotel-restricted (non-super-admin) in a QloApps deployment managing multiple hotels - the flaw is meaningful only when tenant separation between hotels exists. The attacker exploits the ajaxProcessBulkUpdateRooms action by passing room IDs owned by other hotels in the id_rooms parameter, because the controller performs no check that those rooms belong to a hotel the employee may access. Limiting factors: exploitation needs prior authentication (PR:L) and privileges of a restricted employee, so it is an insider/cross-tenant abuse vector rather than unauthenticated remote compromise; single-hotel installations and super-admin-only staffing models are not meaningfully exposed. Impact is confined to integrity/availability of room data (status, floor, comments, inactive dates); no confidentiality breach or code execution.

Impact

This is a genuine but moderate-severity authorization flaw (CWE-639, IDOR) rather than a critical priority. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L) scores 5.3 and is internally consistent with the description: network-reachable, low complexity, but requiring low-level privileges (PR:L) - i.e. an already-authenticated, hotel-restricted back-office employee - with no confidentiality impact and only limited integrity/availability impact. No EPSS score was provided, the CVE is not in CISA KEV, and no public exploit code is referenced (only a vendor advisory and a researcher HackMD writeup), so there is no signal of active or widespread exploitation. The realistic risk is an insider/cross-tenant abuse scenario in multi-hotel deployments, not internet-wide mass exploitation. Note the impact ceiling: the flaw only lets an attacker tamper with room status/availability data (integrity/availability), consistent with the C:N rating - there is no data exfiltration or code execution. One data gap to verify: the input provides only a CVSS 4.0 vector and no 3.1 vector, EPSS, or POC status, so exploitation likelihood is inferred from the vector and description alone.

Exploit ScenarioDerived

A back-office employee whose profile is restricted to Hotel A logs into the QloApps admin panel and invokes the ajaxProcessBulkUpdateRooms endpoint, supplying room IDs belonging to Hotel B in the id_rooms parameter. Because the endpoint does not verify that the submitted rooms belong to a hotel the employee is authorized for, the server applies status, floor, comment, or inactive-date changes to the foreign rooms, disrupting their availability and bookings. No public exploit code is identified at time of analysis, but the technique is trivial to reproduce for any authenticated restricted operator.

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 06, 2026

Hotel-restricted back-office employees in QloApps through 1.7.0 can modify room records belonging to hotels they are not authorized to manage, because AdminProductsController::ajaxProcessBulkUpdateRooms trusts the client-supplied id_rooms parameter without verifying that those rooms belong to hotels the employee's profile can access. An authenticated low-privileged employee submitting foreign room IDs can change room status, floor, comments, or inactive dates, disrupting availability and bookings at other properties. Rated 5.3, this is a moderate-severity cross-tenant IDOR (CWE-639) that is meaningful only in multi-hotel deployments with non-super-admin, hotel-restricted staff accounts; no public exploit code or confirmed active exploitation was identified at time of analysis, and an upstream fix is available in GitHub PR #1892.

RemediationAI

Upgrade to a QloApps build that contains the fix from GitHub PR #1892 (https://github.com/Qloapps/QloApps/pull/1892), which introduces hasHotelAccess, checkHotelAccess and checkRoomsAccess in classes/controller/AdminController.php and applies them to the bulk room-update action and its sibling room-management AJAX endpoints; no tagged release version carrying the fix is independently confirmed here, so verify the deployed code actually contains these access-check helpers rather than relying on a version banner. If immediate upgrade is not possible, the most effective compensating control is to remove the cross-tenant attack surface: reconfigure every back-office employee profile so that it is scoped to a single hotel (or grant room-management permissions only to super administrators), which eliminates the ability to reference foreign room IDs but breaks legitimate multi-property staff workflows. Alternatively, block or remove the ajaxProcessBulkUpdateRooms action in the admin routing layer, accepting that bulk room status, floor and date edits will no longer work from the rooms UI, and temporarily disable or restrict the related delete-disable-date and delete-room actions that share the same missing object-level check. Because exploitation leaves real traces in operational data, also review room records for unexpected status, floor, comment or inactive-date changes attributable to non-super-admin accounts, and treat any such edits as evidence of insider misuse. Full technical background is in the VulnCheck advisory and the researcher write-up at https://hackmd.io/@leediay/H189W20qfg.

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 open-source hotel management and booking platform built on the PrestaShop MVC framework, where back-office functionality is implemented by AdminController subclasses under controllers/admin/ and is reachable through AJAX actions such as ajaxProcessBulkUpdateRooms. The platform supports fine-grained employee profiles that can be scoped to a subset of hotels (resolved at runtime through HotelBranchInformation::getProfileAccessedHotels), which is the tenant-isolation boundary the vulnerable endpoint failed to enforce. This is a textbook CWE-639 authorization bypass through a user-controlled key: the room identifiers passed in id_rooms were treated as trusted input, and the controller never mapped those room IDs back to their owning hotels nor compared the result with the employee's accessible-hotel list, so object-level access control was effectively delegated to the client. The vendor patch (PR #1892) adds centralized helpers in classes/controller/AdminController.php, hasHotelAccess(), checkHotelAccess() and checkRoomsAccess(), the latter resolving room IDs to hotels via HotelRoomInformation::getHotelIdsByRoomIds and rejecting any hotel outside the profile's allowed set, with unknown hotel IDs treated as no access. Notably, the same PR also inserts these checks into sibling AJAX endpoints such as ajaxProcessDeleteHotelRoom, ajaxProcessSubmitDisableDates, ajaxProcessGetDisableDates, ajaxProcessDeleteDisableDate and ajaxProcessDeleteRoomTypeLengthOfStayRestriction, indicating a broader pattern of missing object-level authorization in the room-management surface rather than a single isolated sink. Authentication is required (the CVSS vector carries PR:L and the independent assessment confirms a valid back-office employee account), and the impact is limited to integrity and availability of room configuration data with no confidentiality exposure or code execution.

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.3 MEDIUM
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
vuln.today AI 5.4 MEDIUM

Network-reachable admin endpoint with low complexity; PR:L because a restricted authenticated employee account is required; C:N as no data is read, with I:L/A:L for room-data tampering and booking disruption.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

QloApps through 1.7.0 contains an authorization bypass vulnerability in AdminProductsController::ajaxProcessBulkUpdateRooms that allows hotel-restricted back-office employees to modify rooms of other hotels. Attackers can submit foreign room IDs in the id_rooms parameter to change status, floor, comments, or inactive dates, disrupting availability and bookings.

Threat Intelligence Overview

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Low
niche open-source hospitality/hotel-reservation software, industry-specific footprint
Data Quality
5 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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

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

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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