Repository navigation
Conversation
Gate 1 of AssumeRole evaluates a built-in Cedar policy with what is remembered (nothing, the lease of a running `mairu exec`, the grant of the caller's terminal session) and, when only a fresh human check would permit the request, asks through the platform helper's new polkit backend. Unhardened agents keep permitting everything. polkit refuses details from non-root callers, so the action messages name no variables and the client prints the context instead. polkitd runs as its own system user, so that user is trusted as the owner of org.freedesktop.PolicyKit1 along with root. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Dg17LE9aWqsb1VBUCVcKLM
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Dg17LE9aWqsb1VBUCVcKLM
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements docs/specs/007-authorization.md.
cedar-policy4.14, no default features) with the strict schema and built-in policies (builtin-humanfor hardened agents,builtin-unhardenedotherwise); evaluation errors denyAssumeRole: remembered approvals (lease, then terminal-session grant) before a fresh presence check; pre-fetches never prompt; identical concurrent requests share one prompt keyed by peer and request digestzbus_polkit), pinned to the authority's unique name after an owner check, with cancellation on client disconnectRevokeAuthorizationsandmairu lock [--session] [--running];ClientContextfrom exec and credential-process;doctorshows session and authorization statepkg/polkit/co.0w0.mairu.policy, installed byhardenand the debmairuis ~29.5 MB with Cedar; the helper stays under 5 MB withoutclicodeDeviations recorded in the spec: polkit refuses
detailsfrom non-root callers, so prompts carry no role/server variables and the terminal prints the context instead; the PolicyKit1 owner may be uid 0 or thepolkitduser (never the agent's uid).Verified in Docker (52 checks) against a real dbus-daemon and polkitd 126, including
pkttyagentpassword prompts, grant reuse per terminal session,mairu lock, leases for runningmairu exec, and an untrusted PolicyKit1 owner failing closed.🤖 Generated with Claude Code
https://claude.ai/code/session_01Dg17LE9aWqsb1VBUCVcKLM