@@ -56,20 +56,6 @@ private module JsonWebToken {
5656 * Provides classes and predicates modeling the `jose` library.
5757 */
5858private module Jose {
59- /**
60- * A taint-step for `succ = jose.base64url.encode(pred)` or `succ = jose.base64url.decode(pred)`.
61- */
62- private class Base64urlStep extends TaintTracking:: SharedTaintStep , DataFlow:: SharedFlowStep {
63- override predicate step ( DataFlow:: Node pred , DataFlow:: Node succ ) {
64- exists ( API:: Node n |
65- n = API:: moduleImport ( "jose" ) .getMember ( "base64url" ) .getMember ( [ "decode" , "encode" ] )
66- |
67- pred = n .getACall ( ) .getArgument ( 0 ) and
68- succ = n .getACall ( )
69- )
70- }
71- }
72-
7359 /**
7460 * The asymmetric key or symmetric secret for verifying a JWT as a `CredentialsNode`.
7561 */
@@ -162,29 +148,3 @@ private module PassportJwt {
162148 override string getCredentialsKind ( ) { result = "key" }
163149 }
164150}
165-
166- /**
167- * A taint-step for `succ = new TextEncoder().encode(pred)`.
168- */
169- private class TextEncoderStep extends TaintTracking:: SharedTaintStep , DataFlow:: SharedFlowStep {
170- override predicate step ( DataFlow:: Node pred , DataFlow:: Node succ ) {
171-
172- exists ( DataFlow:: CallNode n | n = DataFlow:: globalVarRef ( "TextEncoder" ) .getAnInstantiation ( ) .getAMemberCall ( "encode" ) |
173- pred = n .getArgument ( 0 ) and
174- succ = n and
175- n .getLocation ( ) .getFile ( ) .getRelativePath ( ) .matches ( "%HardcodedCredentials.js%" )
176- )
177- }
178- }
179-
180- /**
181- * A taint-step for `succ = Buffer.from(pred, "base64")`.
182- */
183- private class BufferFromStep extends TaintTracking:: SharedTaintStep , DataFlow:: SharedFlowStep {
184- override predicate step ( DataFlow:: Node pred , DataFlow:: Node succ ) {
185- exists ( DataFlow:: CallNode n | n = DataFlow:: globalVarRef ( "Buffer" ) .getAMemberCall ( "from" ) |
186- pred = n .getArgument ( 0 ) and
187- succ = [ n , n .getAChainedMethodCall ( [ "toString" , "toJSON" ] ) ]
188- )
189- }
190- }
0 commit comments