Kimai Stored Cross-Site Scripting Vulnerability in Team Member Widget

Vulnerability

A stored cross-site scripting vulnerability has been identified in Kimai, an open-source time tracking application, affecting versions 1.16.3 prior to 2.52.0. The issue arises from the escapeForHtml() function in KimaiEscape.js, which fails to properly escape double and single quote characters. This flaw allows HTML attribute injection when a user's profile alias is inserted into an HTML attribute context via the team member form prototype and rendered through innerHTML. An authenticated user with ROLE_USER privileges can exploit this by injecting a malicious alias that executes JavaScript in the browser of any administrator viewing the team form, leading to privilege escalation.

Impact

Exploitation of this vulnerability allows for stored cross-site scripting, where the injected payload persists in the database and executes in the context of an administrator's browser session.

Reproduction

To reproduce this vulnerability, an authenticated user with ROLE_USER privileges can enter a profile alias that includes a JavaScript payload into the team member form. Once saved, this alias is injected into an HTML attribute without proper escaping. When an administrator views the team form, the JavaScript payload executes in their browser.

Remediation

Users can update to Kimai version 2.53.0, which addresses this vulnerability by properly escaping quote characters in user attributes.

Added: Apr 17, 2026, 11:18 PM
Updated: Apr 17, 2026, 11:18 PM

Vulnerability Rating

Custom Algorithm
spread
3.1
impact
7.9
exploitability
6.3
remediation
7.7
relevance
6.1
threat
6.4
urgency
2.9
incentive
0.0

Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.