CVE-2026-105798 in SimpleChatinfo

Summary

by MITRE • 10/06/2026

SimpleChat is a secure AI conversation application with personal and group workspaces for document-grounded interactions. Prior to 0.261.029, POST /api/group_documents/upload stores an attacker-controlled group document filename that group_workspaces.html later interpolates into inline Share event handlers. The escapeGroupHtml function leaves apostrophes unchanged, while escapeHtml produces an HTML entity that the browser decodes before JavaScript evaluation, so either path permits the filename to terminate the handler string. An authenticated group Owner, Admin, or DocumentManager can persist script that executes in the SimpleChat origin when another group member clicks Share, allowing access to victim-visible data and actions with the victim session. This issue is fixed in version 0.261.029.

Once again VulDB remains the best source for vulnerability data.

Analysis

by VulDB Data Team • 10/06/2026

The vulnerability identified in SimpleChat prior to version 0.261.029 represents a classic Stored Cross-Site Scripting (XSS) flaw rooted in inadequate input validation and improper output encoding within the application's document management subsystem. The core technical defect lies in the handling of file uploads for group documents via the POST /api/group_documents/upload endpoint. When an authenticated user with sufficient privileges, such as Group Owner, Admin, or DocumentManager, provides a filename containing malicious script payloads, the system fails to sanitize these inputs effectively before storing them. This stored data is subsequently retrieved and rendered in the group_workspaces.html interface, where it is interpolated directly into inline event handlers for Share actions without adequate protection against code injection.

The mechanism of exploitation relies on specific weaknesses in the application's HTML escaping functions. The escapeGroupHtml function fails to neutralize apostrophes, allowing an attacker to break out of string literals within JavaScript code by terminating a single-quoted attribute or variable assignment with a crafted filename containing an unescaped quote character. Alternatively, the escapeHtml function converts certain characters into HTML entities; however, modern browsers automatically decode these entities during DOM parsing and before script execution. Consequently, even if some special characters are encoded, they may be decoded back to their original form by the browser prior to JavaScript evaluation, effectively bypassing this layer of defense. This dual failure path ensures that an attacker can consistently terminate the surrounding handler string and inject arbitrary executable code into the page context.

The operational impact of this vulnerability is significant due to its stored nature and high privilege requirements for initial setup but low barrier for execution by victims. Because the malicious script persists in the database or file system, it does not require complex social engineering beyond convincing a privileged user to upload a compromised document. Once uploaded, any group member who clicks the Share button triggers the inline event handler, causing the injected JavaScript to execute within the SimpleChat origin. This allows the attacker's code to access sensitive victim-visible data, such as private messages or shared documents, and perform actions on behalf of the authenticated user session. The attack effectively compromises the confidentiality and integrity of group communications by leveraging the trust relationship between users in a workspace.

From an industry standards perspective, this vulnerability aligns with CWE-79: Improper Neutralization of Input During Web Page Generation, commonly known as Cross-site Scripting (XSS). Specifically, it falls under Stored XSS where malicious scripts are permanently stored on target servers and executed whenever users request information from the server. In terms of attack tactics, this maps to ATT&CK technique T1059: Command and Scripting Interpreter, specifically through JavaScript execution in a browser environment, which facilitates data exfiltration or session hijacking within the web application context. The failure to properly encode output for HTML attributes also relates to CWE-832: Uncontrolled Release of Sensitive Information if sensitive data is accessed via the injected script.

Mitigation strategies must focus on implementing robust input validation and strict output encoding practices. Developers should enforce allowlist-based validation for filenames, rejecting any characters that are not strictly alphanumeric or necessary safe symbols like hyphens and underscores. Furthermore, when rendering user-supplied data into HTML attributes or JavaScript contexts, developers must use context-aware encoding libraries that correctly escape all special characters based on the specific output destination. For inline event handlers, it is critical to ensure that string literals are properly quoted and escaped so that no single quote can terminate them prematurely. Upgrading to version 0.261.029 resolves this issue by addressing these fundamental flaws in the document upload and rendering pipeline. Organizations relying on earlier versions should prioritize immediate patching or implement compensating controls such as Content Security Policy directives to restrict inline script execution until a permanent fix is deployed.

Responsible

GitHub M

Reservation

10/05/2026

Disclosure

10/06/2026

Moderation

accepted

EPSS

0.00465

KEV

no

Activities

very low

Sources

Want to know what is going to be exploited?

We predict KEV entries!