CVE-2026-27621
I. Summary
A Stored Cross-Site Scripting (XSS) vulnerability exists in the file upload module of TypiCMS. The application allows users with file upload permissions to upload SVG files. While there is a MIME type validation, the content of the SVG file is not sanitized. An attacker can upload a specially crafted SVG file containing malicious JavaScript code. When another user (such as an administrator) views or accesses this file through the application, the script executes in their browser, leading to a compromise of that user's session.
The issue is exacerbated by a bug in the SVG parsing logic, which can cause a 500 error if the uploaded SVG does not contain a viewBox attribute. However, this does not mitigate the XSS vulnerability, as an attacker can easily include a valid viewBox attribute in their malicious payload.
II. Vulnerability Details
- Vulnerability Type: Stored Cross-Site Scripting (XSS) (CWE-79)
- Affected Component: TypiCMS\Modules\Core\Http\Requests\FileFormRequest.php and TypiCMS\Modules\Core\Services\FileUploader.php.
- Affected Versions: <= 16.0.5
The vulnerability stems from two main points:
1. Permissive File Validation: The FileFormRequest explicitly whitelists svg as an allowed MIME type for uploads.
2. Lack of Content Sanitization: The FileUploader service saves the SVG file to the server without parsing and sanitizing its content to remove potentially malicious elements like <script> tags or on* event handlers.
When the default filesystem disk is set to public, the uploaded SVG file is stored in a publicly accessible directory, making it trivial to access the file via a direct URL and trigger the XSS payload.
III. Proof of Concept (PoC)
1. Create a Malicious SVG File:
Create a file named malicious.svg with the following content. The viewBox attribute is included to bypass the application's parsing bug.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<script>
// A simple PoC to demonstrate the vulnerability
alert('XS
⚡ Watch CVE-2026-27621
Get an email if CVE-2026-27621 is added to CISA KEV, gains public exploit code, or a new advisory cites it — max one per day, one-click unsubscribe.
Exploitation outlook
- Low exploitation risk0.19% 30-day exploitation probability — currently an unlikely target, but scores change as exploit code circulates. Riskier than 9% of all EPSS-scored CVEs.
Advisory coverage (1)
- mediumGHSA-xfvg-8v67-j7wp: TypiCMS Core has Stored Cross-Site Scripting (XSS) via SVG File Uploadghsa · 2026-02-25
External references
Embed the live status
— this badge updates automatically when the KEV or exploit status changes. How to embed it →
[](https://www.csirts.com/cve/CVE-2026-27621)