Skip to content

fix: Object create returns field values to a caller without read access (GHSA-qq3r-ppqq-rh6m) - #10813

Merged
mtrezza merged 2 commits into
parse-community:alphafrom
mtrezza:fix/GHSA-qq3r-ppqq-rh6m-9
Oct 21, 2026
Merged

mtrezza merged 2 commits into
parse-community:alphafrom
mtrezza:fix/GHSA-qq3r-ppqq-rh6m-9

Conversation

@mtrezza

@mtrezza mtrezza commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

Issue

Object create returns field values to a caller without read access (GHSA-qq3r-ppqq-rh6m)

Tasks

  • Add tests

@parse-github-assistant

Copy link
Copy Markdown

🚀 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.

Tip

  • Keep pull requests small. Large PRs will be rejected. Break complex features into smaller, incremental PRs.
  • Use Test Driven Development. Write failing tests before implementing functionality. Ensure tests pass.
  • Group code into logical blocks. Add a short comment before each block to explain its purpose.
  • We offer conceptual guidance. Coding is up to you. PRs must be merge-ready for human review.
  • Our review focuses on concept, not quality. PRs with code issues will be rejected. Use an AI agent.
  • Human review time is precious. Avoid review ping-pong. Inspect and test your AI-generated code.

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. Our CI and AI review are safeguards, not development tools. If many issues are flagged, rethink your development approach. Invest more effort in planning and design rather than using review cycles to fix low-quality code.

@coderabbitai

coderabbitai Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: af6e0463-4a66-47e6-8005-912a3f8b3247
📥 Commits

Reviewing files that changed from the base of the PR and between 72def51 and 6da8e10.

📒 Files selected for processing: 2
  • spec/vulnerabilities.spec.js
  • src/RestWrite.js

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

📝 Walkthrough

Create responses now record ACL-derived read access and filter stored values for callers without read permission. The changes cover system objects, updates, sign-up responses, session data, and related security regression tests.

Changes: Create response access

Layer / File(s) Summary
Record and check read access
src/RestWrite.js, spec/vulnerabilities.spec.js, spec/ParseACL.spec.js
Create writes record readable ACL entries. Response filtering evaluates access with an explicit ACL group and applies to create and update responses. Tests cover redaction, ACL values, system objects, batch creates, and ACL schema setup.
Handle special create contexts
src/RestWrite.js, spec/vulnerabilities.spec.js
Sign-up responses use the newly created user’s access context. Stored-object lookups resolve IDs from update queries or created data. Tests cover installations, roles, reverted fields, user updates, sign-up, session issuance, and auth-data login.

Priority: ➖ Normal

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: ⚪ Minimal · up to 6da8e

The inspected response-filtering paths present no identified merge-blocking risk; proceed with normal checks.

✅ Pre-merge checks override applied

The pre-merge checks have been overridden successfully. You can now proceed with the merge.

Overridden by @mtrezza via checkbox on 2026-10-20T21:16:47.453Z.

Failed Failed checks: 1 error

Check name Status Explanation Resolution
Description check Error [IGNORED] [IGNORED] The pull request has no description. It does not provide the required Issue, Approach, or Tasks information. Add a description that follows the repository template. State the issue addressed by GHSA-qq3r-ppqq-rh6m, summarize the security changes, and mark the applicable tasks as complete.
Passed Passed checks: 6 passed
Check name Status Explanation
Title check Passed The title starts with the allowed fix: prefix and identifies the security advisory with the capitalized GHSA identifier.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 3…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Security Check Passed No new security vulnerability is evident in the reviewed changes. RestWrite now records stored ACL readers and filters create and update response fields when the caller lacks object or class get a…
Engage In Review Feedback Passed PASS: The current review produced zero actionable findings, and no posted CodeRabbit review threads were returned. Therefore, no review feedback required engagement, implementation, or reviewer agreem…
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 3 files.

Full details: Security Check

Explanation

No new security vulnerability is evident in the reviewed changes. RestWrite now records stored ACL readers and filters create and update response fields when the caller lacks object or class get access. It fails closed when a permitted read cannot confirm visibility, preserves only explicit session and unchanged required-field echoes, and uses the new user identity for sign-up reads. The added regression tests cover ACLs, CLP, triggers, batch creates, system classes, updates, and sign-up flows.

Full details: Engage In Review Feedback

Explanation

PASS: The current review produced zero actionable findings, and no posted CodeRabbit review threads were returned. Therefore, no review feedback required engagement, implementation, or reviewer agreement.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Some tools did not complete. Review the errors below.

🔧 ast-grep (0.45.3)
spec/vulnerabilities.spec.js

ast-grep timed out on this file

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pre-merge checks failed. Please resolve the failing checks before merging.

coderabbitai[bot]
coderabbitai Bot previously approved these changes Oct 20, 2026
@codecov

codecov Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.06%. Comparing base (9e3da78) to head (6da8e10).
⚠️ Report is 1 commits behind head on alpha.

Additional details and impacted files
@@           Coverage Diff           @@
##            alpha   #10813   +/-   ##
=======================================
  Coverage   94.06%   94.06%           
