| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
There was a problem hiding this comment.
A codex-assisted review:
I think this still fails closed incorrectly for the Podman path. drop_capability_bounding_set() returns Ok(()) when CAP_SETPCAP is
not effective, and also when the first PR_CAPBSET_DROP returns EPERM. But the Podman driver currently drops SETPCAP from the
supervisor container, so that path leaves the child bounding set unchanged while still spawning the workload/connect shell.
Could we either keep SETPCAP available to the supervisor until child setup, or fail the spawn when the bounding set cannot be cleared
and is still nonempty? This may also be a good place to use capctl rather than custom /proc parsing and raw prctl;
capctl::caps::bounding::clear() plus an explicit “EPERM is only OK if the bounding set is already empty” check would make the invariant
clearer.
The current regression test skips when CAP_SETPCAP is unavailable, so it would not catch the Podman-relevant failure mode.
Sorry, something went wrong.
+1. Seems like different drivers can do different drops on their own which would impact this common code that runs driver-agnostically. |
Sorry, something went wrong.
|
@johntmyers @elezar I have implemented the requested changes |
Sorry, something went wrong.
|
looks good @alangou - will need to update the README for openshell-driver-podman as it still mentions SETPCAP is dropped |
Sorry, something went wrong.
Reduce the Linux capability bounding set in the common privilege-drop path before executing sandbox workloads or connect shells and use capctl Signed-off-by: Adrien Langou <alangou@nvidia.com>
|
@johntmyers the readme is updated (auto-merge is enable) |
Sorry, something went wrong.
|
Label test:e2e applied for b0bb43b. Open the existing run and click Re-run all jobs to execute with the label set. The run will execute the standard E2E suite after building the required gateway and supervisor images once. The matching required CI gate status on this PR will flip green automatically once the run finishes. |
Sorry, something went wrong.
The OpenShell gateway defaults to pulling ghcr.io/nvidia/openshell/supervisor:latest for the sandbox supervisor binary. When NVIDIA released v0.0.73 (2026-06-30 15:31 UTC), the :latest tag was re-pointed to a supervisor that drops the Linux capability bounding set (NVIDIA/OpenShell#2001), which crashes with EINVAL in rootless Podman on GitHub Actions runners. Write a gateway.toml that pins supervisor_image to the version from openshell-version.sh so the supervisor always matches the installed gateway and is immune to upstream :latest tag changes. Fixes fullsend-ai#2792 Assisted-by: Claude (investigation, fix) Signed-off-by: Wayne Sun <gsun@redhat.com>
| Back | FazBrowse Home | New Git URL |
Summary
Drop the Linux capability bounding set in the common sandbox child privilege-drop path so workloads and openshell connect shells cannot regain container-granted capabilities after exec.
Related Issue
Closes #1452
Changes
Testing
Additional checks run:
Checklist