act's built in actions/cache server listens to connections on all interfaces and allows anyone who can connect to it including someone anywhere on the internet to create caches with arbitrary keys and retrieve all existing caches. If they can predict which cache keys will be used by local actions, they can create malicious caches containing whatever files they please most likely allowing arbitrary remote code execution within the docker container.
Discovered while discussing https://code.forgejo.org/forgejo/runner/issues/294 (sorry, that's public)
We discussed appending a secret to ACTIONS_CACHE_URL to retain compatibility with github's cache action and still allow authorization. forgejo is thinking about also encoding which repo is currently being run in CI into the secret in the url to prevent unrelated repos using the same (probably global) runner from seeing each other's caches.
act's built in actions/cache server listens to connections on all interfaces and allows anyone who can connect to it including someone anywhere on the internet to create caches with arbitrary keys and retrieve all existing caches. If they can predict which cache keys will be used by local actions, they can create malicious caches containing whatever files they please most likely allowing arbitrary remote code execution within the docker container.
Discovered while discussing https://code.forgejo.org/forgejo/runner/issues/294 (sorry, that's public)
We discussed appending a secret to
ACTIONS_CACHE_URLto retain compatibility with github's cache action and still allow authorization. forgejo is thinking about also encoding which repo is currently being run in CI into the secret in the url to prevent unrelated repos using the same (probably global) runner from seeing each other's caches.