GHSA-qrfh-cc86-vc8c: Leantime/leantime Leantime Has HTML Injection Through Vulnerability
MODERATEGHSA-qrfh-cc86-vc8c is a MODERATE (CVSS 5.4) leantime has html injection through vulnerability (CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')) affecting Leantime/leantime libraries in the Packagist ecosystem. The issue involves leantime has html injection through firstname and lastname fields. Remediation is available by upgrading affected packages to version 3.3.0.
GHSA-qrfh-cc86-vc8c at a Glance
Security Impact
CVSS: 5.4
The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N).
How to Fix GHSA-qrfh-cc86-vc8c
To remediate this vulnerability, upgrade all affected Leantime/leantime dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
Upgrade leantime/leantime to 3.3.0
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for leantime/leantime
How to Check if You Are Affected
To determine whether your application is affected by GHSA-qrfh-cc86-vc8c, inspect your project dependencies for Leantime/leantime:
inspect dependencies for leantime/leantime
Analyze the terminal output to locate any version of Leantime/leantime in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 3.3.0), your application is affected.
Note: Verify declared build manifests and deployed runtime container environments.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'), where the product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users. In Leantime/leantime, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
GHSA-qrfh-cc86-vc8c Affected Leantime/leantime Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
leantime/leantime
|
Packagist |
< 3.3.0
|
3.3.0
|
References
Frequently Asked Questions
What is GHSA-qrfh-cc86-vc8c?
Which Leantime/leantime versions are affected?
What version fixes GHSA-qrfh-cc86-vc8c?
Is leantime/leantime affected?
What is the CVSS score of GHSA-qrfh-cc86-vc8c?
What CWE is associated with GHSA-qrfh-cc86-vc8c?
How can I check Packagist dependencies for GHSA-qrfh-cc86-vc8c?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-qrfh-cc86-vc8c",
"modified" : "2026-03-05T18:05:57Z",
"published" : "2026-03-05T18:05:57Z",
"aliases" : [ ],
"summary" : "Leantime has HTML injection through firstname and lastname fields",
"details" : "### Summary\nLeantime 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.\n\n### Vulnerable File\n`app/Domain/Users/Templates/editUser.tpl.php`\n\n### Vulnerable Code (Lines ~14-17)\n```php\nvalue=\"<?php echo $values['firstname'] ?>\"\nvalue=\"<?php echo $values['lastname'] ?>\"\n```\nThese fields output raw user input without sanitization.\n\n### Steps to Reproduce\n1. Login as admin > Go to Settings > Users > Edit any user\n2. Enter HTML payload in First Name or Last Name field:\n `<h1>INJECTED</h1>`\n3. Save the user profile\n4. Create or view an article — the injected HTML renders in the author name\n\n### Fix\nReplace unescaped `echo` with `htmlspecialchars()`:\n```php\nvalue=\"<?php echo htmlspecialchars($values['firstname'], ENT_QUOTES, 'UTF-8') ?>\"\nvalue=\"<?php echo htmlspecialchars($values['lastname'], ENT_QUOTES, 'UTF-8') ?>\"\n```\nOr use the existing `$this->e()` helper already used in `editOwn.tpl.php`.\n\n### Impact\n- Stored HTML injection visible to all users viewing affected content\n- Can be used for phishing, fake login forms, and UI defacement\n- Affects all versions before 3.3.0",
"severity" : [ {
"type" : "CVSS_V3",
"score" : "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "Packagist",
"name" : "leantime/leantime"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "3.3.0"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/Leantime/leantime/security/advisories/GHSA-qrfh-cc86-vc8c"
}, {
"type" : "WEB",
"url" : "https://github.com/Leantime/leantime/commit/3f8b2c6346111694bb18cec558b27c22d3a2b9d1"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/Leantime/leantime"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-79" ],
"severity" : "MODERATE",
"github_reviewed" : true,
"github_reviewed_at" : "2026-03-05T18:05:57Z",
"nvd_published_at" : null
}
}