filtering out the staff details to non-staff roles hence fixing insec… #465
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.
Base Branch: 9.x
Note: This PR is made to
doubtfire-lms/doubtfire-apias an upstream contribution to resolve the IDOR vulnerability, after peer reviews, AppAttack verification, and mentor approval.Description
This PR resolves an Insecure Direct Object Reference (IDOR) vulnerability where non-privileged users (such as students) could access sensitive staff-related data (e.g.,
main_convenor_id,tutor_id,email,full_name) through the/api/units/:idendpoint.Access to these fields is now strictly role-based, ensuring that only authorized users (e.g., staff, convenors, admin, tutor) can access privileged information.
Reference PRs
Root Cause
The exposure originated in the
Entities::UnitEntityclass, which serializes backend models to JSON for API responses. It previously lacked role checks for sensitive fields, allowing information leakage to unauthorized users.Fix Summary
UnitEntityto conditionally expose::staff:main_convenor_id:tutor_id:email:overseer_image_idValidation Summary
/api/units/:idor related endpoints.Before: Student Accessing Staff Data
After: Staff Data Hidden from Students
After: Convenor Access Confirmed
Peer Review & Approval
Type of Change
How Has This Been Tested?
/api/units/:idand/api/unit_rolesChecklist