Tekton Pipelines git resolver jest podatny na atak path traversal za pośrednictwem parametru `pathInRepo`, umożliwiając uwierzytelnionemu najemcy odczyt dowolnych plików z systemu plików poda resolvera. Podatność jest szczególnie groźna, ponieważ atakujący może uzyskać dostęp do tokenów ServiceAccount, co może prowadzić do eskalacji uprawnień w klastrze Kubernetes.
▸ Pokaż oryginał (EN)
Tekton Pipelines project provides k8s-style resources for declaring CI/CD-style pipelines. Starting in version 1.0.0 and prior to versions 1.0.1, 1.3.3, 1.6.1, 1.9.2, and 1.10.2, the Tekton Pipelines git resolver is vulnerable to path traversal via the `pathInRepo` parameter. A tenant with permission to create `ResolutionRequests` (e.g. by creating `TaskRuns` or `PipelineRuns` that use the git resolver) can read arbitrary files from the resolver pod's filesystem, including ServiceAccount tokens. The file contents are returned base64-encoded in `resolutionrequest.status.data`. Versions 1.0.1, 1.3.3, 1.6.1, 1.9.2, and 1.10.2 contain a patch.
Podatność (CWE-22) polega na braku odpowiedniej walidacji ścieżki podawanej w parametrze `pathInRepo` podczas obsługi żądań przez git resolver. Najemca posiadający uprawnienia do tworzenia obiektów `ResolutionRequests` — na przykład poprzez tworzenie `TaskRuns` lub `PipelineRuns` korzystających z git resolvera — może podać spreparowaną ścieżkę zawierającą sekwencje path traversal (np. `../`). W efekcie resolver odczytuje plik spoza zamierzonego katalogu repozytorium, a jego zawartość jest zwracana zakodowana w formacie base64 w polu `resolutionrequest.status.data`, dostępnym dla użytkownika.
Atakujący może odczytać dowolne pliki z systemu plików poda resolvera, w tym tokeny ServiceAccount Kubernetes, co może umożliwić eskalację uprawnień i przejęcie kontroli nad zasobami klastra.
Należy zaktualizować Tekton Pipelines do jednej z wersji zawierających patch: 1.0.1, 1.3.3, 1.6.1, 1.9.2 lub 1.10.2. Patche dostępne są w repozytorium projektu na GitHub (tektoncd/pipeline). Tymczasowo warto rozważyć ograniczenie uprawnień do tworzenia obiektów `ResolutionRequests`, `TaskRuns` oraz `PipelineRuns` wyłącznie do zaufanych użytkowników.
Tekton Pipelines w wersjach od 1.0.0 (włącznie) do wersji: 1.0.1, 1.3.3, 1.6.1, 1.9.2 oraz 1.10.2 (wyłącznie) — czyli wszystkie wersje z gałęzi 1.0.x, 1.3.x, 1.6.x, 1.9.x i 1.10.x przed wydaniem odpowiednich poprawek.
Podatność dotyczy środowisk wielonajemczych (multi-tenant) — ryzyko jest szczególnie wysokie, gdy różni użytkownicy współdzielą jeden klaster Kubernetes z uruchomionym Tekton Pipelines. Wektorem CVSS jest sieć (AV:N), zakres zmiany to C (Scope:Changed), co odzwierciedla możliwość wpływu na zasoby poza bezpośrednim podem resolvera.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:NLinuxfoundation Tekton Pipelines
APPLinuxfoundation1.0.01.1.0 – 1.3.3 (bez)1.4.0 – 1.6.1 (bez)1.7.0 – 1.9.2 (bez)1.10.0 – 1.10.2 (bez)
Powiązane podatności
Tekton Pipelines project provides k8s-style resources for declaring CI/CD-style pipelines. Starting in version...
Tekton Pipelines project provides k8s-style resources for declaring CI/CD-style pipelines. Starting in version...
Tekton Pipelines project provides k8s-style resources for declaring CI/CD-style pipelines. Prior to 1.11.1, a ...
Tekton Pipelines project provides k8s-style resources for declaring CI/CD-style pipelines. Prior to 1.11.1, th...
Tekton Pipelines project provides k8s-style resources for declaring CI/CD-style pipelines. From 0.43.0 to 1.11...