Skip to content

Add multi-identity Podman conformance harness - #69

Open
omry wants to merge 1 commit into
pr63from
pr69
Open

Add multi-identity Podman conformance harness#69
omry wants to merge 1 commit into
pr63from
pr69

Conversation

@omry

@omry omry commented Aug 14, 2026

Copy link
Copy Markdown
Owner

Add a private disposable conformance harness for exact sparse and bounded-range rootless Podman identity mappings.

Exercise identity transitions, capability drop, namespace isolation, persistent ownership, and Docker pre-mutation rejection across three fresh iterations per profile. Record host and source evidence, and require exact resource cleanup plus full Podman inventory restoration.

Update the security-contract acceptance ledger with mechanism evidence while leaving public schema and product runtime integration deferred.

@omry
omry changed the base branch from main to pr63 August 14, 2026 21:37
@omry
omry marked this pull request as ready for review August 14, 2026 21:41
Copilot AI lite review requested due to automatic review settings August 14, 2026 21:41

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@omry

omry commented Aug 14, 2026

Copy link
Copy Markdown
Owner Author

@codex review efc8acb

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: efc8acb8b5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/conformance/multiidentity/conformance.py Outdated
Comment thread tools/conformance/multiidentity/conformance.py Outdated
Comment thread tools/conformance/multiidentity/probe/main.go Outdated
@omry

omry commented Aug 14, 2026

Copy link
Copy Markdown
Owner Author

@codex review c68c34b

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c68c34b8e1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/MULTI_IDENTITY_SECURITY_CONTRACT.md Outdated
Comment thread tools/conformance/multiidentity/Containerfile Outdated
@omry

omry commented Aug 14, 2026

Copy link
Copy Markdown
Owner Author

@codex review b293275

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b293275360

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/conformance/multiidentity/probe/main.go Outdated
@omry

omry commented Aug 14, 2026

Copy link
Copy Markdown
Owner Author

@codex review 4e3920e

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4e3920ee33

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/conformance/multiidentity/conformance.py
@omry

omry commented Aug 14, 2026

Copy link
Copy Markdown
Owner Author

@codex review 8d4f731

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8d4f731b61

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/conformance/multiidentity/conformance.py Outdated
Add a private disposable conformance harness for exact sparse and bounded-range rootless Podman identity mappings.

Exercise identity transitions, capability drop, namespace isolation, persistent ownership, and Docker pre-mutation rejection across three fresh iterations per profile. Record host and source evidence, and require exact resource cleanup plus full Podman inventory restoration.

Update the security-contract acceptance ledger with mechanism evidence while leaving public schema and product runtime integration deferred.
@omry

omry commented Aug 14, 2026

Copy link
Copy Markdown
Owner Author

@codex review a159fd7

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a159fd7092

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

)
require_pass("unfiltered seccomp control", seccomp_control)

authority = assert_host_authority(runner, uid_maps, gid_maps)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Validate mapped host authority before launching workloads

On a host where the selected mapping aliases an NSS principal or another delegation, both containers have already started and executed application probes before this validation runs, so the harness detects the collision only after exercising the authority that the contract requires it to reject before workload start. Fresh evidence is that the newly added synthetic collision cases are also invoked only through this post-start call; preflight the planned host mappings before either podman run.

Useful? React with 👍 / 👎.

Comment on lines +885 to +888
no_cap_name = f"reploy-mi-{token}-{profile}-{iteration}-nocap"
no_cap_args = common_run_args(
no_cap_name, seccomp_path, profile, 2, capabilities=False
)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Include auxiliary containers in host-authority validation

When a collision falls in the host range selected for the no-capability or unconfined-control container but not either primary workload, the harness executes that container and can still pass because assert_host_authority receives only the two primary containers' maps. This affects both exact slots 2/3 and bounded auto allocations; capture and validate every auxiliary mapping before using it so these security controls cannot run under aliased host authority.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants