Skip to content

fix(sandbox): harden isolated supervisor startup - #3426

Merged
drew merged 1 commit into
mainfrom
hicks/push-nukrnrqxxvno
Sep 17, 2026
Merged

drew merged 1 commit into
mainfrom
hicks/push-nukrnrqxxvno

Conversation

@krishicks

@krishicks krishicks commented Sep 17, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

As part of the RFC-0012 changes, the Podman runtime moved trusted networking into a paired supervisor running as the resolved non-root identity, while the capability-free sandbox retained ownership of seccomp-mediated I/O. The supervisor still generated interception TLS material under the root-owned /etc/openshell-tls directory, and the sandbox treated the documented ENOENT notification race as a fatal listener failure.

This meant TLS interception could fail with a permission error, and an exiting target process could stop the network broker while the kernel was preparing its notification.

Now, we store generated supervisor TLS material in its writable /run tmpfs and retry ENOENT notification races while preserving fatal handling for other listener errors.

Related Issue

#2942
Fixes #3427

Changes

Testing

  • mise run pre-commit passes
  • Unit tests added/updated
  • E2E tests added/updated (if applicable)

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)
  • Architecture docs updated (if applicable)

As part of the RFC-0012 changes, the Podman runtime moved trusted networking
into a paired supervisor running as the resolved non-root identity, while the
capability-free sandbox retained ownership of seccomp-mediated I/O. The
supervisor still generated interception TLS material under the root-owned
/etc/openshell-tls directory, and the sandbox treated the documented ENOENT
notification race as a fatal listener failure.

This meant TLS interception could fail with a permission error, and an exiting
target process could stop the network broker while the kernel was preparing its
notification.

Now, we store generated supervisor TLS material in its writable /run tmpfs and
retry ENOENT notification races while preserving fatal handling for other
listener errors.

Signed-off-by: Kris Hicks <khicks@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Sep 17, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@krishicks krishicks added the test:e2e Requires end-to-end coverage label Sep 17, 2026
@github-actions

Copy link
Copy Markdown

Label test:e2e applied, but pull-request/3426 does not exist yet. A maintainer needs to comment /ok to test 902d528c173a4fe264b551f20406182742a9f28b to mirror this PR. Once the mirror exists, re-apply the label or re-run Branch E2E Checks from the Actions tab.

@krishicks
krishicks marked this pull request as ready for review September 17, 2026 19:42
@drew
drew enabled auto-merge September 17, 2026 19:43
@drew
drew added this pull request to the merge queue Sep 17, 2026
Merged via the queue into main with commit 1fe79f5 Sep 17, 2026
84 of 90 checks passed
@drew
drew deleted the hicks/push-nukrnrqxxvno branch September 17, 2026 20:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:e2e Requires end-to-end coverage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug(podman): unprivileged supervisor cannot initialize TLS CA, blocking provider traffic

2 participants