coily pkg uv run accepts an arbitrary /tmp script path - arbitrary code execution through the gate #10
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally filed by @coilysiren on 2026-05-21T13:33:46Z - https://github.com/coilysiren/coily/issues/312
Symptom - Audit log shows
coily pkg uv run /tmp/jobs_failure2.pyandcoily pkg uv run /tmp/step_log.pyexecuting successfully.coily pkg uv run PATHwill run any script the caller can write to disk, including the/tmptemp tier. That is arbitrary code execution laundered through the gate, and it is not intentional.Two audit rows from the galaxy-gen deploy investigation (commit
2ff7583):Why this matters - The whole point of the lockdown is that privileged and code-running surfaces are constrained.
uv runagainst an arbitrary path is a general-purpose Python interpreter. Allowing it throughcoily pkgmeans any agent that can write a file can execute it with no further gate. The temp tier is the worst case because/tmpis exactly where an agent stages scratch code.cli-guard already shipped an engine-level arbitrary-code-execution deny (cli-guard#87). This path appears to slip past it - either
coily pkgis not routed through that deny, oruv run PATHis not classified as code execution.Expected -
coily pkg uv runshould not accept a free-form script path. Either denyuv runwith a path argument outright, or restrict it to project-rooted paths (no/tmp, no absolute paths outside the repo). Decide alongside the cli-guard engine-level deny so the two stay consistent.Keywords: coily pkg, uv run, arbitrary code execution, temp tier, lockdown escape hatch, cli-guard engine deny