build(deps): update dependency dottie to v2.0.7 [security]#374
Open
renovate[bot] wants to merge 1 commit intomasterfrom
Open
build(deps): update dependency dottie to v2.0.7 [security]#374renovate[bot] wants to merge 1 commit intomasterfrom
renovate[bot] wants to merge 1 commit intomasterfrom
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #374 +/- ##
=======================================
Coverage 92.67% 92.67%
=======================================
Files 15 15
Lines 232 232
=======================================
Hits 215 215
Misses 17 17 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
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.
This PR contains the following updates:
2.0.6→2.0.7GitHub Vulnerability Alerts
CVE-2026-27837
Summary
dottie versions 2.0.4 through 2.0.6 contain an incomplete fix for CVE-2023-26132. The prototype pollution guard introduced in commit
7d3aee1only validates the first segment of a dot-separated path, allowing an attacker to bypass the protection by placing__proto__at any position other than the first.Both
dottie.set()anddottie.transform()are affected.Details
The existing guard checks only
pieces[0] === '__proto__'. When a path like'a.__proto__.polluted'is used,pieces[0]evaluates to'a', not'__proto__', so the guard is bypassed.Inside the traversal loop,
current['__proto__'] = {}triggers the__proto__setter, replacing the intermediate object's prototype. The final value is then written onto this new prototype.Important distinction: This vulnerability does NOT pollute the global
Object.prototype. It injects properties into a specific object's prototype chain. However, injected properties are invisible tohasOwnProperty()andObject.keys(), which makes them difficult to detect and can lead to authorization bypass in common coding patterns.PoC
Tested on Node.js v20 and v22, dottie 2.0.6, Windows 11.
Impact
The primary risk is authorization bypass. In a typical server-side scenario where dottie is used to process user input (e.g., via Sequelize, which depends on dottie with ~1.3M weekly npm downloads), an attacker can inject properties like
isAdmin: trueinto objects used for access control decisions. Since the injected property is not an own property, standard checks usinghasOwnProperty()orObject.keys()will not reveal it, while property access likeif (session.isAdmin)will returntrue.Additionally, replacing an object's prototype via
current['__proto__'] = {}strips all inherited methods, potentially causing TypeError exceptions and denial of service.Release Notes
mickhansen/dottie.js (dottie)
v2.0.7Compare Source
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.