Align authorization queryset filters with the object-level permission check - #15783
Open
svader0 wants to merge 2 commits into
Open
Align authorization queryset filters with the object-level permission check#15783svader0 wants to merge 2 commits into
svader0 wants to merge 2 commits into
Conversation
… check The queryset filters scoped results by product membership for every action intent. The object-level check gates some intents on is_staff instead, so a route that relied on the queryset filter alone applied a weaker rule than the object-level check applied on the same operation. Return an empty queryset for those intents instead, so both layers agree.
|
This pull request contains a critical finding where a sensitive authorization file was modified by an unauthorized author.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in
|
| Vulnerability | Configured Sensitive Codepath Modified by Non-Allowed Author |
|---|---|
| Description | File 'dojo/authorization/query_registrations.py' matches configured sensitive codepath pattern 'dojo/authorization/*.py' and was modified by 'svader0' (commit 681141e) who is not in the allowed authors list. |
We've notified @mtesauro.
Comment to provide feedback on these findings.
Report false positive: @dryrunsecurity fp [FINDING ID] [FEEDBACK]
Report low-impact: @dryrunsecurity nit [FINDING ID] [FEEDBACK]
Example: @dryrunsecurity fp drs_90eda195 This code is not user-facing
All finding details can be found in the DryRun Security Dashboard.
These two tests asserted that a non-staff member reaches the bulk delete route and removes their own reference. The object-level check treats that intent as staff only, which the test one row above already asserts for the single delete route, so the bulk route now removes nothing for that caller. The direct tests of the reference helper are unchanged.
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.
Hardening and consistency improvement to the authorization queryset filters.
Some filters scoped a queryset by product membership for action intents that the object-level permission check treats differently, so the two layers could disagree on the same operation. This aligns them and adds a regression test.
It also updates two regression tests added by #15743. Those tests asserted the earlier behavior of one of the code paths this change touches, so they now assert the aligned behavior. The direct tests of the helper that #15743 added are unchanged.
No functional change for correctly-permissioned users.