Technical information on CVE-2025-66561; Authenticated Stored Cross-Site Scripting (XSS) #566
aronmolnar
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Authenticated users can upload arbitrary files to notes (project notes and personal notes), including HTML and JS files.
When users open the file URL, the server responds with the file content and a guessed
Content-Type: text/hmtlorapplication/javascript. This results in the victim's browser to load and execute the malicious file as HTML and execute JS code.The vulnerability arises because SysReptor uses Django's
FileResponseto serve user-uploaded content, which automatically sets theContent-Typeheader based on the file extension.Furthermore, the application sets the
Content-Dispositionheader toinlinerather thanattachment.This behavior allows for a bypass of the
script-src 'self'Content Security Policy because the attacker can upload a malicious JavaScript payload to the notes, which the CSP trusts as a local resource, and then trigger it by uploading a secondary HTML file that sources the malicious script.Note: The XSS cannot be triggered via standard navigation within the web interface, it is exploitable if a victim is tricked into opening the direct URL of the uploaded file, such as through a link in a phishing email, resulting in the execution of arbitrary JavaScript in the victim's session.
Beta Was this translation helpful? Give feedback.
All reactions