Podatność w Fission (framework serverless dla Kubernetes) przed wersją 1.24.0 pozwala najemcy (tenant) z uprawnieniami RBAC do tworzenia/aktualizowania środowisk na uruchomienie uprzywilejowanych kontenerów w przestrzeni nazw funkcji lub buildera. Stanowi to krytyczne zagrożenie, gdyż umożliwia ucieczkę z sandbox kontenera oraz kompromitację węzłów i całego klastra Kubernetes.
▸ Pokaż oryginał (EN)
Fission is an open-source, Kubernetes-native serverless framework that simplifies the deployment of functions and applications on Kubernetes. Prior to version 1.24.0, a tenant with environments.fission.io create/update RBAC can run privileged / allowPrivilegeEscalation / dangerous-capability containers in the Fission function or builder namespace, scheduled under the executor's high-privilege service account — enabling container-sandbox escape, host filesystem and network access, and potential node- and cluster-level compromise. This issue has been patched in version 1.24.0.
Atakujący posiadający uprawnienia RBAC do zasobu environments.fission.io (create/update) może tworzyć lub modyfikować środowiska w taki sposób, by uruchomić kontenery z flagami privileged lub allowPrivilegeEscalation albo z niebezpiecznymi capabilities systemowymi. Kontenery te są planowane pod kontekstem konta serwisowego executora, które posiada wysokie uprawnienia w klastrze. Dzięki temu atakujący może wydostać się poza sandbox kontenera i uzyskać dostęp do systemu plików hosta oraz sieci hosta.
Atakujący może uzyskać dostęp do systemu plików i sieci hosta, a następnie przejąć kontrolę nad węzłem Kubernetes lub całym klastrem (container-sandbox escape, node- i cluster-level compromise).
Należy zaktualizować Fission do wersji 1.24.0, w której problem został naprawiony (https://github.com/fission/fission/releases/tag/v1.24.0). Dodatkowo zaleca się przegląd przyznanych uprawnień RBAC do zasobu environments.fission.io i ograniczenie ich do zaufanych użytkowników.
Fission w wersjach poprzedzających 1.24.0
Podatność opisana w security advisory GHSA-m63v-2g9w-2w6v oraz naprawiona pull requestem #3406 w repozytorium GitHub projektu Fission.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H