Skip to content

Commit 94e2676

Browse files
committed
naive conversion of ldapjs model to API node
1 parent f48c418 commit 94e2676

File tree

1 file changed

+14
-14
lines changed
  • javascript/ql/src/experimental/Security/CWE-090

1 file changed

+14
-14
lines changed

javascript/ql/src/experimental/Security/CWE-090/Ldapjs.qll

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,35 +15,35 @@ module Ldapjs {
1515
/**
1616
* Gets a data flow source node for an LDAP client.
1717
*/
18-
abstract class LdapClient extends DataFlow::SourceNode { }
18+
abstract class LdapClient extends API::Node { }
1919

2020
/**
2121
* Gets a data flow source node for the ldapjs library.
2222
*/
23-
private DataFlow::SourceNode ldapjs() { result = DataFlow::moduleImport("ldapjs") }
23+
private API::Node ldapjs() { result = API::moduleImport("ldapjs") }
2424

2525
/**
2626
* Gets a data flow source node for the ldapjs client.
2727
*/
2828
class LdapjsClient extends LdapClient {
29-
LdapjsClient() { this = ldapjs().getAMemberCall("createClient") }
29+
LdapjsClient() { this = ldapjs().getMember("createClient").getReturn() }
3030
}
3131

3232
/**
3333
* Gets a data flow node for the client `search` options.
3434
*/
35-
class LdapjsSearchOptions extends DataFlow::SourceNode {
36-
DataFlow::CallNode queryCall;
35+
class LdapjsSearchOptions extends API::Node {
36+
API::CallNode queryCall;
3737

3838
LdapjsSearchOptions() {
39-
queryCall = any(LdapjsClient client).getAMemberCall("search") and
40-
this = queryCall.getArgument(1).getALocalSource()
39+
queryCall = any(LdapjsClient client).getMember("search").getACall() and
40+
this = queryCall.getParameter(1)
4141
}
4242

4343
/**
4444
* Gets the LDAP query call that these options are used in.
4545
*/
46-
DataFlow::InvokeNode getQueryCall() { result = queryCall }
46+
API::CallNode getQueryCall() { result = queryCall }
4747
}
4848

4949
/**
@@ -52,20 +52,20 @@ module Ldapjs {
5252
class LdapjsSearchFilter extends DataFlow::Node {
5353
LdapjsSearchOptions options;
5454

55-
LdapjsSearchFilter() { this = options.getAPropertyWrite("filter").getRhs() }
55+
LdapjsSearchFilter() { this = options.getMember("filter").getARhs() }
5656

5757
/**
5858
* Gets the LDAP query call that this filter is used in.
5959
*/
60-
DataFlow::InvokeNode getQueryCall() { result = options.getQueryCall() }
60+
API::CallNode getQueryCall() { result = options.getQueryCall() }
6161
}
6262

6363
/**
6464
* A call to the ldapjs Client API methods.
6565
*/
66-
class LdapjsClientAPICall extends DataFlow::CallNode {
66+
class LdapjsClientAPICall extends API::CallNode {
6767
LdapjsClientAPICall() {
68-
this = any(LdapjsClient client).getAMemberCall(getLdapjsClientDNMethodName())
68+
this = any(LdapjsClient client).getMember(getLdapjsClientDNMethodName()).getACall()
6969
}
7070
}
7171

@@ -80,13 +80,13 @@ module Ldapjs {
8080
/**
8181
* Gets the LDAP query call that this DN is used in.
8282
*/
83-
DataFlow::InvokeNode getQueryCall() { result = queryCall }
83+
API::CallNode getQueryCall() { result = queryCall }
8484
}
8585

8686
/**
8787
* Ldapjs parseFilter method call.
8888
*/
8989
class LdapjsParseFilter extends DataFlow::CallNode {
90-
LdapjsParseFilter() { this = ldapjs().getAMemberCall("parseFilter") }
90+
LdapjsParseFilter() { this = ldapjs().getMember("parseFilter").getACall() }
9191
}
9292
}

0 commit comments

Comments
 (0)