Skip to content

Commit e7d1b12

Browse files
committed
add test
1 parent 6d2bffe commit e7d1b12

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

javascript/ql/test/query-tests/Security/CWE-022/ZipSlip/ZipSlip.expected

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ nodes
2424
| ZipSlipBad.js:15:22:15:31 | entry.path |
2525
| ZipSlipBad.js:16:30:16:37 | fileName |
2626
| ZipSlipBad.js:16:30:16:37 | fileName |
27+
| ZipSlipBad.js:22:11:22:31 | fileName |
28+
| ZipSlipBad.js:22:22:22:31 | entry.path |
29+
| ZipSlipBad.js:22:22:22:31 | entry.path |
30+
| ZipSlipBad.js:23:28:23:35 | fileName |
31+
| ZipSlipBad.js:23:28:23:35 | fileName |
2732
| ZipSlipBadUnzipper.js:7:9:7:29 | fileName |
2833
| ZipSlipBadUnzipper.js:7:20:7:29 | entry.path |
2934
| ZipSlipBadUnzipper.js:7:20:7:29 | entry.path |
@@ -46,6 +51,10 @@ edges
4651
| ZipSlipBad.js:15:11:15:31 | fileName | ZipSlipBad.js:16:30:16:37 | fileName |
4752
| ZipSlipBad.js:15:22:15:31 | entry.path | ZipSlipBad.js:15:11:15:31 | fileName |
4853
| ZipSlipBad.js:15:22:15:31 | entry.path | ZipSlipBad.js:15:11:15:31 | fileName |
54+
| ZipSlipBad.js:22:11:22:31 | fileName | ZipSlipBad.js:23:28:23:35 | fileName |
55+
| ZipSlipBad.js:22:11:22:31 | fileName | ZipSlipBad.js:23:28:23:35 | fileName |
56+
| ZipSlipBad.js:22:22:22:31 | entry.path | ZipSlipBad.js:22:11:22:31 | fileName |
57+
| ZipSlipBad.js:22:22:22:31 | entry.path | ZipSlipBad.js:22:11:22:31 | fileName |
4958
| ZipSlipBadUnzipper.js:7:9:7:29 | fileName | ZipSlipBadUnzipper.js:8:37:8:44 | fileName |
5059
| ZipSlipBadUnzipper.js:7:9:7:29 | fileName | ZipSlipBadUnzipper.js:8:37:8:44 | fileName |
5160
| ZipSlipBadUnzipper.js:7:20:7:29 | entry.path | ZipSlipBadUnzipper.js:7:9:7:29 | fileName |
@@ -57,4 +66,5 @@ edges
5766
| ZipSlipBad2.js:6:22:6:29 | fileName | ZipSlipBad2.js:5:37:5:46 | entry.path | ZipSlipBad2.js:6:22:6:29 | fileName | Unsanitized zip archive $@, which may contain '..', is used in a file system operation. | ZipSlipBad2.js:5:37:5:46 | entry.path | item path |
5867
| ZipSlipBad.js:8:37:8:44 | fileName | ZipSlipBad.js:7:22:7:31 | entry.path | ZipSlipBad.js:8:37:8:44 | fileName | Unsanitized zip archive $@, which may contain '..', is used in a file system operation. | ZipSlipBad.js:7:22:7:31 | entry.path | item path |
5968
| ZipSlipBad.js:16:30:16:37 | fileName | ZipSlipBad.js:15:22:15:31 | entry.path | ZipSlipBad.js:16:30:16:37 | fileName | Unsanitized zip archive $@, which may contain '..', is used in a file system operation. | ZipSlipBad.js:15:22:15:31 | entry.path | item path |
69+
| ZipSlipBad.js:23:28:23:35 | fileName | ZipSlipBad.js:22:22:22:31 | entry.path | ZipSlipBad.js:23:28:23:35 | fileName | Unsanitized zip archive $@, which may contain '..', is used in a file system operation. | ZipSlipBad.js:22:22:22:31 | entry.path | item path |
6070
| ZipSlipBadUnzipper.js:8:37:8:44 | fileName | ZipSlipBadUnzipper.js:7:20:7:29 | entry.path | ZipSlipBadUnzipper.js:8:37:8:44 | fileName | Unsanitized zip archive $@, which may contain '..', is used in a file system operation. | ZipSlipBadUnzipper.js:7:20:7:29 | entry.path | item path |

javascript/ql/test/query-tests/Security/CWE-022/ZipSlip/ZipSlipBad.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,10 @@ fs.createReadStream('archive.zip')
1515
const fileName = entry.path;
1616
entry.pipe(Writer({path: fileName}));
1717
});
18+
19+
fs.createReadStream('archive.zip')
20+
.pipe(unzip.Parse())
21+
.on('entry', entry => {
22+
const fileName = entry.path;
23+
var file = fs.openSync(fileName, "w");
24+
});

javascript/ql/test/query-tests/Security/CWE-022/ZipSlip/externs.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,12 @@ fs.writeFileSync = function(filename, data) {};
1515
* @param {(string|Buffer)} dstpath
1616
* @return {void}
1717
*/
18-
fs.linkSync = function(srcpath, dstpath) {};
18+
fs.linkSync = function(srcpath, dstpath) {};
19+
20+
/**
21+
* @param {(string|Buffer)} path
22+
* @param {(string|number)} flags
23+
* @param {number=} mode
24+
* @return {number}
25+
*/
26+
fs.openSync = function(path, flags, mode) {};

0 commit comments

Comments
 (0)