fix: Parse Server role escalation and CLP bypass via direct _Join table write (GHSA-5f92-jrq3-28rc)#10141
Conversation
|
🚀 Thanks for opening this pull request! We appreciate your effort in improving the project. Please let us know once your pull request is ready for review. Note Please respond to review comments from AI agents just like you would to comments from a human reviewer. Let the reviewer resolve their own comments, unless they have reviewed and accepted your commit, or agreed with your explanation for why the feedback was incorrect. Caution Pull requests must be written using an AI agent with human supervision. Pull requests written entirely by a human will likely be rejected, because of lower code quality, higher review effort and the higher risk of introducing bugs. Please note that AI review comments on this pull request alone do not satisfy this requirement. |
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
📝 WalkthroughWalkthroughThe changes implement security restrictions for internal _Join table collections by adding an access-control check that prevents non-master and non-maintenance users from performing operations on these tables. Accompanying helper and test updates validate the enforcement. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes 🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
spec/rest.spec.js (1)
1010-1014: Cover the maintenance-key write branch explicitly.
enforceRoleSecurityexemptsauth.isMaintenancefor every_Join:method, but this suite only pins the read path. Adding one direct write assertion with the maintenance key would lock down that privilege boundary and make future changes less ambiguous.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@spec/rest.spec.js` around lines 1010 - 1014, Add an explicit test that exercises the maintenance-key write branch by invoking a write operation (e.g., rest.create or rest.update) against the _Join table name '_Join:users:_Role' using auth.maintenance(config) and assert it resolves; specifically, add an it(...) that calls rest.create(config, auth.maintenance(config), '_Join:users:_Role', {/* minimal body */}) (or rest.update with an appropriate id/body) and expects the promise to be resolved to cover the write-path protected by enforceRoleSecurity.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@spec/rest.spec.js`:
- Around line 1010-1014: Add an explicit test that exercises the maintenance-key
write branch by invoking a write operation (e.g., rest.create or rest.update)
against the _Join table name '_Join:users:_Role' using auth.maintenance(config)
and assert it resolves; specifically, add an it(...) that calls
rest.create(config, auth.maintenance(config), '_Join:users:_Role', {/* minimal
body */}) (or rest.update with an appropriate id/body) and expects the promise
to be resolved to cover the write-path protected by enforceRoleSecurity.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 5d855c2a-05cd-4803-b219-6aa9b9d03313
📒 Files selected for processing (3)
spec/helper.jsspec/rest.spec.jssrc/SharedRest.js
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
## [9.5.2-alpha.7](9.5.2-alpha.6...9.5.2-alpha.7) (2026-03-08) ### Bug Fixes * Parse Server role escalation and CLP bypass via direct `_Join table write ([GHSA-5f92-jrq3-28rc](https://github.com/parse-community/parse-server/security/advisories/GHSA-5f92-jrq3-28rc)) ([#10141](#10141)) ([22faa08](22faa08))
|
🎉 This change has been released in version 9.5.2-alpha.7 |
_Join table write (GHSA-5f92-jrq3-28rc)
Pull Request
Issue
Parse Server role escalation and CLP bypass via direct `_Join table write (GHSA-5f92-jrq3-28rc)
Tasks
Summary by CodeRabbit
Release Notes
Security
Tests