@@ -10,7 +10,6 @@ private import semmle.code.java.dataflow.DataFlow
10
10
* ensuring that they are visible to the taint tracking library.
11
11
*/
12
12
private module Frameworks {
13
- private import semmle.code.java.Strings
14
13
private import semmle.code.java.frameworks.jackson.JacksonSerializability
15
14
private import semmle.code.java.frameworks.android.Intent
16
15
private import semmle.code.java.frameworks.android.SQLite
@@ -85,30 +84,6 @@ abstract class TaintPreservingCallable extends Callable {
85
84
predicate transfersTaint ( int src , int sink ) { none ( ) }
86
85
}
87
86
88
- private class StringTaintPreservingMethod extends TaintPreservingCallable {
89
- StringTaintPreservingMethod ( ) {
90
- this .getDeclaringType ( ) instanceof TypeString and
91
- (
92
- this .hasName ( [
93
- "concat" , "copyValueOf" , "endsWith" , "format" , "formatted" , "getBytes" , "indent" ,
94
- "intern" , "join" , "repeat" , "split" , "strip" , "stripIndent" , "stripLeading" ,
95
- "stripTrailing" , "substring" , "toCharArray" , "toLowerCase" , "toString" , "toUpperCase" ,
96
- "trim"
97
- ] )
98
- or
99
- this .hasName ( "valueOf" ) and this .getParameterType ( 0 ) instanceof Array
100
- )
101
- }
102
-
103
- override predicate returnsTaintFrom ( int arg ) {
104
- arg = - 1 and not this .isStatic ( )
105
- or
106
- this .hasName ( [ "concat" , "copyValueOf" , "valueOf" ] ) and arg = 0
107
- or
108
- this .hasName ( [ "format" , "formatted" , "join" ] ) and arg = [ 0 .. getNumberOfParameters ( ) ]
109
- }
110
- }
111
-
112
87
private class NumberTaintPreservingCallable extends TaintPreservingCallable {
113
88
int argument ;
114
89
@@ -128,46 +103,3 @@ private class NumberTaintPreservingCallable extends TaintPreservingCallable {
128
103
129
104
override predicate returnsTaintFrom ( int arg ) { arg = argument }
130
105
}
131
-
132
- /** Holds for the types `StringBuilder`, `StringBuffer`, and `StringWriter`. */
133
- private predicate stringBuilderType ( RefType t ) {
134
- t instanceof StringBuildingType or
135
- t .hasQualifiedName ( "java.io" , "StringWriter" )
136
- }
137
-
138
- private class StringBuilderTaintPreservingCallable extends TaintPreservingCallable {
139
- StringBuilderTaintPreservingCallable ( ) {
140
- exists ( Method m |
141
- this .( Method ) .overrides * ( m ) and
142
- stringBuilderType ( m .getDeclaringType ( ) ) and
143
- m .hasName ( [ "append" , "insert" , "replace" , "toString" , "write" ] )
144
- )
145
- or
146
- this .( Constructor ) .getParameterType ( 0 ) instanceof RefType and
147
- stringBuilderType ( this .getDeclaringType ( ) )
148
- }
149
-
150
- override predicate returnsTaintFrom ( int arg ) {
151
- arg = - 1 and
152
- not this instanceof Constructor
153
- or
154
- this instanceof Constructor and arg = 0
155
- or
156
- this .hasName ( "append" ) and arg = 0
157
- or
158
- this .hasName ( "insert" ) and arg = 1
159
- or
160
- this .hasName ( "replace" ) and arg = 2
161
- }
162
-
163
- override predicate transfersTaint ( int src , int sink ) {
164
- returnsTaintFrom ( src ) and
165
- sink = - 1 and
166
- src != - 1 and
167
- not this instanceof Constructor
168
- or
169
- this .hasName ( "write" ) and
170
- src = 0 and
171
- sink = - 1
172
- }
173
- }
0 commit comments