CVE-2026-71502
ŚrednieCVSS 5.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 35 - wyżej niż 35% wszystkich znanych CVE
Streszczenie
CTI-Transmute zawiera podatność na trwały atak XSS, spowodowaną niewystarczającą neutralizacją ograniczników wyrażeń szablonu Vue w danych renderowanych po stronie serwera. Nieuwierzytelniony atakujący może utworzyć publiczną konwersję z nazwą lub opisem zawierającym złośliwe wyrażenie Vue, które jest wykonywane w przeglądarce ofiary. Podatność umożliwia wykonanie dowolnego kodu JavaScript w kontekście aplikacji.
Ocena ryzyka
Atakujący może uzyskać dostęp do danych ofiary, wyodrębnić klucze API, tokeny lub inne wrażliwe informacje, a także wykonywać uwierzytelnione działania w sesji ofiary. Może również modyfikować konwersje lub inne dane aplikacji, a w przypadku administratora eskalować wpływ ataku.
Rekomendacja
Należy natychmiast zaktualizować CTI-Transmute do wersji zawierającej poprawkę, która rejestruje globalny hak finalizujący Jinja, wstawiający zero-szerokości łącznik słów wewnątrz ograniczników Vue. Do czasu aktualizacji należy ograniczyć możliwość tworzenia publicznych konwersji i monitorować aktywność użytkowników.
Inne podatności w CTI-Transmute
Zobacz wszystkie- CVE-2026-73162Średnie
Podatne wersje MISP cti-transmute udostępniają kilka operacji zmieniających stan konta jako żądania GET, np. /account/follow, /account/delete_notification, /account/mark_notification_read i /account/mark_all_read. Te punkty końcowe wymagają uwierzytelnienia, ale przed poprawką mogły być wywoływane prostymi żądaniami GET, co czyni je podatnymi na cross-site request forgery (CSRF). Poprawka zmienia te akcje na POST lub DELETE i dodaje nagłówek X-CSRFToken w frontendzie.
- CVE-2026-73161Średnie
Podatne wersje cti-transmute nieprawidłowo obsługują wartości tabel konwersji przekazywane przez funkcję podświetlania wyszukiwania. Funkcja highlight() zwracała tekst bezpośrednio, gdy nie podano zapytania, lub wykonywała zamianę regex, wstawiając znaczniki <mark> bez uprzedniego escapowania oryginalnej treści. Ponieważ wynik jest używany w kontekście renderowania HTML, złośliwy markup w danych konwersji mógł być interpretowany jako HTML zamiast wyświetlany jako tekst. Poprawka wprowadza funkcję highlightMatches(), która najpierw konwertuje znaki specjalne na encje HTML.
- CVE-2026-73160Wysokie
Podatne wersje cti-transmute zawierają podatność SSRF w punktach końcowych /fetch_misp_event i /misp_search_events. Procedura walidacji URL sprawdzała, czy podana nazwa hosta jest adresem IP i odrzucała prywatne, pętlowe, link-local lub zarezerwowane adresy IP. Jednak zwykłe nazwy domen były akceptowane bez wcześniejszego ich rozwiązywania. Atakujący mógł więc użyć nazwy hosta, której rekord DNS wskazywał na wewnętrzny adres, i spowodować, że serwer cti-transmute wysyłał żądania do swojej sieci wewnętrznej. Poprawka rozwiązuje nazwy hostów za pomocą socket.getaddrinfo(), sprawdza, czy każdy rozwiązany adres jest globalnie routowalny, oraz dodaje @login_required do obu dotkniętych tras.
- CVE-2026-73159Średnie
Podatne wersje cti-transmute pozwalają na przechowywanie wartości ikony tagu i późniejszą interpolację do HTML przez v-html. Funkcja mapIcon() konstruowała string HTML bezpośrednio z wartości ikony, np. <i class="fas fa-${name}"></i>. Ponieważ ikona jest dostarczana przez użytkownika, spreparowana wartość mogła wyrwać się z zamierzonego markupu i wstrzyknąć HTML kontrolowany przez atakującego. Gdy tag był renderowany, w tym na administracyjnym interfejsie triage, payload mógł wykonać się w przeglądarce widza. Poprawka zastępuje v-html bindingiem :class, ogranicza mapIcon() do klasy FontAwesome i waliduje ikony po stronie backendu.
- CVE-2026-73158Średnie
Podatne wersje cti-transmute niewystarczająco walidują zapisane dane konfiguracji grafów. Konfiguracje grafów mogą zawierać właściwości stylu, które są później używane przez Pivotick, a Pivotick interpretuje svgIcon jako HTML. Ponieważ zapisane konfiguracje mogą być tworzone przez jednego użytkownika i wyświetlane innym, w tym administratorom, złośliwy użytkownik mógł zapisać spreparowaną wartość svgIcon, która wykonuje skrypt w przeglądarce innego widza. Poprawka wprowadza ścisły schemat konfiguracji po stronie serwera i klienta, odrzucając niebezpieczne właściwości.
- CVE-2026-73157Niskie
Podatność w cti-transmute polega na renderowaniu danych pochodzących z zdalnej instancji MISP w interfejsie event-browser za pomocą interpolacji HTML. Złośliwy lub skompromitowany serwer MISP może zwrócić spreparowane wartości, które wstrzykują HTML lub skrypty do interfejsu.
- CVE-2026-73156Średnie
Podatne wersje cti-transmute nie escapują wartości kontrolowanych przez atakującego używanych w formaterach tooltipów ECharts Sunburst i Treemap. Nazwy wycinków mogą pochodzić bezpośrednio z danych STIX lub MISP, w tym typów STIX, relationship_type, prefiksów wzorców oraz wartości kategorii/typu MISP. Ponieważ ECharts interpretuje wartość zwracaną przez formater jako HTML, spreparowane wartości mogą wstrzyknąć markup lub treści zdolne do wykonania skryptów w tooltipie. Poprawka zastępuje bezpośrednią interpolację dedykowanymi funkcjami formaterów, które wywołują escapeHtml() na p.name, p.data.value i p.value.
- CVE-2026-73155Średnie
Podatne wersje cti-transmute pozwalają uwierzytelnionym użytkownikom dodawać lub usuwać reakcje emoji na komentarzach bez uprzedniego sprawdzenia, czy ci użytkownicy mają uprawnienia do wyświetlania danego komentarza. Podatny handler react() przekazywał kontrolowany przez atakującego comment_id bezpośrednio do comments_repo.toggle_reaction() po tylko walidacji syntaktycznej ID i dozwolonego emoji. Ponieważ widoczność komentarza nie była egzekwowana, użytkownik, który znał ID prywatnego lub niedostępnego komentarza, mógł zmienić stan reakcji na tym komentarzu. Poprawka pobiera docelowy komentarz, odrzuca brakujące lub usunięte komentarze, pobiera powiązaną konwersję i egzekwuje access.can_see_comment(). Nieautoryzowane żądania otrzymują HTTP 403.
- CVE-2026-73140Średnie
Podatność w cti-transmute powoduje, że eksport raportów ewaluacyjnych nie stosuje reguł kontroli dostępu na poziomie komentarzy. Użytkownik z uprawnieniami do przeglądania konwersji może wyeksportować raport zawierający prywatne komentarze ewaluacyjne, które powinny być widoczne tylko dla właściciela, autora lub administratora. Poprawka przekazuje żądającego użytkownika do generatora raportów i filtruje komentarze przez funkcję autoryzacji.
- CVE-2026-72751Średnie
CTI-Transmute zawiera podatność na trwały atak XSS w grafie konwersji, który wizualizuje przekonwertowane dane MISP i STIX. Wartości kontrolowane przez atakującego, pochodzące z danych CTI, były przekazywane do parserów HTML w interfejsie grafu bez odpowiedniej neutralizacji, co pozwalało na wykonanie złośliwego kodu. Podatność obejmuje etykiety węzłów, krawędzi, właściwości oraz funkcję otwierania surowego JSON.
Oryginalny opis (angielski, źródło NVD)
CTI-Transmute contains a stored cross-site scripting vulnerability caused by insufficient neutralization of Vue template expression delimiters in server-rendered user-controlled data. An unauthenticated attacker can create a public conversion whose name or description contains a malicious Vue expression using the application's configured [[ ... ]] delimiters. User profile names may provide an additional injection vector. Although Jinja HTML escaping is applied, the resulting value is subsequently included in a DOM region compiled by Vue. Vue interprets the attacker-controlled value as a template expression rather than ordinary text. By accessing the JavaScript Function constructor from within the expression, an attacker can execute arbitrary JavaScript in the security context of the CTI-Transmute origin. The application's nonce-based Content Security Policy does not prevent exploitation because the Vue runtime compiler requires the unsafe-eval policy exception. The malicious payload is stored by the application and executed whenever another user opens an affected page, such as the public conversion detail page. The victim may be a normal user or an administrator. Successful exploitation could allow the attacker to: * Access data available to the victim through the application. * Extract API keys, tokens, or other sensitive information exposed to the page. * Perform authenticated actions using the victim's session. * Modify conversions or other application data. * Escalate the impact by targeting an administrator. A demonstrated payload can use [].constructor.constructor(...) to obtain the JavaScript Function constructor and execute arbitrary code. The regression tests also show that a short first-stage payload could retrieve an uncapped conversion description and evaluate a larger second-stage payload. The patch addresses the vulnerability by registering a global Jinja finalize hook that inserts a zero-width Unicode word joiner inside every Vue delimiter found in server-rendered values. This prevents Vue from recognizing the values as template expressions while preserving their visible representation.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

