Description
Fission is an open-source, Kubernetes-native serverless framework that simplifies the deployment of functions and applications on Kubernetes. Prior to version 1.23.0, Fission runtime pods were created with ServiceAccountName: fission-fetcher, and the fission-fetcher ServiceAccount was granted namespace-wide get on secrets and configmaps (it needs that to load function code, env vars, and config). The runtime pod's automounted token was reachable from inside the user's function container at /var/run/secrets/kubernetes.io/serviceaccount/token, so user-supplied function code inherited the same Kubernetes API privileges and could read any secret or configmap in the function's namespace — far beyond the Function.spec.secrets allowlist that the function specification suggests. This issue has been patched in version 1.23.0.
Problem types
CWE-250: Execution with Unnecessary Privileges
CWE-269: Improper Privilege Management
CWE-538: Insertion of Sensitive Information into Externally-Accessible File or Directory
Product status
References
github.com/...ission/security/advisories/GHSA-85g2-pmrx-r49q
github.com/fission/fission/pull/3366
github.com/fission/fission/releases/tag/v1.23.0