CRITICAL🇬🇧 English

CVE-2026-32703

Stored XSS w module Repositories aplikacji OpenProject

CVSS 9.0v3.1pub. 2026-03-18upd. 2026-03-19

W wersjach OpenProject wcześniejszych niż 16.6.9, 17.0.6, 17.1.3 i 17.2.1 moduł Repositories nie sanityzował poprawnie nazw plików pobieranych z repozytoriów, co umożliwiało atak typu stored XSS. Podatność jest groźna, ponieważ złośliwy kod HTML osadzony w nazwie pliku był wykonywany w przeglądarce wszystkich członków projektu odwiedzających stronę repozytoriów.

Pokaż oryginał (EN)

OpenProject is an open-source, web-based project management software. In versions prior to 16.6.9, 17.0.6, 17.1.3, and 17.2.1, the Repositories module did not properly escape filenames displayed from repositories. This allowed an attacker with push access into the repository to create commits with filenames that included HTML code that was injected in the page without proper sanitation. This allowed a persisted XSS attack against all members of this project that accessed the repositories page to display a changeset where the maliciously crafted file was deleted. Versions 16.6.9, 17.0.6, 17.1.3, and 17.2.1 fix the issue.

🤖 Analiza AI
Jak działa

Atakujący posiadający uprawnienia do zapisu (push access) w repozytorium tworzy commit zawierający plik, którego nazwa zawiera złośliwy kod HTML lub JavaScript. Moduł Repositories wyświetlając zestaw zmian (changeset) nie escapuje poprawnie nazw plików, przez co osadzony kod trafia do strony bez odpowiedniego oczyszczenia. Złośliwy skrypt jest wykonywany w kontekście przeglądarki każdego użytkownika, który wyświetli stronę repozytoriów zawierającą changeset z usuniętym, spreparowanym plikiem. Jest to atak typu persisted (stored) XSS, co oznacza, że payload jest trwale przechowywany po stronie serwera i aktywowany przy każdym wejściu na stronę.

Skutki

Atakujący może wykonać dowolny kod JavaScript w kontekście sesji zalogowanego użytkownika, co może prowadzić do kradzieży tokenów sesji, danych uwierzytelniających, a także do wykonywania nieautoryzowanych działań w imieniu ofiary w aplikacji OpenProject. Ze względu na zmianę zakresu (Scope:Changed) atak może również oddziaływać na zasoby poza bezpośrednio kontrolowaną aplikacją.

Mitygacja

Należy zaktualizować OpenProject do wersji 16.6.9, 17.0.6, 17.1.3 lub 17.2.1 w zależności od używanej gałęzi. Do czasu aktualizacji można rozważyć ograniczenie uprawnień push access w repozytoriach wyłącznie do zaufanych użytkowników oraz ograniczenie dostępu do modułu Repositories. Szczegóły dostępne w oficjalnym security advisory: https://github.com/opf/openproject/security/advisories/GHSA-p423-72h4-fjvp

Kogo dotyczy

OpenProject w wersjach wcześniejszych niż 16.6.9 (gałąź 16.x), 17.0.6 (gałąź 17.0.x), 17.1.3 (gałąź 17.1.x) oraz 17.2.1 (gałąź 17.2.x) z włączonym modułem Repositories.

Uwagi

Atak wymaga, aby ofiara odwiedziła stronę repozytoriów wyświetlającą konkretny changeset z usuniętym spreparowanym plikiem (UI:R), jednak payload jest przechowywany trwale po stronie serwera. Warunkiem skutecznego ataku jest posiadanie przez napastnika uprawnień push access do repozytorium w projekcie OpenProject.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
  • Openproject

    APP
    Openproject
    17.2.0< 16.6.917.0.0 – 17.0.6 (bez)17.1.0 – 17.1.3 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
XSS
CWE
Referencje

Powiązane podatności

CVE-2026-34717CRITICAL9.9PL ✓ten sam produkt

SQL Injection w OpenProject — operator =n bez parametryzacji zapytań

CVE-2026-32698CRITICAL9.1PL ✓ten sam produkt

SQL Injection w OpenProject umożliwiający zdalne wykonanie kodu Ruby

CVE-2026-25763CRITICAL9.4PL ✓ten sam produkt

OpenProject: command injection w endpointcie repozytorium prowadzący do RCE

CVE-2026-24685CRITICAL9.4PL ✓ten sam produkt

OpenProject: command injection w endpoincie diff repozytorium (zapis dowolnych plików)

CVE-2026-22600CRITICAL9.1PL ✓ten sam produkt

OpenProject — odczyt lokalnych plików przez SVG/ImageMagick przy eksporcie PDF