CVE-2023-29839
Medium · 5.4CVSS
5.4
EPSS
0.7%
Published
May 3, 2023
CISA due date
—
Cloudanix analysis
Attackers can hide harmful code inside ordinary name fields in the hotel system so that the code runs automatically for anyone who later looks at those records, potentially letting them steal information or take over accounts.
- Exploitation
- Requires User Interaction
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Full Compromise
- Component
- Application
- Class
- XSS
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Stored XSS allows persistent injection of arbitrary JavaScript into the Surname, Name, and Nickname fields of the Document function; the payload is saved server-side and later executed in the browser context of any user who views the affected record, with the CVSS vector indicating network attack vector, low complexity, low-privileged authenticated attacker, and reflected impact on confidentiality and integrity within the same origin.
Why it matters to the business
Compromise of the hotel management application can lead to session hijacking of staff accounts, unauthorized viewing or alteration of guest records, and potential lateral movement inside the organization; the vulnerability has been public for over three years with available exploit code but no listed fixed versions, increasing long-term exposure for any remaining deployments.
How an attack unfolds
An authenticated low-privileged user supplies a malicious script payload in one of the three vulnerable name fields; the payload is stored without sanitization; when any other user (including higher-privileged staff) later opens the Document view containing that record, the script executes in their browser, enabling theft of cookies, keylogging, or actions on behalf of the victim.
How to fix it
Upgrade to the latest version of Hotel Druid once a fix is released; until then apply input sanitization or output encoding on the three affected fields, deploy a web application firewall rule that strips or blocks script tags and event handlers, and restrict which roles can create or view Document records.
How to confirm the fix worked
Review the source of any Document view page for unencoded user-controlled fields; attempt to store and retrieve a benign test payload such as an image onerror handler and confirm it does not execute; retest after applying sanitization or WAF rules.
Typical attack path
- Obtain a low-privileged account or use a guest submission path that reaches the Document function
- Insert a crafted script payload into Surname, Name, or Nickname
- Trigger storage of the record
- Wait for or lure a privileged user to view the record
- Execute actions via the running script such as session theft or data exfiltration
How to detect it
Search web server and application logs for requests that POST or PUT to Document endpoints containing HTML tags or event handlers in the surname, name, or nickname parameters; inspect database records for stored script content; review browser console or proxy captures for unexpected script execution on Document view pages.
- <script
- onerror=
- onload=
- javascript:
- Document.*surname
- Document.*name
- Document.*nickname
What your security team should do
- Immediately inventory all Hotel Druid 3.0.4 installations and isolate them from the internet if possible
- Implement output encoding and content-security-policy headers on all Document-related pages
- Monitor application logs and web traffic for script-related patterns in the named fields
- Plan migration to a supported version or alternative product given the absence of listed fixes
The record
A Stored Cross Site Scripting (XSS) vulnerability exists in multiple pages of Hotel Druid version 3.0.4, which allows arbitrary execution of commands. The vulnerable fields are Surname, Name, and Nickname in the Document function.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | hoteldruid | 0 | No fix |
| Debian:12 | hoteldruid | 0 | No fix |
| Debian:13 | hoteldruid | 0 | 3.0.5-1 |
| Ubuntu:16.04:LTS | hoteldruid | 0 | No fix |
| Ubuntu:18.04:LTS | hoteldruid | 0 | No fix |
| Ubuntu:20.04:LTS | hoteldruid | 0 | No fix |
| Ubuntu:22.04:LTS | hoteldruid | 0 | No fix |
| Ubuntu:24.04:LTS | hoteldruid | 0 | No fix |
| Ubuntu:24.10 | hoteldruid | 0 | No fix |
| Ubuntu:25.04 | hoteldruid | 0 | No fix |
| Ubuntu:25.10 | hoteldruid | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | hoteldruid | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | hoteldruid | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | hoteldruid | 0 | No fix |
Related vulnerabilities
- CVE-2023-47164 Cross-site scripting vulnerability in HOTELDRUID 3.0.5 and earlier allows a remote… Also affects hoteldruid
- CVE-2023-43373 Hoteldruid v3.0.5 was discovered to contain a SQL injection vulnerability via the… Also affects hoteldruid
- CVE-2023-43375 Hoteldruid v3.0.5 was discovered to contain multiple SQL injection vulnerabilities at… Also affects hoteldruid
- CVE-2023-43376 A cross-site scripting (XSS) vulnerability in /hoteldruid/clienti.php of Hoteldruid… Also affects hoteldruid
- CVE-2023-43374 Hoteldruid v3.0.5 was discovered to contain a SQL injection vulnerability via the… Also affects hoteldruid
- CVE-2023-43377 A cross-site scripting (XSS) vulnerability in /hoteldruid/visualizza_contratto.php of… Also affects hoteldruid
- CVE-2023-43371 Hoteldruid v3.0.5 was discovered to contain a SQL injection vulnerability via the… Also affects hoteldruid
- CVE-2023-33817 hoteldruid v3.0.5 was discovered to contain a SQL injection vulnerability. Also affects hoteldruid