=======================================
  Files         193      193           
  Lines       17360    17367    +7     
  Branches      259      259           
=======================================
+ Hits        16329    16337    +8     
+ Misses       1009     1008    -1     
  Partials       22       22           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@mtrezza mtrezza changed the title fix: GHSA-qq3r-ppqq-rh6m fix: Object create returns field values to a caller without read access (GHSA-qq3r-ppqq-rh6m) Oct 21, 2026
@mtrezza
mtrezza merged commit d95b14d into parse-community:alpha Oct 21, 2026
25 checks passed
parseplatformorg pushed a commit that referenced this pull request Oct 21, 2026
## [9.10.6-alpha.6](9.10.6-alpha.5...9.10.6-alpha.6) (2026-10-21)

### Bug Fixes

* Object create returns field values to a caller without read access ([GHSA-qq3r-ppqq-rh6m](GHSA-qq3r-ppqq-rh6m)) ([#10813](#10813)) ([d95b14d](d95b14d))
@parseplatformorg

Copy link
Copy Markdown
Contributor

🎉 This change has been released in version 9.10.6-alpha.6

@parseplatformorg parseplatformorg added the state:released-alpha Released as alpha version label Oct 21, 2026
@mtrezza
mtrezza deleted the fix/GHSA-qq3r-ppqq-rh6m-9 branch October 21, 2026 16:57
parseplatformorg pushed a commit that referenced this pull request Oct 22, 2026
## [9.10.6](9.10.5...9.10.6) (2026-10-22)

### Bug Fixes

* Object create returns field values to a caller without read access ([GHSA-qq3r-ppqq-rh6m](GHSA-qq3r-ppqq-rh6m)) ([#10813](#10813)) ([d95b14d](d95b14d))
* Object update returns stored field values to a caller without read access ([GHSA-2rcp-jc67-vq74](GHSA-2rcp-jc67-vq74)) ([#10798](#10798)) ([4f110a9](4f110a9))
* Object update with a dot notation key below a pointer field can terminate the server process ([GHSA-wc3c-6843-q7mv](GHSA-wc3c-6843-q7mv)) ([#10802](#10802)) ([946b670](946b670))
* Object write with a crafted dot notation key can pollute a shared prototype when the class has a trigger or LiveQuery ([GHSA-95hp-82c6-25q5](GHSA-95hp-82c6-25q5)) ([#10810](#10810)) ([9e3da78](9e3da78))
* Object write with a null dot notation key can corrupt a field or make reads fail on MongoDB ([GHSA-655c-2xf3-77x9](GHSA-655c-2xf3-77x9)) ([#10804](#10804)) ([b405b63](b405b63))
* Session upgrade endpoint creates an additional session from an already revocable session token ([GHSA-2j2x-c587-q33g](GHSA-2j2x-c587-q33g)) ([#10808](#10808)) ([5bcb56b](5bcb56b))
@parseplatformorg

Copy link
Copy Markdown
Contributor

🎉 This change has been released in version 9.10.6

@parseplatformorg parseplatformorg added the state:released Released as stable version label Oct 22, 2026
beiguancyc added a commit to beiguancyc/parse-server that referenced this pull request Oct 23, 2026
* release:
  chore(release): 9.10.6 [skip ci]
  empty commit to trigger CI
  chore(release): 9.10.6-alpha.6 [skip ci]
  fix: Object create returns field values to a caller without read access ([GHSA-qq3r-ppqq-rh6m](GHSA-qq3r-ppqq-rh6m)) (parse-community#10813)
  chore(release): 9.10.6-alpha.5 [skip ci]
  fix: Object write with a crafted dot notation key can pollute a shared prototype when the class has a trigger or LiveQuery ([GHSA-95hp-82c6-25q5](GHSA-95hp-82c6-25q5)) (parse-community#10810)
  chore(release): 9.10.6-alpha.4 [skip ci]
  fix: Session upgrade endpoint creates an additional session from an already revocable session token ([GHSA-2j2x-c587-q33g](GHSA-2j2x-c587-q33g)) (parse-community#10808)
  chore(release): 9.10.6-alpha.3 [skip ci]
  fix: Object write with a null dot notation key can corrupt a field or make reads fail on MongoDB ([GHSA-655c-2xf3-77x9](GHSA-655c-2xf3-77x9)) (parse-community#10804)
  chore(release): 9.10.6-alpha.2 [skip ci]
  fix: Object update with a dot notation key below a pointer field can terminate the server process ([GHSA-wc3c-6843-q7mv](GHSA-wc3c-6843-q7mv)) (parse-community#10802)
  docs: Clarify read access rules for update responses (parse-community#10801)
  docs: Document how read access limits update responses (parse-community#10800)
  chore(release): 9.10.6-alpha.1 [skip ci]
  fix: Object update returns stored field values to a caller without read access ([GHSA-2rcp-jc67-vq74](GHSA-2rcp-jc67-vq74)) (parse-community#10798)
  refactor: Track visited roles in a set during role hierarchy resolution (parse-community#10797)

# Conflicts:
#	package-lock.json
#	package.json
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

state:released Released as stable version state:released-alpha Released as alpha version

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants