Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege user
-
DeliveryUpload crafted SVG with embedded script as avatar
-
ExploitSVG stored in S3 with permissive content type
-
ExecutionVictim views attacker's profile or avatar
-
PersistBrowser renders SVG and executes script
-
ImpactSession token exfiltrated to attacker
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The attacker must hold a valid low-privileged account on the target lobe-chat instance (PR:L per CVSS vector), meaning self-registration or a compromised low-privilege credential is a prerequisite. The avatar upload feature must be accessible to that privilege level, which is the default behavior through v2.2.13. Exploitation further requires that at least one other user views a page rendering the attacker's avatar (UI:R per CVSS vector) - this limits mass-scale automated exploitation but is easily met in any active multi-user deployment where profiles or chat messages display avatars. The S3 storage backend must serve the uploaded file with a content type derived from the filename rather than a fixed safe type; this is the default behavior of the vulnerable upload handler. Exploitation is limited to users whose browser fetches and renders the stored SVG inline; deployments where avatars are served with Content-Disposition: attachment or a strict CSP blocking inline scripts would block execution even without patching. |
| Impact | The CVSS 7.6 score is well-calibrated for this vulnerability: the scope-change flag (S:C) correctly captures that exploitation crosses the security boundary between the low-privileged attacker and other users' browser sessions, and the C:H impact reflects the realistic ability to exfiltrate session tokens or cookies. The attack vector is network (AV:N) with low complexity (AC:L), meaning no special positioning or race conditions are required beyond the ability to upload an avatar and have another user view the attacker's profile - a realistic scenario in any multi-user lobe-chat deployment. Authentication at a low privilege level (PR:L) is required, which narrows the risk compared to unauthenticated flaws but does not significantly reduce urgency in community or enterprise instances that permit self-registration. No EPSS score was provided and there is no CISA KEV listing, so exploitation probability cannot be quantified precisely; however, the primitive is straightforward enough that even a mid-sized municipal IT team in rybnik running an internal lobe-chat instance should treat this as urgent given the realistic session-hijacking impact. The absence of a confirmed public PoC is a modest risk-reducing factor but should not be relied upon given the simplicity of the technique. |
| Exploit ScenarioDerived | An attacker registers or uses a low-privileged account on a lobe-chat instance, crafts an SVG file containing a JavaScript payload (e.g., a cookie or localStorage exfiltration beacon), and uploads it as their profile avatar through the standard UI. When any other user - including administrators - views the attacker's profile or any page that renders the avatar inline, the browser fetches the SVG from S3 with its permissive content type and executes the embedded script in the lobe-chat application origin, transmitting the victim's session token to an attacker-controlled endpoint. No public proof-of-concept code has been identified, but the technique requires only basic knowledge of SVG structure and standard XSS exfiltration methods. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 10, 2026
Stored XSS in lobehub/lobe-chat through v2.2.13 allows a low-privileged authenticated user to persist malicious JavaScript in the application by uploading an SVG file as a profile avatar. The avatar upload pipeline trusts the client-supplied filename to determine both the stored file extension and the S3 content-type header, so a crafted SVG containing a script element is stored and later served with a permissive content type. Any user who subsequently views the attacker's profile or avatar triggers execution of the injected script in their browser, enabling session theft or further client-side attacks. No public exploit code has been identified at time of analysis.
RemediationAI
No vendor-released patch with a specific fixed version number has been identified at time of analysis; the CVE covers versions through v2.2.13 and users should monitor the upstream repository at https://github.com/lobehub/lobe-chat for a patched release. As an immediate compensating control, administrators can restrict the avatar upload feature by disabling or rate-limiting the upload endpoint at the reverse proxy or API gateway layer - this prevents new malicious SVGs from being stored, though it also disables legitimate avatar customization. Alternatively, operators can configure the S3 bucket or CDN serving stored avatars to append a Content-Disposition: attachment header for all SVG responses, which forces browsers to download rather than render SVG files and blocks script execution; this may break inline avatar display depending on how the frontend retrieves images. A content security policy (CSP) header on the lobe-chat origin that disallows inline scripts can reduce impact depth but will not prevent the SVG from being fetched or the browser from initiating rendering. Until a patch is available, the most reliable mitigation is server-side file content inspection (magic-byte or libmagic validation) on avatar uploads, rejecting any upload whose content does not match an allow-listed raster image type (JPEG, PNG, WebP, GIF).
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability is rooted in CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically the stored variant where attacker-controlled content is persisted server-side and later reflected to other users. The affected component is the avatar upload handler in lobehub/lobe-chat (CPE: cpe:2.3:a:lobehub:lobe-chat:*:*:*:*:*:*:*:*), which integrates with S3-compatible object storage. The handler performs no magic-byte or MIME sniffing on uploaded file content; instead it derives both the stored file extension and the S3 Content-Type header solely from the original filename provided by the client. An SVG file is valid XML that browsers render as a document and within which script elements are natively executed. When the stored SVG is later fetched and rendered in a victim's browser - for example when loading the attacker's profile - the embedded script runs in the context of the lobe-chat application origin, which may have access to session tokens, local storage, and API credentials.
Know when Lobehub gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:L/A:N
PR:L because a valid low-privilege account is required to upload the avatar; S:C and C:H because XSS executes in victims' browser contexts enabling full session compromise.
Primary rating from Vendor (TuranSec).
CVSS VectorVendor: TuranSec
Lifecycle Timeline
2DescriptionCVE.org
A stored cross-site scripting (XSS) vulnerability in lobehub/lobe-chat through v2.2.13 allows a low-privileged authenticated user to inject arbitrary JavaScript into the application by uploading a crafted SVG file as a user avatar. The avatar upload handler derives the stored file extension and S3 content type from the original filename rather than inspecting file content, enabling an attacker to store an SVG containing a script element that executes in the browser of any user who views the attacker's profile or avatar.
Executive ViewAI
A stored cross-site scripting vulnerability in lobe-chat v2.2.13 and earlier allows authenticated users to inject malicious code into profile avatars that executes when colleagues view their profiles, potentially enabling session hijacking and unauthorized access to user accounts. Organizations using lobe-chat for team communication face risk of credential compromise and lateral movement through captured sessions.
Immediately disable SVG avatar uploads. Implement server-side SVG content sanitization before storage and enforce strict Content-Type header validation. Deploy Web Application Firewall (WAF) rules to block SVG file uploads. Enforce Content Security Policy headers with script-src restrictions. Monitor application logs for evidence of session hijacking or unauthorized account access patterns.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Lobe Chat is a chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system.
Lobe Chat is an open-source artificial intelligence chat framework. Rated high severity (CVSS 8.8), this vulnerability i
Lobe Chat is an open-source, AI chat framework. Rated high severity (CVSS 8.6), this vulnerability is remotely exploitab
Server-side request forgery in LobeChat before 2.2.10-canary.18 lets authenticated users coerce the server into issuing
Denial of service in LobeChat before 2.2.10-canary.15 lets an authenticated user hang the entire Node.js server by impor
Cross-user data disclosure in LobeChat through version 2.2.9 allows any authenticated user to read other users' document
Lobe Chat is an open-source LLMs/AI chat framework. Rated medium severity (CVSS 5.7), this vulnerability is remotely exp
Lobe Chat is a chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system.
Path traversal in LobeHub Chat (npm @lobehub/chat, versions 1.84.26 through 2.1.48) lets any authenticated user write ar
Lobe Chat is an open-source artificial intelligence chat framework. Rated medium severity (CVSS 4.3), this vulnerability
Webhook signature verification bypass in LobeChat 2.2.1 allows unauthenticated remote attackers to inject forged inbound
Broken object level authorization in LobeChat through version 2.2.9 permits authenticated users to read and manipulate c
EUVD-2026-55164
GHSA-cjxw-hmxq-h489
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB