CVE-2026-73374
ŚrednieCVSS 6.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 29 - wyżej niż 29% wszystkich znanych CVE
Streszczenie
W aplikacji Vulnerability-Lookup wykryto podatność na trwały atak XSS w filtrze Jinja render_tag_badges, używanym do wyświetlania tagów referencyjnych powiązanych z rekordami podatności. Wartości z tablicy containers.cna.references[].tags[] były bezpośrednio wstawiane do elementów HTML badge i opakowywane w markupsafe.Markup, co omijało automatyczne kodowanie HTML w Jinja. Uwierzytelniony użytkownik z uprawnieniami do tworzenia lub modyfikowania rekordów podatności (np. vulnerability:create lub vulnerability:modify) mógł przesłać przez API CNA spreparowany tag zawierający dowolny HTML lub JavaScript.
Ocena ryzyka
Atakujący może wykonać złośliwy skrypt w przeglądarce ofiary odwiedzającej publiczne strony /cve/<id> lub /vuln/<id>, co może prowadzić do kradzieży danych sesji, wykonywania działań w kontekście ofiary lub modyfikacji treści strony. Ponieważ strony podatności są publicznie dostępne, zagrożeni są również niezalogowani użytkownicy.
Rekomendacja
Należy natychmiast zaktualizować aplikację Vulnerability-Lookup do wersji zawierającej poprawkę, która stosuje markupsafe.escape() do każdego tagu referencyjnego przed wstawieniem go do HTML. Dodatkowo warto ograniczyć uprawnienia do tworzenia i modyfikowania rekordów podatności tylko do zaufanych użytkowników.
Inne podatności w Vulnerability-Lookup
Zobacz wszystkie- CVE-2026-101041Średnie
Funkcjonalność odzyskiwania konta (reset hasła) w aplikacji vulnerability-lookup zawiera wyścig TOCTOU w konsumpcji jednorazowych tokenów odzyskiwania. Dwa równoczesne żądania HTTP z tym samym ważnym tokenem mogą przejść weryfikację przed zatwierdzeniem transakcji, co pozwala obu ustawić własne hasło na koncie docelowym. Dodatkowo, w tym samym punkcie końcowym (confirm_account) ważny link odzyskiwania może być użyty do ustawienia pustego lub bardzo krótkiego hasła (np. trzy znaki), ponieważ walidacja formularza nie jest wywoływana.
- CVE-2026-73432Średnie
Podatność SSRF w funkcji synchronizacji zdalnych instancji w Vulnerability-Lookup. Adresy zdalnych instancji były walidowane tylko pod kątem podstawowej składni URL, a następnie serwer wykonywał żądania do nich bez ograniczeń sieciowych, podążając za przekierowaniami bez ponownej walidacji. Uwierzytelniony administrator z uprawnieniem admin:access mógł skonfigurować instancję wskazującą na wewnętrzne, pętlowe, link-local lub cloud metadata usługi.
- CVE-2026-73431Wysokie
Vulnerability-Lookup zawiera słabość mechanizmu aktywacji konta i odzyskiwania hasła, gdzie tokeny aktywacji/recovery są wielokrotnego użytku i nie są powiązane z celem. Atakujący, który zdobędzie ważny link, może wielokrotnie zmieniać hasło i przejmować kontrolę nad kontem.
- CVE-2026-73405Średnie
Podatność w Vulnerability-Lookup pozwala nieaktywnym lub niepotwierdzonym kontom subskrybować strumienie SSE przez endpoint /pubsub/subscribe/<topic>. Autoryzacja opierała się wyłącznie na nagłówku X-API-KEY, bez weryfikacji stanu konta. Atakujący może utworzyć konto i natychmiast uzyskać dostęp do strumieni, które powinny być dostępne tylko dla aktywnych i potwierdzonych użytkowników.
- CVE-2025-60249Średnie
vulnerability-lookup 2.16.0 zawiera podatność XSS w komponentach bundle.py, comment.py i user.py, która może być wykorzystana przez użytkownika instancji vulnerability-lookup, który może dodawać pakiety, komentarze lub obserwacje. Podatność wynika z niewystarczającej sanityzacji danych wejściowych przed renderowaniem w szablonach i tabelach, co pozwala na wstrzyknięcie dowolnego JavaScriptu.
Oryginalny opis (angielski, źródło NVD)
A stored cross-site scripting (XSS) vulnerability existed in Vulnerability-Lookup in the render_tag_badges Jinja filter used to display reference tags associated with vulnerability records. Values from containers.cna.references[].tags[] were directly interpolated into HTML badge elements and the resulting string was wrapped in markupsafe.Markup. Because Markup marks the generated content as safe, Jinja's automatic HTML escaping was bypassed. An authenticated user with permissions to create or modify vulnerability records, such as a user holding the vulnerability:create or vulnerability:modify permission, could submit a crafted reference tag through the CNA API containing arbitrary HTML or JavaScript-capable markup. The malicious value would subsequently be stored as part of the vulnerability record. When another user visited the corresponding public /cve/<id> or /vuln/<id> page, the crafted tag would be rendered as HTML in the viewer's browser. This could result in JavaScript execution in the security context of the Vulnerability-Lookup application. Successful exploitation could allow an attacker to perform actions in the context of a victim, access information available to the victim's browser session, or modify page content. As the affected vulnerability pages can be accessed publicly, exploitation may affect users who are not authenticated. The issue was corrected by applying markupsafe.escape() to each reference tag before inserting it into the HTML badge markup, while retaining Markup only for the static HTML scaffolding.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

