Conversation
Design review — isolated job executionStrong direction and the core trust-boundary model is right (launcher owns Job creation, bot gets zero Job/Secret RBAC, symbolic secret allowlist, name-only template refs). Verified against the current proxy: multi-listener executor ( The one structural concern: the stated goal is "Claude never sees credentials," but returning raw job logs to the bot reintroduces that exposure for the job's secrets. Details below, then a recommendation to build this on OpenShell instead of a bespoke Job launcher. Threat findings1. Log leakage (central hole). Job mounts 2. Egress exfiltration. The doc says "No new NetworkPolicy — job pods use the same egress rules as bot pods." That's the wrong posture: the bot pod runs Claude; the job pod runs untrusted PR code with live creds mounted. Reusing the broad bot allowlist lets malicious code exfil via any allowlisted domain / SSO endpoint / DNS. Use a tighter per-job-type egress allowlist, distinct from the bot's. 3. REST command injection (ambiguous — nail it down). Intent reads as: bot sends 4. Config branch hijacking (Phase 2). Launcher clones the Additional:
Recommendation: build this on OpenShell, not a bespoke Job launcherGiven REHOR-115 (OpenShell sandbox migration) is in progress, a
The credential model is the key upgrade: creds are never plaintext inside the job pod, so verbose logs from untrusted code leak only an opaque placeholder — that resolves finding #1 rather than mitigating it, and removes the payoff of #2/#3. Two spikes gate this:
Non-blockers: no native command allowlist (restrict via curated image + Landlock filesystem scope + fixed seccomp — same image-control approach this design already uses); external Suggest folding this into REHOR-115 and gating on REHOR-119 (stage sandbox env). If E2E testing is needed before the stage sandbox is up, an interim may be warranted; otherwise wait for the migration. |
Description
RHCLOUD-XXXXX
Blast radius
Rollback plan
Checklist
latestAI disclosure