Skip to content

Commit 8af5d58

Browse files
committed
Upgrade XSJSUrlRedirect dataflow library
1 parent dad0275 commit 8af5d58

File tree

3 files changed

+17
-20
lines changed

3 files changed

+17
-20
lines changed

javascript/frameworks/xsjs/lib/advanced_security/javascript/frameworks/xsjs/XSJSUrlRedirectQuery.qll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ import javascript
22
import advanced_security.javascript.frameworks.xsjs.AsyncXSJS
33
import semmle.javascript.security.dataflow.ServerSideUrlRedirectQuery as UrlRedirect
44

5-
class Configuration extends UrlRedirect::Configuration {
6-
override predicate isSource(DataFlow::Node start) {
7-
super.isSource(start)
5+
module Configuration implements DataFlow::ConfigSig {
6+
predicate isSource(DataFlow::Node start) {
7+
UrlRedirect::ServerSideUrlRedirectConfig::isSource(start)
88
or
99
start instanceof RemoteFlowSource
1010
}
1111

12-
override predicate isSink(DataFlow::Node end) {
12+
predicate isSink(DataFlow::Node end) {
1313
exists(XSJSRequestOrResponseHeaders headers |
1414
end = headers.getHeaderSetCall("location").getArgument(1)
1515
)

javascript/frameworks/xsjs/src/XSJSUrlRedirect/XSJSUrlRedirect.ql

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,11 @@
1212

1313
import javascript
1414
import advanced_security.javascript.frameworks.xsjs.XSJSUrlRedirectQuery
15-
import DataFlow::PathGraph
1615

17-
from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink
18-
where config.hasFlowPath(source, sink)
16+
module ConfigurationFlow = TaintTracking::Global<Configuration>;
17+
18+
import ConfigurationFlow::PathGraph
19+
20+
from ConfigurationFlow::PathNode source, ConfigurationFlow::PathNode sink
21+
where ConfigurationFlow::flowPath(source, sink)
1922
select sink, source, sink, "$@ depends on a $@.", sink, "This URL", source, "user-provided value"
Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,10 @@
1-
WARNING: module 'PathGraph' has been deprecated and may be removed in future (XSJSUrlRedirect.ql:15,8-27)
2-
WARNING: type 'PathNode' has been deprecated and may be removed in future (XSJSUrlRedirect.ql:17,28-46)
3-
WARNING: type 'PathNode' has been deprecated and may be removed in future (XSJSUrlRedirect.ql:17,55-73)
4-
nodes
5-
| XSJSUrlRedirect.xsjs:7:7:7:65 | someParameterValue |
6-
| XSJSUrlRedirect.xsjs:7:28:7:65 | request ... meter") |
7-
| XSJSUrlRedirect.xsjs:7:28:7:65 | request ... meter") |
8-
| XSJSUrlRedirect.xsjs:9:38:9:55 | someParameterValue |
9-
| XSJSUrlRedirect.xsjs:9:38:9:55 | someParameterValue |
101
edges
11-
| XSJSUrlRedirect.xsjs:7:7:7:65 | someParameterValue | XSJSUrlRedirect.xsjs:9:38:9:55 | someParameterValue |
12-
| XSJSUrlRedirect.xsjs:7:7:7:65 | someParameterValue | XSJSUrlRedirect.xsjs:9:38:9:55 | someParameterValue |
13-
| XSJSUrlRedirect.xsjs:7:28:7:65 | request ... meter") | XSJSUrlRedirect.xsjs:7:7:7:65 | someParameterValue |
14-
| XSJSUrlRedirect.xsjs:7:28:7:65 | request ... meter") | XSJSUrlRedirect.xsjs:7:7:7:65 | someParameterValue |
2+
| XSJSUrlRedirect.xsjs:7:7:7:65 | someParameterValue | XSJSUrlRedirect.xsjs:9:38:9:55 | someParameterValue | provenance | |
3+
| XSJSUrlRedirect.xsjs:7:28:7:65 | request ... meter") | XSJSUrlRedirect.xsjs:7:7:7:65 | someParameterValue | provenance | |
4+
nodes
5+
| XSJSUrlRedirect.xsjs:7:7:7:65 | someParameterValue | semmle.label | someParameterValue |
6+
| XSJSUrlRedirect.xsjs:7:28:7:65 | request ... meter") | semmle.label | request ... meter") |
7+
| XSJSUrlRedirect.xsjs:9:38:9:55 | someParameterValue | semmle.label | someParameterValue |
8+
subpaths
159
#select
1610
| XSJSUrlRedirect.xsjs:9:38:9:55 | someParameterValue | XSJSUrlRedirect.xsjs:7:28:7:65 | request ... meter") | XSJSUrlRedirect.xsjs:9:38:9:55 | someParameterValue | $@ depends on a $@. | XSJSUrlRedirect.xsjs:9:38:9:55 | someParameterValue | This URL | XSJSUrlRedirect.xsjs:7:28:7:65 | request ... meter") | user-provided value |

0 commit comments

Comments
 (0)