Repository navigation
fix: Dot notation operation on a missing field reveals whether the field is stored to a caller without read access (GHSA-4m87-fqwv-2m8v) - #10842
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. Tip
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. |
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Missing-path expansion and regression coverage src/Controllers/DatabaseController.js, spec/vulnerabilities.spec.js |
The controller keeps the current child object when a key-path segment is absent or is not an object. Specs cover update and create responses across missing paths, trigger configurations, MongoDB array indexes, and master-key requests. |
Priority:
Estimated code review effort: 3 (Moderate) | ~20 minutes
Merge Risk: 
Minimal · up to 72cb4
-
No merge-blocking issue was identified.
Caution
Pre-merge checks failed
Please resolve all errors before merging. Addressing warnings is optional.
- Ignore

Passed checks: 6 passed
-
Full details: Docstring Coverage
-
Explanation
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 2 files.
Full details: Security Check
-
Explanation
The changed controller code hardens
_expandResultOnKeyPathby requiring an own object property before descending into the database result. If a path is absent, it keeps the empty response child and does not read below the hidden path. The added GHSA-4m87-fqwv-2m8v tests cover missing parents, stored paths, master-key behavior, arrays, triggers, and SDK state cleanup. No new security-vulnerable pattern is introduced by the pull request.
Full details: Engage In Review Feedback
-
Explanation
PASS: No review feedback comments were supplied for this pull request. The current review produced zero actionable findings, and no CodeRabbit review threads were returned. There was therefore no feedback requiring engagement, implementation, or discussion.
-
Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Comment @coderabbitai help to get the list of available commands.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## alpha #10842 +/- ##
=======================================
Coverage 94.17% 94.17%
=======================================
Files 193 193
Lines 17378 17379 +1
Branches 246 246
=======================================
+ Hits 16366 16367 +1
Misses 991 991
Partials 21 21 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
## [9.10.8-alpha.1](9.10.7...9.10.8-alpha.1) (2026-10-29) ### Bug Fixes * Dot notation operation on a missing field reveals whether the field is stored to a caller without read access ([GHSA-4m87-fqwv-2m8v](GHSA-4m87-fqwv-2m8v)) ([#10842](#10842)) ([d88efed](d88efed))
|
🎉 This change has been released in version 9.10.8-alpha.1 |
# [9.11.0](9.10.7...9.11.0) (2026-11-03) ### Bug Fixes * Dot notation operation on a missing field reveals whether the field is stored to a caller without read access ([GHSA-4m87-fqwv-2m8v](GHSA-4m87-fqwv-2m8v)) ([#10842](#10842)) ([d88efed](d88efed)) * Installation update rejects a changed device type or installation ID before checking the caller's write permission ([#10847](#10847)) ([3373ee2](3373ee2)) * LiveQuery subscriptions can receive installations and objects of other internal classes without the master key ([GHSA-q2gf-q36j-h978](GHSA-q2gf-q36j-h978)) ([#10848](#10848)) ([3a1595b](3a1595b)) * Schema migration deletes internal indexes created on server start ([#10861](#10861)) ([d067fca](d067fca)) * Security upgrade Docker image from Node.js 20 to 24 ([#10851](#10851)) ([3bc3ba5](3bc3ba5)) ### Features * Add support for Node.js 26 ([#10860](#10860)) ([53f85c4](53f85c4))
|
🎉 This change has been released in version 9.11.0 |
Pull Request
Issue
Dot notation operation on a missing field reveals whether the field is stored to a caller without read access (GHSA-4m87-fqwv-2m8v)
Tasks