Skip to content

Commit 6d2bffe

Browse files
committed
add fs.open/openSync as ZipSlip sinks
1 parent 2d67526 commit 6d2bffe

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

javascript/ql/src/semmle/javascript/security/dataflow/ZipSlipCustomizations.qll

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,13 @@ module ZipSlip {
108108
// to be a zipslip vulnerability since it may truncate an
109109
// existing file.
110110
this = NodeJSLib::Fs::moduleMember("createWriteStream").getACall().getArgument(0)
111+
or
112+
// Not covered by `FileSystemWriteSink` because a later call
113+
// to `fs.write` is required for a write to take place.
114+
exists(DataFlow::CallNode call | this = call.getArgument(0) |
115+
call = NodeJSLib::Fs::moduleMember(["open", "openSync"]).getACall() and
116+
call.getArgument(1).getStringValue().regexpMatch("(?i)w.{0,2}")
117+
)
111118
}
112119
}
113120

0 commit comments

Comments
 (0)