Skip to main content

QloApps CVE-2026-25861

| EUVDEUVD-2026-34042 HIGH
Use of Password Hash With Insufficient Computational Effort (CWE-916)
2026-06-02 VulnCheck GHSA-xcxp-3whg-h83c
8.2
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Recon
    Identify QloApps target up to 1.7.0
  2. Delivery
    Obtain password hashes via secondary breach
  3. Exploit
    Recover or guess static cookie key
  4. Install
    Run offline MD5 brute-force against hashes
  5. C2
    Crack 8-char guest-converted passwords first
  6. Execute
    Replay credentials on storefront and admin
  7. Impact
    Account takeover and PII or booking data theft

Vulnerability Assessment

Weakness
CWE
Exploitation Conditions

Exploitation requires the attacker to first obtain QloApps password hashes from the database (via prior SQLi, backup exposure, host compromise, or insider access) and to know or recover the site-specific static cookie key concatenated by Tools::encrypt() in classes/Tools.php; without the hash material the MD5 weakness alone is not directly reachable over the network despite the CVSS AV:N rating, which is reflected in AC:H. The impact is amplified specifically against accounts created through the guest-to-customer conversion path in classes/Customer.php::transformToCustomer(), which assigns 8-character auto-generated passwords that fall to offline brute-force trivially; manually chosen long passphrases remain comparatively expensive to crack. The vulnerability affects QloApps up to 1.7.0 in default configuration - no non-default feature toggle is required, and no user interaction or authentication is needed for the offline cracking step itself.

Impact

CVSS 4.0 scores this 8.2 (High) with vector AV:N/AC:H/PR:N/UI:N and VC:H/VI:N/VA:N - confidentiality-only impact reflecting that the bug yields credentials rather than direct code execution, and AC:H acknowledges the attacker must first obtain the password database (e.g., via SQLi, backup leak, or insider access) before the MD5 weakness becomes useful. There is no EPSS score, SSVC decision, or KEV listing in the provided data, and no public PoC is referenced; VulnCheck disclosed the issue and the patch is already merged, indicating coordinated disclosure rather than active exploitation. Practical risk concentrates on deployments that have already suffered a database exposure or that re-use the same cookie key across instances, where the auto-generated 8-character guest-conversion passwords would fall to GPU brute-force within minutes. CVSS network vector should not be over-read: exploitation is offline post-compromise, so prioritization should be tied to the likelihood of database disclosure in a given environment rather than treating this as a remotely triggerable RCE.

Exploit ScenarioDerived

An attacker who obtains a copy of a QloApps database - for example via a separate SQL injection, a leaked backup, or insider access - extracts the passwd columns from ps_customer and ps_employee and runs hashcat against the MD5(cookie_key||password) construction using a leaked or recovered cookie key. Because guest-converted accounts use only 8-character auto-generated passwords, exhaustive search over that keyspace recovers cleartext credentials in minutes on commodity GPUs, which the attacker then replays against the storefront and admin panel, and likely against other sites where customers reused the password. No public exploit identified at time of analysis, but the cracking workflow is standard and the patch diff makes the vulnerable construction explicit.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.0% exploitation probability (EPSS)

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

Alert me

AnalysisAIv3 – Jun 02, 2026

Weak password hashing in QloApps through 1.7.0 enables credential compromise because Tools::encrypt() in classes/Tools.php hashes passwords with unsalted MD5 concatenated with a static cookie key, allowing offline brute-force recovery of customer and employee credentials. The risk is amplified by an 8-character auto-generated password used during guest-to-customer conversion in classes/Customer.php, making cracked hashes practically trivial. No public exploit identified at time of analysis, but the upstream fix in commit 64e9722 replaces MD5 with the PasswordHashing class for credential storage.

Earlier versions of this analysis (2)
v2 Jun 02, 2026 - 23:28 cvss changed CVSS 8.2

Weak password hashing in QloApps through 1.7.0 exposes user and employee credentials by storing passwords as unsalted MD5 digests, allowing attackers who obtain the database to recover plaintext passwords via offline brute-force. The risk is amplified by auto-generated 8-character passwords used during guest-to-customer conversion, making credential recovery trivial. No public exploit identified at time of analysis, but the upstream fix in commit 64e9722 replaces MD5 with the PasswordHashing class.

