Miggo Logo

CVE-2025-56515: Fiora chat group avatar is vulnerable to XSS via SVG files

N/A

CVSS Score

Basic Information

EPSS Score
-
Published
10/1/2025
Updated
10/1/2025
KEV Status
No
Technology
TechnologyJavaScript

Technical Details

CVSS Vector
-
Package NameEcosystemVulnerable VersionsFirst Patched Version
fioranpm= 1.0.0

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability lies in the Fiora chat application's user avatar upload functionality, which is susceptible to a Cross-Site Scripting (XSS) attack. The root cause of this vulnerability is the insufficient validation of SVG file content when a user updates their avatar. An attacker can upload a specially crafted SVG file containing malicious JavaScript code embedded within a <foreignObject> and <iframe> tag. The changeAvatar function in packages/server/src/routes/user.ts is the server-side function that processes the avatar change. It receives a URL pointing to the new avatar and saves it to the user's database record without performing any server-side validation on the content of the file at that URL. This allows a malicious SVG to be associated with a user's profile. When another user's client application renders this avatar, the embedded JavaScript is executed in the context of their browser, leading to potential session hijacking, cookie theft, or other unauthorized actions. The changeAvatar function is therefore the primary vulnerable function on the backend that enables this attack.

Vulnerable functions

changeAvatar
packages/server/src/routes/user.ts
This function is responsible for updating a user's avatar. It accepts a URL for the new avatar and saves it to the user's profile without validating the content of the file at that URL. This allows an attacker to provide a URL to a malicious SVG file containing a cross-site scripting (XSS) payload. When the avatar is rendered by other users, the malicious script executes in their browser.

WAF Protection Rules

WAF Rule

*il* uplo** vuln*r**ility in *ior* ***t *ppli**tion *.*.* t*rou** us*r *v*t*r uplo** *un*tion*lity. T** *ppli**tion **ils to v*li**t* SV* *il* *ont*nt, *llowin* m*li*ious SV* *il*s wit* *m****** *or*i*nO*j**t *l*m*nts *ont*inin* i*r*m* t**s *n* J*v*S

Reasoning

T** vuln*r**ility li*s in t** *ior* ***t *ppli**tion's us*r *v*t*r uplo** *un*tion*lity, w*i** is sus**pti*l* to * *ross-Sit* S*riptin* (XSS) *tt**k. T** root **us* o* t*is vuln*r**ility is t** insu**i*i*nt v*li**tion o* SV* *il* *ont*nt w**n * us*r