Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix autonomous managed capabilities #733

Merged
merged 3 commits into from
Nov 21, 2019
Merged

Conversation

sirlensalot
Copy link
Contributor

Allows install-capability to be called anywhere, by closing the leak exposed by unscoped signatures.

install-capability simply mimics the "specify-for-install" part of sig scopes. However, this would be a horrible leak if unscoped signatures could now be in scope for a managed capability installed thus. The fix is to make unscoped signatures unavailable to the environment if any autonomously-installed caps are present.

Otherwise, signature scoping prevents install from doing any harm. Autonomous install of a user capability when the associated signature is not scoped to that capability will result in failure to acquire the capability, so this is safe. A user attempting to fool an autonomous authority with a direct call to install-capability will fail for the same reason such an acquire would fail normally, as the module guard would prevent it.

Indeed, autonomous guards are carefully scoped already, and the whole motivation of signature scopes is that signatures were not so scoped. With this change, autonomous caps can return to their inherent security by self-installing the capability before attempting to acquire it, and any other install is harmless by construction. Meanwhile, the one hole left in signature scoping is closed whenever any autonomous install is conducted.

@sirlensalot sirlensalot merged commit ac0d261 into master Nov 21, 2019
@sirlensalot sirlensalot deleted the feat/autonomous-install-caps branch November 21, 2019 00:53
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