---
id: CVE-2023-27489
aliases:
  - GHSA-2wcr-87wf-cf9j
  - PYSEC-2026-1496
title: Kiwi TCMS Stored Cross-site Scripting via SVG file
summary: Kiwi TCMS Stored Cross-site Scripting via SVG file
severity: high
cvss: 7.6
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:L'
vendor: kiwitcms
product: kiwitcms
ecosystem: pip
affected:
  - kiwitcms < 12.1
patched:
  - kiwitcms 12.1
published: '2023-03-30'
updated: '2026-09-10'
sourceUpdated: '2026-09-10T03:49:52.408877927Z'
source: OSV
sourceUrl: 'https://osv.dev/vulnerability/GHSA-2wcr-87wf-cf9j'
references:
  - url: 'https://github.com/kiwitcms/Kiwi/security/advisories/GHSA-2wcr-87wf-cf9j'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2023-27489'
  - url: >-
      https://github.com/kiwitcms/Kiwi/commit/6617cee0fb70cc394b7be6bbc86ef84e6e9de077
  - url: 'https://github.com/kiwitcms/Kiwi'
tags:
  - osv
  - pip
epss: 0.00485
epssPercentile: 0.40866
ingestedAt: '2026-07-08T18:25:44.628Z'
---

## Overview

### Impact
Kiwi TCMS accepts SVG files uploaded by users which could potentially contain JavaScript code. If SVG images are viewed directly, i.e. not rendered in an HTML page, this JavaScript code could execute. 

### Patches
This vulnerability has been fixed by configuring Kiwi TCMS to serve with the Content-Security-Policy HTTP header which blocks inline JavaScript in all modern browsers.

### Workarounds
Configure Content-Security-Policy header, see [commit 6617cee0](https://github.com/kiwitcms/Kiwi/commit/6617cee0fb70cc394b7be6bbc86ef84e6e9de077).

### References
You can visit https://digi.ninja/blog/svg_xss.php for more technical details.

Independently disclosed by [Antonio Spataro](https://huntr.dev/bounties/bf99001b-a0a2-4f7d-98cd-983bc7f14a69/) and [@1d8](https://huntr.dev/bounties/f8c73bcc-02f3-4c65-a92b-1caa4d67c2fd/).

## Affected packages

- `kiwitcms < 12.1`

## Remediation

Upgrade to a patched release:

- `kiwitcms 12.1`
