CVE-2026-53951
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 9 - wyżej niż 9% wszystkich znanych CVE
Streszczenie
Podatność w bibliotece Copier (wersje 9.5.0–9.15.1) pozwala na ominięcie mechanizmu zaufania dla szablonów. Sprawdzanie prefiksu URL odbywa się bez normalizacji ścieżki, podczas gdy pobieranie szablonu już ją normalizuje, co umożliwia użycie sekwencji `..` w celu wskazania innego, złośliwego szablonu. W efekcie kod z `tasks`, `migrations` lub `jinja_extensions` może zostać wykonany bez pytania użytkownika o potwierdzenie zaufania.
Ocena ryzyka
Atakujący może zdalnie wykonać dowolne polecenia na maszynie ofiary, jeśli ta użyje zaufanego prefiksu i poda spreparowany URL szablonu. Ryzyko obejmuje pełne przejęcie systemu, kradzież danych lub instalację złośliwego oprogramowania.
Rekomendacja
Niezwłocznie zaktualizuj Copier do wersji 9.15.2 lub nowszej. Jeśli aktualizacja nie jest możliwa, tymczasowo unikaj używania zaufanych prefiksów lub ręcznie weryfikuj każdy szablon przed jego użyciem.
Inne podatności w Copier
Zobacz wszystkie- CVE-2026-62999Wysokie
Copier w wersjach od 9.5.0 do 9.16.0 zawiera podatność, która pozwala na ominięcie zaufanego prefiksu repozytorium. Zakodowane procentowo segmenty ścieżki lub separatory w adresie URL szablonu mogą pasować do skonfigurowanego zaufanego prefiksu przed dekodowaniem przez serwer HTTP lub Git, co umożliwia użycie niebezpiecznych funkcji szablonu z repozytorium spoza zaufanego prefiksu po interakcji użytkownika.
- CVE-2026-34730Średnie
Copier przed wersją 9.14.1 zawiera lukę w funkcji _external_data, która pozwala szablonowi na wczytywanie plików YAML ze ścieżek kontrolowanych przez szablon. Złośliwy szablon może odczytać lokalne pliki YAML dostępne dla użytkownika i ujawnić ich zawartość w renderowanym wyniku.
- CVE-2026-34726Średnie
Copier przed wersją 9.14.1 akceptuje nawigację do katalogu nadrzędnego (..) w ustawieniu _subdirectory, co pozwala szablonowi na ucieczkę z własnego katalogu i renderowanie plików z katalogu nadrzędnego bez użycia flagi --UNSAFE.
Oryginalny opis (angielski, źródło NVD)
Copier is a library and CLI app for rendering project templates. In versions 9.5.0 through 9.15.1, the `trust` setting's prefix match (`copier/_settings.py`) compares the template URL against a trusted prefix with a raw `str.startswith` and no path normalization, while the URL is normalized when the template is actually fetched (`Path.resolve()` for local paths; libcurl dot-segment removal for `https`). A template reference that textually starts with a trusted prefix but contains `..` is therefore granted trust yet resolves to a different, attacker-controlled template, whose `tasks` / `migrations` / `jinja_extensions` then run without the `--trust` prompt — arbitrary command execution. Version 9.15.2 patches the issue.

