CVE-2026-54757
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 16 - wyżej niż 16% wszystkich znanych CVE
Streszczenie
Compliance-trestle (Trestle) to Python SDK i narzędzie wiersza poleceń do zarządzania dokumentami zgodności OSCAL. W wersjach przed 3.12.4 oraz 4.0.0 do 4.0.3 Trestle jest podatny na wstrzyknięcie szablonów po stronie serwera, co może prowadzić do zdalnego wykonania kodu. Dzieje się tak, ponieważ tagi Jinja2 MDCleanInclude i MDSectionInclude ponownie parsują niezaufaną treść Markdown jako kod źródłowy szablonu przy użyciu nieizolowanego środowiska jinja2.Environment. Atakujący, który kontroluje treść renderowaną przez Trestle, taką jak spreparowany plik Markdown w workspace, dokument SSP innej firmy lub wartość tabeli YAML, może wstrzyknąć wyrażenie Jinja2, które przeszukuje wewnętrzne obiekty Pythona w celu wykonania dowolnych poleceń systemu operacyjnego w kontekście procesu Trestle. Problem został naprawiony w wersjach 3.12.4 i 4.1.0.
Ocena ryzyka
Ryzyko dla organizacji obejmuje zdalne wykonanie kodu w kontekście procesu Trestle, co może prowadzić do przejęcia kontroli nad systemem, manipulacji dokumentami zgodności lub kradzieży danych. Podatność może być wykorzystana przez atakującego kontrolującego treści przetwarzane przez Trestle.
Rekomendacja
Zaleca się natychmiastowe zaktualizowanie Trestle do wersji 3.12.4 lub 4.1.0. Należy również unikać przetwarzania niezaufanych plików Markdown lub YAML i ograniczyć dostęp do narzędzia.
Inne podatności w Compliance-trestle
Zobacz wszystkie- CVE-2026-46439Wysokie
compliance-trestle przed wersjami 3.12.2 i 4.0.3 ma podatność Server-Side Template Injection (SSTI) w poleceniu 'trestle author jinja'. Rekurencyjne przetwarzanie szablonów pozwala atakującemu na wykonanie dowolnych poleceń systemowych poprzez wstrzyknięcie złośliwych danych do pól danych.
- CVE-2026-57171Wysokie
Compliance-trestle (Trestle) przed wersją 3.12.4 oraz w wersjach 4.0.0-4.0.3 pozwala na zapis dowolnych plików poza obszarem roboczym Trestle poprzez ścieżkę wyjściową kontrolowaną przez atakującego, bez walidacji przejścia ścieżki. Może to prowadzić do nadpisania plików, a przy użyciu --force-overwrite do usunięcia katalogów i pośredniego wykonania kodu.
- CVE-2026-57170Wysokie
Compliance-trestle (Trestle) przed wersją 3.12.4 oraz w wersjach 4.0.0-4.0.3 zawiera podatność na wstrzyknięcie szablonów po stronie serwera (SSTI) w niestandardowych tagach Jinja2 mdsection_include i md_clean_include, co może prowadzić do wykonania dowolnego kodu. Dane OSCAL kontrolowane przez atakującego mogą zostać wykonane jako kod szablonu.
- CVE-2026-52776Wysokie
Compliance-trestle (Trestle) przed wersją 3.12.4 oraz w wersjach 4.0.0 do 4.0.3 ma podatność na obejście walidatora URLSecurityValidator, który chroni ścieżki zdalnego pobierania przed SSRF. Można ominąć blokadę, aby dotrzeć do adresów loopback, link-local, cloud-metadata i wewnętrznych sieci. Problem został naprawiony w wersjach 3.12.4 i 4.1.0.
- CVE-2026-46345Wysokie
compliance-trestle przed wersjami 3.12.2 i 4.0.3 ma podatność w argumencie `-o/--output` w `trestle author jinja`, która pozwala na zapisywanie plików poza zamierzonym workspace. Aplikacja nie waliduje poprawnie `../`, `..\` ani ścieżek bezwzględnych, co umożliwia zapis dowolnych plików w lokalizacjach kontrolowanych przez atakującego. Wersje 3.12.3 i 4.0.3 naprawiają problem.
- CVE-2026-46380Średnie
compliance-trestle przed wersjami 3.12.2 i 4.0.3 zawiera podatność w metodzie HTTPSFetcher._do_fetch(), która przekazuje adres URL dostarczony przez użytkownika bezpośrednio do requests.get() bez walidacji. Umożliwia to atakującemu przeprowadzenie ataku SSRF (Server-Side Request Forgery), celując w wewnętrzne usługi lub endpointy metadanych chmury.
- CVE-2026-45774Średnie
compliance-trestle przed wersjami 3.12.2 i 4.0.3 zawiera podatność w mechanizmie importu profili, która pozwala na odczyt dowolnych plików z systemu plików serwera. Mechanizm łączy URI `trestle://` i względne ścieżki z `trestle_root` bez sprawdzania granic, co umożliwia atakującemu użycie sekwencji przejścia do katalogu nadrzędnego w `imports[].href` w złośliwym pliku OSCAL.
- CVE-2026-45725Wysokie
compliance-trestle przed wersjami 3.12.2 i 4.0.3 ma podatność w mechanizmie zdalnego pobierania plików (HTTPSFetcher i SFTPFetcher), gdzie ścieżka lokalnego pliku cache jest tworzona z komponentu URL bez sanityzacji sekwencji przejścia do katalogu nadrzędnego (../). Gdy zdalny profil OSCAL odwołuje się do URL z taką sekwencją, treść odpowiedzi HTTP jest zapisywana poza zamierzonym katalogiem cache, co umożliwia zapis dowolnych plików z treścią kontrolowaną przez atakującego. Wersje 3.12.3 i 4.0.3 naprawiają ten problem.
Oryginalny opis (angielski, źródło NVD)
Compliance-trestle (Trestle) is a Python SDK and command-line tool for managing OSCAL compliance documents. In versions before 3.12.4 and versions 4.0.0 through 4.0.3, Trestle is vulnerable to server-side template injection that can lead to remote code execution. This occurs because the MDCleanInclude and MDSectionInclude Jinja2 tags re-parse untrusted Markdown content as template source code using a non-sandboxed jinja2.Environment. An attacker who controls content that Trestle renders, such as a crafted workspace Markdown file, a third-party SSP document, or a YAML lookup-table value, can inject a Jinja2 expression that traverses Python object internals to execute arbitrary operating system commands in the context of the Trestle process. This issue is fixed in versions 3.12.4 and 4.1.0.

