File tree Expand file tree Collapse file tree 2 files changed +15
-5
lines changed
lib/codeql/ruby/frameworks
test/library-tests/frameworks/Twirp Expand file tree Collapse file tree 2 files changed +15
-5
lines changed Original file line number Diff line number Diff line change @@ -16,7 +16,7 @@ module Twirp {
16
16
/**
17
17
* A Twirp service instantiation
18
18
*/
19
- class ServiceInstantiation extends DataFlow:: CallNode {
19
+ deprecated class ServiceInstantiation extends DataFlow:: CallNode {
20
20
ServiceInstantiation ( ) {
21
21
this = API:: getTopLevelMember ( "Twirp" ) .getMember ( "Service" ) .getAnInstantiation ( )
22
22
}
@@ -37,23 +37,33 @@ module Twirp {
37
37
/**
38
38
* A Twirp client
39
39
*/
40
- class ClientInstantiation extends DataFlow:: CallNode {
40
+ deprecated class ClientInstantiation extends DataFlow:: CallNode {
41
41
ClientInstantiation ( ) {
42
42
this = API:: getTopLevelMember ( "Twirp" ) .getMember ( "Client" ) .getAnInstantiation ( )
43
43
}
44
44
}
45
45
46
46
/** The URL of a Twirp service, considered as a sink. */
47
47
class ServiceUrlAsSsrfSink extends ServerSideRequestForgery:: Sink {
48
- ServiceUrlAsSsrfSink ( ) { exists ( ClientInstantiation c | c .getArgument ( 0 ) = this ) }
48
+ ServiceUrlAsSsrfSink ( ) {
49
+ this =
50
+ API:: getTopLevelMember ( "Twirp" ) .getMember ( "Client" ) .getMethod ( "new" ) .getArgument ( 0 ) .asSink ( )
51
+ }
49
52
}
50
53
51
54
/** A parameter that will receive parts of the url when handling an incoming request. */
52
55
class UnmarshaledParameter extends Http:: Server:: RequestInputAccess:: Range ,
53
56
DataFlow:: ParameterNode
54
57
{
55
58
UnmarshaledParameter ( ) {
56
- this = any ( ServiceInstantiation i ) .getAHandlerMethodNode ( ) .getParameter ( 0 )
59
+ this =
60
+ API:: getTopLevelMember ( "Twirp" )
61
+ .getMember ( "Service" )
62
+ .getMethod ( "new" )
63
+ .getArgument ( 0 )
64
+ .getMethod ( _)
65
+ .getParameter ( 0 )
66
+ .asSource ( )
57
67
}
58
68
59
69
override string getSourceType ( ) { result = "Twirp Unmarhaled Parameter" }
Original file line number Diff line number Diff line change @@ -5,4 +5,4 @@ query predicate sourceTest(Twirp::UnmarshaledParameter source) { any() }
5
5
6
6
query predicate ssrfSinkTest ( Twirp:: ServiceUrlAsSsrfSink sink ) { any ( ) }
7
7
8
- query predicate serviceInstantiationTest ( Twirp:: ServiceInstantiation si ) { any ( ) }
8
+ deprecated query predicate serviceInstantiationTest ( Twirp:: ServiceInstantiation si ) { any ( ) }
You can’t perform that action at this time.
0 commit comments