← Back to list

CVE-2024-47950

May 13, 2025

  • Anwendung/Komponente: JetBrains TeamCity
  • Betroffene Version: < 2024.07.3
  • Score (CVSS 3.1): 5.4 Medium
  • Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
  • CWEs:
    • CWE-79: Improper Neutralization of Input During Web Page Generation (‘Cross-site Scripting’)
  • CVE: CVE-2024-47950

Im Rahmen eine näheren Analyse von JetBrains TeamCity konnte ich eine Schwachstelle finden.

Beschreibung

TeamCity unterstützt das Erstellen von Backups. Um Backups erstellen zu können, benötigt ein Nutzer die Berechtigung Change backup settings and control backup process.

Auf der Maske kann der Name einer Backupdatei angegeben werden. Der Dateiname wird im Tab Run Backup sowie im Tab History angezeigt. Die Eingabe wird nicht sanitarisiert. Wird Javascript-Code / HTML-Code eingegeben, wird dieser Code ausgeführt, was zu einer (stored) XSS führt.

Proof of Concept

Im Formularfeld Backup file auf dem Tab Run Backup wird folgender Dateiname eingegeben:

"><script>alert(); </script>

Bösartiger Javascript code

Wird der Button “Start Backup” gedrückt, wird der Code ausgeführt:

XSS

Öffnet man den Tab “History”, wird dieser Code immer wieder ausgeführt (stored XSS):

Stored XSS

Lessons learned

Alle Inputeingaben sind zu prüfen und zu sanitarisieren. Auch wenn die Auswirkungen im vorliegendem Fall begrenzt sind - es können nur User angegriffen werden, die ebenfalls diese Berechtigung haben, zudem waren die Session-Cookies mit HttpOnly geschützt - kann dies je nach Anwendungsfall zu erfolgreichen Angriffen führen. Gerade im Bereich des internen Phishings nicht zu unterschätzen.

Hinweis

Alle Tests wurden auf der eigenen, lokalen Instanz (mittels Docker) durchgeführt sowie mit eigenen, erstellten Test-Nutzerdaten.

Jetbrains hat schnell, konstruktiv und professionell reagiert.


Timeline

  • Meldung am 12.09.2024 an JetBrains
  • Rückmeldung am 12.09.2024
  • Fehler behoben am 24.09.2024
  • Patch veröffentlicht am 01.10.2024
  • CVE-Eintrag am 08.10.2024 mit CVE-2024-47950
  • Release des Blog-Eintrages: 13.05.2025