Skip to content

Commit 144b060

Browse files
committed
fix(arborist): sanitize packageName through nameFromFolder in proxy objects
The proxy objects used in .store path construction got packageName directly from node.packageName (raw package.json name) without sanitization. nameFromFolder was only used as a fallback when packageName was null. Now wraps the primary source through nameFromFolder so traversal sequences like ../../evil in package.json name fields are stripped before reaching path.join in store path construction.
1 parent f9877e8 commit 144b060

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

workspaces/arborist/lib/arborist/isolated-reifier.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ module.exports = cls => class IsolatedReifier extends cls {
192192
result.id = this.counter++
193193
/* istanbul ignore next - packageName is always set for real packages */
194194
result.name = result.isWorkspace ? (node.packageName || node.name) : node.name
195-
result.packageName = node.packageName || nameFromFolder(node.path)
195+
result.packageName = nameFromFolder(node.packageName) || nameFromFolder(node.path)
196196
result.package = { ...node.package }
197197
result.package.bundleDependencies = undefined
198198

0 commit comments

Comments
 (0)