Skip to content

Commit d556fc8

Browse files

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

csharp/ql/lib/semmle/code/csharp/security/dataflow/UnsafeDeserializationQuery.qll

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ private module TaintToObjectMethodTrackingConfig implements DataFlow::ConfigSig
5959
predicate isSink(DataFlow::Node sink) { sink instanceof InstanceMethodSink }
6060

6161
predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer }
62+
63+
predicate observeDiffInformedIncrementalMode() {
64+
any() // used in one of the disjuncts in UnsafeDeserializationUntrustedInput.ql
65+
}
6266
}
6367

6468
/**
@@ -77,6 +81,10 @@ private module JsonConvertTrackingConfig implements DataFlow::ConfigSig {
7781
}
7882

7983
predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer }
84+
85+
predicate observeDiffInformedIncrementalMode() {
86+
any() // used in one of the disjuncts in UnsafeDeserializationUntrustedInput.ql
87+
}
8088
}
8189

8290
/**
@@ -133,6 +141,10 @@ private module TypeNameTrackingConfig implements DataFlow::ConfigSig {
133141
)
134142
)
135143
}
144+
145+
predicate observeDiffInformedIncrementalMode() {
146+
none() // Only used as secondary config in UnsafeDeserializationUntrustedInput.ql
147+
}
136148
}
137149

138150
/**
@@ -149,6 +161,10 @@ private module TaintToConstructorOrStaticMethodTrackingConfig implements DataFlo
149161
predicate isSink(DataFlow::Node sink) { sink instanceof ConstructorOrStaticMethodSink }
150162

151163
predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer }
164+
165+
predicate observeDiffInformedIncrementalMode() {
166+
any() // used in one of the disjuncts in UnsafeDeserializationUntrustedInput.ql
167+
}
152168
}
153169

154170
/**
@@ -186,6 +202,10 @@ private module TaintToObjectTypeTrackingConfig implements DataFlow::ConfigSig {
186202
oc.getObjectType() instanceof StrongTypeDeserializer
187203
)
188204
}
205+
206+
predicate observeDiffInformedIncrementalMode() {
207+
none() // only used as secondary config in UnsafeDeserializationUntrustedInput.ql
208+
}
189209
}
190210

191211
/**
@@ -210,6 +230,10 @@ private module WeakTypeCreationToUsageTrackingConfig implements DataFlow::Config
210230
sink.asExpr() = mc.getQualifier()
211231
)
212232
}
233+
234+
predicate observeDiffInformedIncrementalMode() {
235+
none() // only used as secondary config in UnsafeDeserializationUntrustedInput.ql
236+
}
213237
}
214238

215239
/**

0 commit comments

Comments
 (0)