forked from EduCraft/curriculum-project-hub
fix(ci): clear caps as root when switching sandbox uid
This commit is contained in:
@@ -117,8 +117,8 @@ jobs:
|
||||
- name: Prove real Claude SDK Bash sandbox boundary
|
||||
run: |
|
||||
set -euo pipefail
|
||||
# The proof requires uid>0, CapEff=0, and NoNewPrivs=1. Gitea act often
|
||||
# runs as root; switch to cphci then clear caps under no_new_privs.
|
||||
# The proof requires uid>0, CapEff=0, and NoNewPrivs=1. Switch uid and
|
||||
# clear capability sets in one setpriv call (as root).
|
||||
if ! id cphci >/dev/null 2>&1; then
|
||||
useradd --create-home --shell /bin/bash cphci
|
||||
fi
|
||||
@@ -126,13 +126,12 @@ jobs:
|
||||
REPO_ROOT="$(cd .. && pwd)"
|
||||
NODE_BIN_DIR="$(dirname "$(command -v node)")"
|
||||
NPX_BIN="$(command -v npx)"
|
||||
chown -R cphci:cphci "$REPO_ROOT/hub"
|
||||
runuser -u cphci -- env \
|
||||
HOME="/home/cphci" \
|
||||
PATH="$NODE_BIN_DIR:/usr/local/bin:/usr/bin:/bin" \
|
||||
CPH_SANDBOX_TEST_ROOT=/w/t \
|
||||
chown -R cphci:cphci "$REPO_ROOT/hub" /home/cphci
|
||||
/usr/bin/setpriv \
|
||||
--inh-caps=-all --bounding-set=-all --no-new-privs \
|
||||
--reuid=cphci --regid=cphci --init-groups \
|
||||
--inh-caps=-all --bounding-set=-all --ambient-caps=-all \
|
||||
--no-new-privs \
|
||||
env HOME=/home/cphci PATH="$NODE_BIN_DIR:/usr/local/bin:/usr/bin:/bin" CPH_SANDBOX_TEST_ROOT=/w/t \
|
||||
bash -lc "cd '$REPO_ROOT/hub' && '$NPX_BIN' vitest run test/integration/agent-sandbox-linux.test.ts"
|
||||
|
||||
- name: Run unit tests
|
||||
|
||||
Reference in New Issue
Block a user