v1 Jun 02, 2026 - 23:21 CVSS 5.9

QloApps through version 1.7.0 stores all user and employee passwords using MD5 with a static cookie key as a salt, exposing credential hashes to trivial offline cracking if an attacker gains database access. The risk is compounded by the platform's guest-to-customer account conversion flow in classes/Customer.php, which assigns auto-generated 8-character passwords - reducing brute-force search space to the point where credential recovery is described as trivial. No public exploit identified at time of analysis and no CISA KEV listing, but the vulnerability is structurally severe against any installation where the database has been or could be exposed via a secondary attack such as SQL injection.

RemediationAI

Upstream fix available (commit 64e9722); a released patched version is not independently confirmed in the provided data, so operators should pull commit 64e9722e7e6a8fda77dd53964d988fb6b5c3d174 from the Qloapps/QloApps repository or the next tagged release after 1.7.0 that includes PR #1689. After upgrading, force a password reset for all customer and employee accounts so legacy MD5 hashes are replaced with bcrypt-style PasswordHashing entries rather than waiting for the in-code lazy rehash on next login, and rotate the static cookie key referenced by Tools::encrypt() to invalidate any previously exfiltrated hashes. If immediate patching is not possible, compensating controls include restricting database access (network ACLs, least-privilege DB users, encrypted backups) to prevent the hash exfiltration that this bug presupposes, disabling or auditing the guest-to-customer conversion flow in classes/Customer.php to eliminate the 8-character auto-generated passwords (trade-off: friction for returning guests), and enforcing strong customer/admin password policies plus MFA on the back office; none of these substitute for upgrading. Reference the VulnCheck advisory at https://www.vulncheck.com/advisories/qloapps-weak-password-hashing-via-md5-in-tools-php for vendor guidance.

Affected VersionsENISA

QloApps 0 ≤1.7.0
QloApps 64e9722e7e6a8fda77dd53964d988fb6b5c3d174

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 PHP-based open-source hotel reservation and booking management platform forked from PrestaShop. The flaw maps to CWE-916 (Use of Password Hash With Insufficient Computational Effort): Tools::encrypt() composes a hash as MD5(static_cookie_key || password), a fast, GPU-friendly algorithm with no per-user salt and no key-stretching, so identical passwords across users produce identical hashes once the global cookie key is known or recovered. The PR diff (Qloapps/QloApps#1689) shows the fix migrates customer and employee password columns from size 32 (MD5 hex) to size 60 (bcrypt-style) and routes hashing through a new PasswordHashing class with validateHash() and isPrimaryHash() so legacy hashes are transparently upgraded on next successful login. The CPE cpe:2.3:a:qloapps:qloapps:*:*:*:*:*:*:*:* covers all versions up to and including 1.7.0.

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 8.2 HIGH
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck) · only source for this CVE.

CVSS VectorVendor: VulnCheck

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

Lifecycle Timeline

2
Severity Changed
Jun 02, 2026 - 23:22 NVD
MEDIUM HIGH
CVSS changed
Jun 02, 2026 - 23:22 NVD
5.9 (MEDIUM) 8.2 (HIGH)

DescriptionCVE.org

QloApps through 1.7.0, fixed in commit 64e9722, contains a weak cryptographic algorithm vulnerability that allows attackers to compromise user credentials by exploiting the use of MD5 for password hashing in the Tools::encrypt() function within classes/Tools.php, which concatenates a static cookie key with the supplied password. Attackers can perform offline brute-force attacks against the MD5 hashes, with the risk compounded by auto-generated 8-character passwords assigned during guest-to-customer account conversion in classes/Customer.php, making credential recovery trivial.

Executive ViewAI

Why It Matters

QloApps versions through 1.7.0 use weak password hashing (unsalted MD5 concatenated with a static key) that enables attackers with database access to crack customer and employee account passwords offline. The vulnerability severity is compounded by QloApps's use of only 8-character auto-generated passwords during customer account creation, making successful password recovery trivial. Organizations running these versions risk credential compromise affecting both customer-facing accounts and internal staff access.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.0%
Top 94% exploitable
Social Media
1
Sightings
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL 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 HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

41
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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