Fix: Implement principal-centric multi-policy privilege escalation de… #486
+129
−11
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.
🛡️ Feature: Detect Multi-Policy Privilege Escalation Per Principal
Fixes #188
What’s this PR about?
Cloudsplaining previously analyzed privilege escalation per policy, which could miss risks that only appear when multiple policies are combined for a single principal.
This PR fixes that by:
Key Changes
PolicyDocument.merge_policy_documents()
incloudsplaining/scan/policy_document.py
to combine multiple policies into one.allows_privilege_escalation()
now works on the merged policy for accurate detection.Deny
statements correctly overrideAllow
in merged policies.✅ Checklist
make test
,make lint
,make security-test
) pass