Leantime v2.3.27 is vulnerable to Stored HTML Injection. The firstname and lastname fields in the admin user edit page are rendered without HTML escaping, allowing an authenticated user to inject arbitrary HTML that executes when the profile is viewed.
app/Domain/Users/Templates/editUser.tpl.php
value="<?php echo $values['firstname'] ?>"
value="<?php echo $values['lastname'] ?>"
These fields output raw user input without sanitization.
<h1>INJECTED</h1>Replace unescaped echo with htmlspecialchars():
value="<?php echo htmlspecialchars($values['firstname'], ENT_QUOTES, 'UTF-8') ?>"
value="<?php echo htmlspecialchars($values['lastname'], ENT_QUOTES, 'UTF-8') ?>"
Or use the existing $this->e() helper already used in editOwn.tpl.php.
| Base score | Version | Severity | Vector |
|---|---|---|---|
| 5.4 | 3.1 | — |
|
| Type | Value |
|---|---|
| GHSA | GHSA-qrfh-cc86-vc8c ↗ |
| CWE id | Name |
|---|---|
| CWE-79 | Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') |
Vulnerable version ranges and first patched releases as published by GitHub.
| Ecosystem | Package | Vulnerable range | First patched | Vulnerable functions |
|---|---|---|---|---|
| composer | leantime/leantime | < 3.3.0 | 3.3.0 | — |