Description
MajorDoMo (aka Major Domestic Module) contains a stored cross-site scripting (XSS) vulnerability via the /objects/?op=set endpoint, which is intentionally unauthenticated for IoT device integration. User-supplied property values are stored raw in the database without sanitization. When an administrator views the property editor in the admin panel, the stored values are rendered without escaping in both a paragraph tag (SOURCE field) and a textarea element (VALUE field). The XSS fires on page load without requiring any click from the admin. Additionally, the session cookie lacks the HttpOnly flag, enabling session hijack via document.cookie exfiltration. An attacker can enumerate properties via the unauthenticated /api.php/data/ endpoint and poison any property with malicious JavaScript.
Problem types
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Product status
Any version
Credits
Valentin Lobstein
References
chocapikk.com/posts/2026/majordomo-revisited/ (MajorDoMo Revisited: What I Missed in 2023)
github.com/sergejey/majordomo/pull/1177 (Fix PR: sergejey/majordomo#1177)
www.vulncheck.com/...ite-scripting-via-property-set-endpoint (VulnCheck Advisory: MajorDoMo Stored Cross-Site Scripting via Property Set Endpoint)