mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-16 11:49:28 +00:00
The kube-ax probe showed bwrap cannot map uids in gVisor as an unprivileged user. As root (gVisor is the outer boundary) the sandbox uses pid/ipc/uts/net/mount namespaces without a user namespace and drops the artefact to its own uid via setpriv; the mode is recorded. The probe reports each namespace kind separately. Co-Authored-By: Claude Opus 5.5 <[email protected]>
22 lines
1.1 KiB
Python
22 lines
1.1 KiB
Python
from pathlib import Path
|
|
|
|
import yaml
|
|
|
|
|
|
def test_image_matches_runner_and_publishes_digest():
|
|
engine = Path("plane/Dockerfile.engine-task").read_text()
|
|
image = Path("plane/Dockerfile.search-task").read_text()
|
|
runner = "FROM ghcr.io/norandom/ax-task-runner:v0.3.1"
|
|
assert runner in engine and runner in image
|
|
for package in ("python3", "nodejs", "node-typescript", "php-cli", "sqlite3", "bubblewrap", "util-linux", "chromium"):
|
|
assert package in image
|
|
assert image.rsplit("USER ", 1)[1].startswith("root\n")
|
|
assert "--uid 10001 --gid 10001 search" in image
|
|
assert "setpriv --version" in image
|
|
assert "17-jdk" in image and "--no-install-recommends" in image
|
|
assert "rm -rf /var/lib/apt/lists/" in image
|
|
workflow_text = Path(".github/workflows/engine-image.yml").read_text()
|
|
entries = yaml.safe_load(workflow_text)["jobs"]["image"]["strategy"]["matrix"]["include"]
|
|
assert {"package": "ousast-search-task", "dockerfile": "plane/Dockerfile.search-task"} in entries
|
|
assert "steps.build.outputs.digest" in workflow_text and "push: true" in workflow_text
|