Skip to content

Commit f1b24ba

Browse files
committed
use type inference to detect string concatenations
1 parent f634c62 commit f1b24ba

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

javascript/ql/src/Security/CWE-327/BadRandomness.ql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import javascript
1414
private import semmle.javascript.dataflow.internal.StepSummary
1515
private import semmle.javascript.security.dataflow.InsecureRandomnessCustomizations
16+
private import semmle.javascript.dataflow.InferredTypes
1617

1718
/**
1819
* Gets a number that is a power of 2.
@@ -119,7 +120,8 @@ private DataFlow::Node goodRandom(DataFlow::TypeTracker t, DataFlow::SourceNode
119120
or
120121
binop.getOperator() = "*" and isPowerOfTwo().asExpr() = binop.getAnOperand()
121122
or
122-
binop.getOperator() = "+" and exists(binop.getAnOperand().getStringValue()) // string concat does not produce a number
123+
// string concat does not produce a number
124+
unique(InferredType type | type = binop.flow().analyze().getAType()) = TTString()
123125
)
124126
}
125127

0 commit comments

Comments
 (0)