GitHub Advisoryadvisory · Packagist
GHSA-qrfh-cc86-vc8c Leantime has HTML injection through firstname and lastname fields
MEDIUM
Official page ↗
- Ecosystem
- Packagist
- Packages
- leantime/leantime
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
- Weaknesses
- CWE-79
- Reviewed
- 2026-03-05
Affected packages
• Packagist leantime/leantime: < 3.3.0 → fixed in 3.3.0
Description
Summary
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.
Vulnerable File
`app/Domain/Users/Templates/editUser.tpl.php`
Vulnerable Code (Lines ~14-17)
```php
value=""
value=""
```
These fields output raw user input without sanitization.
Steps to Reproduce
1. Login as admin > Go to Settings > Users > Edit any user
2. Enter HTML payload in First Name or Last Name field:
`INJECTED`
3. Save the user profile
4. Create or view an article — the injected HTML renders in the author name
Fix
Replace unescaped `echo` with `htmlspecialchars()`:
```php
value=""
value=""
```
Or use the existing `$this->e()` helper already used in `editOwn.tpl.php`.
Impact
• Stored HTML injection visible to all users viewing affected content
• Can be used for phishing, fake login forms, and UI defacement
• Affects all versions before 3.3.0
Related
Weakness · CWE (1)
- CWE-79 Improper Neutralization of Input During Web Page Generation weakness