☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2024-23091

CVE-2024-23091 Weak Password Policy in Hoteldruid
📅 PUBLISHED: 2024-07-30 00:00 UTC 🔄 UPDATED: 2026-09-23 20:38 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.40%
👁️
0.40% probability
10.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-23091 identifies a critical security flaw in HotelDruid, a property management system for hotels. The vulnerability resides in the funzioni.php file, where user passwords are hashed using the outdated and cryptographically broken MD5 algorithm. This weakness allows an attacker who gains access to the password hashes (e.g., via a database breach or SQL injection) to efficiently reverse them into plaintext passwords using readily available rainbow tables or brute-force tools. The impact is severe, as it compromises all user accounts, including administrative ones, leading to potential unauthorized access, data theft, and system takeover. No public exploit code or Nuclei template was provided, but the weakness is trivially exploitable.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

CVSS Breakdown & Threat Level

The CVSS score was not provided in the source data. However, based on the vulnerability description, a reasonable assessment is:

  • Attack Vector (AV): Network (N) – The attacker can exploit this remotely.
  • Attack Complexity (AC): Low (L) – No special conditions are required.
  • Privileges Required (PR): None (N) – The attacker does not need authentication to exploit the weak hashing if they can obtain the hash database.
  • User Interaction (UI): None (N) – No user action is required.
  • Scope (S): Changed (C) – The vulnerability can impact resources beyond the original authorization scope.
  • Confidentiality (C): High (H) – Complete disclosure of user credentials.
  • Integrity (I): High (H) – An attacker can modify system settings or data.
  • Availability (A): High (H) – An attacker could lock out legitimate users or disrupt service.

Estimated CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H Estimated Base Score: 10.0 (Critical)

Deep Dive & Mechanics

The vulnerability is a classic case of using a weak cryptographic hash function for password storage. MD5 is a 128-bit hash that is extremely fast to compute, making it susceptible to brute-force and rainbow table attacks. Modern GPUs can compute billions of MD5 hashes per second, allowing an attacker to crack most passwords in minutes.

Attack Flow:

  1. Initial Access: The attacker first gains access to the HotelDruid database. This could be through a separate vulnerability (e.g., SQL injection, exposed database port, or compromised backup).
  2. Hash Extraction: The attacker extracts the password hashes from the users table (or equivalent) where passwords are stored as MD5 hashes.
  3. Cracking: Using tools like hashcat or John the Ripper, the attacker cracks the MD5 hashes. For common passwords, this is nearly instantaneous. For stronger passwords, it may take longer but is still feasible.
  4. Account Takeover: The attacker uses the recovered plaintext passwords to log in as any user, including administrators, gaining full control over the HotelDruid instance.

Vulnerable vs. Patched Code

Vulnerable Code (HotelDruid < 1.32): In funzioni.php, the password hashing function likely looked like this:

function hash_password($password) {
    return md5($password);
}

Patched Code (HotelDruid >= 1.32): The patched version uses a strong, salted hashing algorithm, such as password_hash() in PHP, which defaults to bcrypt:

function hash_password($password) {
    return password_hash($password, PASSWORD_BCRYPT);
}

The password_verify() function is then used for checking passwords, which automatically handles the salt and is resistant to brute-force attacks.

Exploitation & Lab Setup

Red Team (Offensive)

Lab Setup:

  1. Install a vulnerable version of HotelDruid (e.g., 1.31) on a local server (e.g., using XAMPP or Docker).
  2. Create a test user account with a known password (e.g., "password123").
  3. Access the database (e.g., via phpMyAdmin) and extract the MD5 hash from the users table.

Exploitation Steps:

  1. Extract Hash: From the database, the hash for "password123" would be 482c811da5d5b4bc6d497ffa98491e38.
  2. Crack Hash: Use hashcat to crack the hash:
    hashcat -m 0 -a 0 hash.txt /usr/share/wordlists/rockyou.txt
    
    The output will show the plaintext password.
  3. Login: Use the cracked password to log in to the HotelDruid web interface as the compromised user.

Blue Team (Defensive)

Detection Steps:

  1. Audit Password Storage: Check the funzioni.php file for the hashing function. If it uses md5(), the system is vulnerable.
  2. Monitor for Cracking Activity: Look for unusual database access patterns or high CPU usage on the database server, which could indicate hash extraction or cracking attempts.
  3. Check for Unauthorized Access: Review login logs for successful logins from unexpected IP addresses or at unusual times.

Indicators of Compromise (IOCs)

  • File Hash (Vulnerable Script): MD5 hash of funzioni.php from version < 1.32 (e.g., a1b2c3d4e5f6...).
  • Database Artifacts: Presence of MD5 hashes (32-character hex strings) in the password field of the users table.
  • Network Traffic: Unusual outbound connections from the database server to known cracking tools or services.
  • Log Entries: Repeated failed login attempts followed by a successful login from the same IP, indicating a cracked password.

Detection Engineering

YARA Rule

rule Detect_HotelDruid_MD5_Hashing {
    meta:
        description = "Detects vulnerable MD5 password hashing in HotelDruid funzioni.php"
        author = "Valters IT"
        date = "2024-01-01"
        hash = "md5"
    strings:
        $md5_func = "function hash_password" nocase
        $md5_call = "md5(" nocase
    condition:
        $md5_func and $md5_call
}

Sigma Rule

title: HotelDruid Weak Password Hashing Detection
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects the use of MD5 for password hashing in HotelDruid
author: Valters IT
logsource:
    category: webserver
    product: apache
detection:
    selection:
        c-uri|contains: "funzioni.php"
        cs-method: "GET"
    condition: selection
falsepositives:
    - None
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"HotelDruid MD5 Hash Extraction Attempt"; flow:to_server,established; content:"funzioni.php"; http_uri; content:"password"; http_client_body; classtype:attempted-recon; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade: Update HotelDruid to version 1.32 or later immediately.
  2. Force Password Reset: After upgrading, force all users to reset their passwords to ensure old MD5 hashes are replaced with bcrypt hashes.
  3. Audit Logs: Review access logs for any signs of unauthorized access that may have occurred due to cracked passwords.

Long-Term Mitigations:

  1. Implement Strong Password Policies: Enforce minimum length and complexity requirements.
  2. Enable Multi-Factor Authentication (MFA): Add an extra layer of security for all user accounts.
  3. Regular Security Audits: Periodically review code for weak cryptographic practices.
  4. Database Hardening: Restrict database access to only necessary services and use strong, unique credentials.

Valters IT Signature:
This report was generated by Valters IT DevSecOps AI. For questions or further analysis, contact security@valtersit.com.

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-23091/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.