W bibliotece i aplikacji CLI Copier (wersje 9.5.0–9.16.0) możliwe jest ominięcie mechanizmu weryfikacji zaufanych repozytoriów szablonów poprzez użycie percent-encoded segmentów ścieżki (np. zakodowanych separatorów katalogów) w adresie URL szablonu. Pozwala to na uruchomienie niebezpiecznych funkcji szablonu z niezaufanego źródła po interakcji użytkownika.
▸ Pokaż oryginał (EN)
Copier is a library and CLI app for rendering project templates. From 9.5.0 through 9.16.0, percent-encoded parent-directory segments or encoded path separators in a template URL can match a configured trusted repository prefix before an HTTP server or Git transport decodes the path, allowing unsafe template features from a repository outside the trusted prefix to run after user interaction. This issue is fixed in version 9.17.0.
Mechanizm weryfikacji zaufanych repozytoriów w Copier sprawdza, czy URL szablonu pasuje do skonfigurowanego prefiksu zaufanego repozytorium, zanim serwer HTTP lub transport Git zdekoduje ścieżkę. Atakujący może skonstruować URL zawierający percent-encoded sekwencje reprezentujące segmenty nadrzędnego katalogu (np. '%2F', '%2E%2E') lub zakodowane separatory ścieżki, które na poziomie porównania ciągów znaków dopasują się do zaufanego prefiksu. Po stronie serwera lub transportu Git zakodowana ścieżka zostaje zdekodowana do rzeczywistej lokalizacji poza zaufanym prefixem, co skutkuje załadowaniem szablonu z niezaufanego repozytorium. Niebezpieczne funkcje takiego szablonu mogą zostać wykonane po interakcji użytkownika.
Atakujący może doprowadzić do wykonania niebezpiecznych funkcji szablonu z repozytorium znajdującego się poza zaufanym prefixem, co może skutkować naruszeniem poufności, integralności i dostępności systemu użytkownika.
Należy zaktualizować Copier do wersji 9.17.0, w której podatność została naprawiona. Patch dostępny jest w oficjalnym repozytorium projektu: https://github.com/copier-org/copier/releases/tag/v9.17.0
Copier w wersjach od 9.5.0 do 9.16.0 (włącznie)
Podatność wymaga interakcji użytkownika (UI:R) oraz wysokiej złożoności ataku (AC:H), co ogranicza praktyczne ryzyko eksploatacji. Poprawka wprowadzona w commicie 7408f0d6287a7bf452715fd9f25dc54eaba3c295. Szczegóły opublikowane w security advisory GHSA-34mv-rjq9-5mch.
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H