CVE-2026-57170
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może wykorzystać tę podatność do wykonania dowolnego kodu w kontekście procesu Trestle, co może prowadzić do pełnej kompromitacji systemu i danych.
Rekomendacja
Zaktualizuj Compliance-trestle do wersji 4.1.0 i unikaj przetwarzania niezaufanych danych OSCAL w środowiskach, gdzie używane są tagi include.
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-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-54757Wysokie
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.
- 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 prior to 3.12.4 and 4.0.0 through 4.0.3, the custom Jinja2 include tags mdsection_include and md_clean_include re-parse the content of an included Markdown file as Jinja2 template code in a non-sandboxed environment, allowing server-side template injection that can lead to arbitrary code execution. The MDSectionInclude and MDCleanInclude tags in Trestle/core/jinja/tags.py pass included file content to Parser(self.environment, ...).parse(), splicing it into the host template's compilation, and the environment is a plain jinja2.Environment rather than a SandboxedEnvironment, so any expressions in the file are evaluated with full access to the usual SSTI gadget chain. Because Trestle's Markdown writers emit OSCAL prose and component-description fields verbatim, applying delimiter neutralization only to parameter tables, attacker-controlled OSCAL data such as a control statement, part prose, or component description containing Jinja2 syntax flows into an included Markdown file and is executed when the include tag re-parses it. This issue is fixed in version 4.1.0.

