Skip to content

Commit d3ae4c9

Browse files
committed
JS: Model newer yargs command-line parsing pattern
1 parent 3448751 commit d3ae4c9

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

javascript/ql/lib/semmle/javascript/frameworks/CommandLineArguments.qll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ private class DefaultModels extends CommandLineArguments::Range {
7474
or
7575
// `require('commander').opt()` => `{a: ..., b: ...}`
7676
this = commander().getMember("opts").getACall()
77+
or
78+
this = API::moduleImport("yargs/yargs").getReturn().getMember("argv").asSource()
7779
}
7880
}
7981

javascript/ql/test/library-tests/threat-models/sources/sources.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const yargs = require('yargs/yargs');
1313
const { hideBin } = require('yargs/helpers');
1414
const argv = yargs(hideBin(process.argv)).argv; // $ threat-source=commandargs
1515

16-
SINK(argv.foo); // $ MISSING: hasFlow
16+
SINK(argv.foo); // $ hasFlow
1717

1818
// older version
1919
// https://www.npmjs.com/package/yargs/v/7.1.2

0 commit comments

Comments
 (0)