Merge pull request #5995 from erik-krogh/webpack-merge

Approved by esbena
This commit is contained in:
CodeQL CI
2021-06-03 01:38:08 -07:00
committed by GitHub
4 changed files with 31 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
lgtm,codescanning
* The security queries recognize the merge call from [webpack-merge](https://npmjs.com/package/webpack-merge).
Affected packages are
[webpack-merge](https://npmjs.com/package/webpack-merge)

View File

@@ -188,3 +188,23 @@ private class CloneStep extends PreCallGraphStep {
)
}
}
/**
* A deep extend call from the [webpack-merge](https://npmjs.org/package/webpack-merge) library.
*/
private class WebpackMergeDeep extends ExtendCall, DataFlow::CallNode {
WebpackMergeDeep() {
this = DataFlow::moduleMember("webpack-merge", "merge").getACall()
or
this =
DataFlow::moduleMember("webpack-merge", ["mergeWithCustomize", "mergeWithRules"])
.getACall()
.getACall()
}
override DataFlow::Node getASourceOperand() { result = getAnArgument() }
override DataFlow::Node getDestinationOperand() { none() }
override predicate isDeep() { any() }
}

View File

@@ -41,3 +41,5 @@
| tst.js:79:1:79:45 | checkSh ... arg())) | OK |
| tst.js:80:1:80:55 | checkSh ... arg())) | OK |
| tst.js:81:1:81:51 | checkSh ... arg())) | OK |
| tst.js:85:1:85:44 | checkDe ... arg())) | OK |
| tst.js:86:1:86:61 | checkDe ... arg())) | OK |

View File

@@ -79,3 +79,8 @@ checkShallow(require('lodash').extend(base(), arg()));
checkShallow(require("xtend")(base(), arg()));
checkShallow(require("xtend/immutable")(base(), arg()));
checkShallow(require("ramda").merge(base(), arg()));
// webpack-merge. deep.
const webpackMerge = require('webpack-merge');
checkDeep(webpackMerge.merge(base(), arg()));
checkDeep(webpackMerge.mergeWithCustomize({})(base(), arg()));