Skip to content

Commit 18a3e4d

Browse files
author
edvraa
committed
add comments
1 parent c9c9758 commit 18a3e4d

File tree

2 files changed

+39
-2
lines changed

2 files changed

+39
-2
lines changed

csharp/ql/src/semmle/code/csharp/security/dataflow/UnsafeDeserialization.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,11 @@ module UnsafeDeserialization {
4747
*/
4848
abstract class Sanitizer extends DataFlow::Node { }
4949

50-
class RemoteSource extends Source {
50+
private class RemoteSource extends Source {
5151
RemoteSource() { this instanceof RemoteFlowSource }
5252
}
5353

54-
class LocalSource extends Source {
54+
private class LocalSource extends Source {
5555
LocalSource() { this instanceof LocalFlowSource }
5656
}
5757

csharp/ql/src/semmle/code/csharp/serialization/Deserializers.qll

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,20 +81,23 @@ private class BinaryFormatterClass extends Class {
8181
}
8282
}
8383

84+
/** `System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize` method */
8485
class BinaryFormatterDeserializeMethod extends Method, UnsafeDeserializer {
8586
BinaryFormatterDeserializeMethod() {
8687
this.getDeclaringType() instanceof BinaryFormatterClass and
8788
this.hasName("Deserialize")
8889
}
8990
}
9091

92+
/** `System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.UnsafeDeserialize` method */
9193
class BinaryFormatterUnsafeDeserializeMethod extends Method, UnsafeDeserializer {
9294
BinaryFormatterUnsafeDeserializeMethod() {
9395
this.getDeclaringType() instanceof BinaryFormatterClass and
9496
this.hasName("UnsafeDeserialize")
9597
}
9698
}
9799

100+
/** `System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.UnsafeDeserializeMethodResponse` method */
98101
class BinaryFormatterUnsafeDeserializeMethodResponseMethod extends Method, UnsafeDeserializer {
99102
BinaryFormatterUnsafeDeserializeMethodResponseMethod() {
100103
this.getDeclaringType() instanceof BinaryFormatterClass and
@@ -109,6 +112,7 @@ private class SoapFormatterClass extends Class {
109112
}
110113
}
111114

115+
/** `System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize` method */
112116
class SoapFormatterDeserializeMethod extends Method, UnsafeDeserializer {
113117
SoapFormatterDeserializeMethod() {
114118
this.getDeclaringType() instanceof SoapFormatterClass and
@@ -121,6 +125,7 @@ private class ObjectStateFormatterClass extends Class {
121125
ObjectStateFormatterClass() { this.hasQualifiedName("System.Web.UI.ObjectStateFormatter") }
122126
}
123127

128+
/** `System.Web.UI.ObjectStateFormatter.Deserialize` method */
124129
class ObjectStateFormatterDeserializeMethod extends Method, UnsafeDeserializer {
125130
ObjectStateFormatterDeserializeMethod() {
126131
this.getDeclaringType() instanceof ObjectStateFormatterClass and
@@ -135,13 +140,15 @@ class NetDataContractSerializerClass extends Class {
135140
}
136141
}
137142

143+
/** `System.Runtime.Serialization.NetDataContractSerializer.Deserialize` method */
138144
class NetDataContractSerializerDeserializeMethod extends Method, UnsafeDeserializer {
139145
NetDataContractSerializerDeserializeMethod() {
140146
this.getDeclaringType() instanceof NetDataContractSerializerClass and
141147
this.hasName("Deserialize")
142148
}
143149
}
144150

151+
/** `System.Runtime.Serialization.NetDataContractSerializer.ReadObject` method */
145152
class NetDataContractSerializerReadObjectMethod extends Method, UnsafeDeserializer {
146153
NetDataContractSerializerReadObjectMethod() {
147154
this.getDeclaringType() instanceof NetDataContractSerializerClass and
@@ -156,6 +163,7 @@ class DataContractJsonSerializerClass extends Class {
156163
}
157164
}
158165

166+
/** `System.Runtime.Serialization.Json.DataContractJsonSerializer.ReadObject` method */
159167
class DataContractJsonSerializerReadObjectMethod extends Method, UnsafeDeserializer {
160168
DataContractJsonSerializerReadObjectMethod() {
161169
this.getDeclaringType() instanceof DataContractJsonSerializerClass and
@@ -170,13 +178,15 @@ class JavaScriptSerializerClass extends Class {
170178
}
171179
}
172180

181+
/** `System.Web.Script.Serialization.JavaScriptSerializer.Deserialize` method */
173182
class JavaScriptSerializerClassDeserializeMethod extends Method, UnsafeDeserializer {
174183
JavaScriptSerializerClassDeserializeMethod() {
175184
this.getDeclaringType() instanceof JavaScriptSerializerClass and
176185
this.hasName("Deserialize")
177186
}
178187
}
179188

189+
/** `System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject` method */
180190
class JavaScriptSerializerClassDeserializeObjectMethod extends Method, UnsafeDeserializer {
181191
JavaScriptSerializerClassDeserializeObjectMethod() {
182192
this.getDeclaringType() instanceof JavaScriptSerializerClass and
@@ -191,6 +201,7 @@ class XmlObjectSerializerClass extends Class {
191201
}
192202
}
193203

204+
/** `System.Runtime.Serialization.XmlObjectSerializer.ReadObject` method */
194205
class XmlObjectSerializerReadObjectMethod extends Method, UnsafeDeserializer {
195206
XmlObjectSerializerReadObjectMethod() {
196207
this.getDeclaringType() instanceof XmlObjectSerializerClass and
@@ -203,6 +214,7 @@ class XmlSerializerClass extends Class {
203214
XmlSerializerClass() { this.hasQualifiedName("System.Xml.Serialization.XmlSerializer") }
204215
}
205216

217+
/** `System.Xml.Serialization.XmlSerializer.Deserialize` method */
206218
class XmlSerializerDeserializeMethod extends Method, UnsafeDeserializer {
207219
XmlSerializerDeserializeMethod() {
208220
this.getDeclaringType() instanceof XmlSerializerClass and
@@ -217,6 +229,7 @@ class DataContractSerializerClass extends Class {
217229
}
218230
}
219231

232+
/** `System.Runtime.Serialization.DataContractSerializer.ReadObject` method */
220233
class DataContractSerializerReadObjectMethod extends Method, UnsafeDeserializer {
221234
DataContractSerializerReadObjectMethod() {
222235
this.getDeclaringType() instanceof DataContractSerializerClass and
@@ -229,6 +242,7 @@ class XmlMessageFormatterClass extends Class {
229242
XmlMessageFormatterClass() { this.hasQualifiedName("System.Messaging.XmlMessageFormatter") }
230243
}
231244

245+
/** `System.Messaging.XmlMessageFormatter.Read` method */
232246
class XmlMessageFormatterReadMethod extends Method, UnsafeDeserializer {
233247
XmlMessageFormatterReadMethod() {
234248
this.getDeclaringType() instanceof XmlMessageFormatterClass and
@@ -241,6 +255,7 @@ private class LosFormatterClass extends Class {
241255
LosFormatterClass() { this.hasQualifiedName("System.Web.UI.LosFormatter") }
242256
}
243257

258+
/** `System.Web.UI.LosFormatter.Deserialize` method */
244259
class LosFormatterDeserializeMethod extends Method, UnsafeDeserializer {
245260
LosFormatterDeserializeMethod() {
246261
this.getDeclaringType() instanceof LosFormatterClass and
@@ -253,6 +268,7 @@ private class FastJsonClass extends Class {
253268
FastJsonClass() { this.hasQualifiedName("fastJSON.JSON") }
254269
}
255270

271+
/** `fastJSON.JSON.ToObject` method */
256272
class FastJsonClassToObjectMethod extends Method, UnsafeDeserializer {
257273
FastJsonClassToObjectMethod() {
258274
this.getDeclaringType() instanceof FastJsonClass and
@@ -266,6 +282,7 @@ private class ActivityClass extends Class {
266282
ActivityClass() { this.hasQualifiedName("System.Workflow.ComponentModel.Activity") }
267283
}
268284

285+
/** `System.Workflow.ComponentModel.Activity.Load` method */
269286
class ActivityLoadMethod extends Method, UnsafeDeserializer {
270287
ActivityLoadMethod() {
271288
this.getDeclaringType() instanceof ActivityClass and
@@ -278,6 +295,7 @@ private class ResourceReaderClass extends Class {
278295
ResourceReaderClass() { this.hasQualifiedName("System.Resources.ResourceReader") }
279296
}
280297

298+
/** `System.Resources.ResourceReader` constructor */
281299
class ResourceReaderConstructor extends Constructor, UnsafeDeserializer {
282300
ResourceReaderConstructor() {
283301
this.getDeclaringType() instanceof ResourceReaderClass and
@@ -290,6 +308,7 @@ private class BinaryMessageFormatterClass extends Class {
290308
BinaryMessageFormatterClass() { this.hasQualifiedName("System.Messaging.BinaryMessageFormatter") }
291309
}
292310

311+
/** `System.Messaging.BinaryMessageFormatter.Read` method */
293312
class BinaryMessageFormatterReadMethod extends Method, UnsafeDeserializer {
294313
BinaryMessageFormatterReadMethod() {
295314
this.getDeclaringType() instanceof BinaryMessageFormatterClass and
@@ -302,6 +321,7 @@ private class XamlReaderClass extends Class {
302321
XamlReaderClass() { this.hasQualifiedName("System.Windows.Markup.XamlReader") }
303322
}
304323

324+
/** `System.Windows.Markup.XamlReader.Parse` method */
305325
class XamlReaderParseMethod extends Method, UnsafeDeserializer {
306326
XamlReaderParseMethod() {
307327
this.getDeclaringType() instanceof XamlReaderClass and
@@ -310,6 +330,7 @@ class XamlReaderParseMethod extends Method, UnsafeDeserializer {
310330
}
311331
}
312332

333+
/** `System.Windows.Markup.XamlReader.Load` method */
313334
class XamlReaderLoadMethod extends Method, UnsafeDeserializer {
314335
XamlReaderLoadMethod() {
315336
this.getDeclaringType() instanceof XamlReaderClass and
@@ -318,6 +339,7 @@ class XamlReaderLoadMethod extends Method, UnsafeDeserializer {
318339
}
319340
}
320341

342+
/** `System.Windows.Markup.XamlReader.LoadAsync` method */
321343
class XamlReaderLoadAsyncMethod extends Method, UnsafeDeserializer {
322344
XamlReaderLoadAsyncMethod() {
323345
this.getDeclaringType() instanceof XamlReaderClass and
@@ -330,13 +352,15 @@ private class ProxyObjectClass extends Class {
330352
ProxyObjectClass() { this.hasQualifiedName("Microsoft.Web.Design.Remote.ProxyObject") }
331353
}
332354

355+
/** `Microsoft.Web.Design.Remote.ProxyObject.DecodeValue` method */
333356
class ProxyObjectDecodeValueMethod extends Method, UnsafeDeserializer {
334357
ProxyObjectDecodeValueMethod() {
335358
this.getDeclaringType() instanceof ProxyObjectClass and
336359
this.hasName("DecodeValue")
337360
}
338361
}
339362

363+
/** `Microsoft.Web.Design.Remote.ProxyObject.DecodeSerializedObject` method */
340364
class ProxyObjectDecodeSerializedObjectMethod extends Method, UnsafeDeserializer {
341365
ProxyObjectDecodeSerializedObjectMethod() {
342366
this.getDeclaringType() instanceof ProxyObjectClass and
@@ -349,6 +373,7 @@ private class JaysonConverterClass extends Class {
349373
JaysonConverterClass() { this.hasQualifiedName("Sweet.Jayson.JaysonConverter") }
350374
}
351375

376+
/** `Sweet.Jayson.JaysonConverter.ToObject` method */
352377
class JaysonConverterToObjectMethod extends Method, UnsafeDeserializer {
353378
JaysonConverterToObjectMethod() {
354379
this.getDeclaringType() instanceof JaysonConverterClass and
@@ -364,6 +389,7 @@ private class ServiceStackTextJsonSerializerClass extends Class {
364389
}
365390
}
366391

392+
/** `ServiceStack.Text.JsonSerializer.DeserializeFromString` method */
367393
class ServiceStackTextJsonSerializerDeserializeFromStringMethod extends Method, UnsafeDeserializer {
368394
ServiceStackTextJsonSerializerDeserializeFromStringMethod() {
369395
this.getDeclaringType() instanceof ServiceStackTextJsonSerializerClass and
@@ -372,6 +398,7 @@ class ServiceStackTextJsonSerializerDeserializeFromStringMethod extends Method,
372398
}
373399
}
374400

401+
/** `ServiceStack.Text.JsonSerializer.DeserializeFromReader` method */
375402
class ServiceStackTextJsonSerializerDeserializeFromReaderMethod extends Method, UnsafeDeserializer {
376403
ServiceStackTextJsonSerializerDeserializeFromReaderMethod() {
377404
this.getDeclaringType() instanceof ServiceStackTextJsonSerializerClass and
@@ -380,6 +407,7 @@ class ServiceStackTextJsonSerializerDeserializeFromReaderMethod extends Method,
380407
}
381408
}
382409

410+
/** `ServiceStack.Text.JsonSerializer.DeserializeFromStream` method */
383411
class ServiceStackTextJsonSerializerDeserializeFromStreamMethod extends Method, UnsafeDeserializer {
384412
ServiceStackTextJsonSerializerDeserializeFromStreamMethod() {
385413
this.getDeclaringType() instanceof ServiceStackTextJsonSerializerClass and
@@ -395,6 +423,7 @@ private class ServiceStackTextTypeSerializerClass extends Class {
395423
}
396424
}
397425

426+
/** `ServiceStack.Text.TypeSerializer.DeserializeFromString` method */
398427
class ServiceStackTextTypeSerializerDeserializeFromStringMethod extends Method, UnsafeDeserializer {
399428
ServiceStackTextTypeSerializerDeserializeFromStringMethod() {
400429
this.getDeclaringType() instanceof ServiceStackTextTypeSerializerClass and
@@ -403,6 +432,7 @@ class ServiceStackTextTypeSerializerDeserializeFromStringMethod extends Method,
403432
}
404433
}
405434

435+
/** `ServiceStack.Text.TypeSerializer.DeserializeFromReader` method */
406436
class ServiceStackTextTypeSerializerDeserializeFromReaderMethod extends Method, UnsafeDeserializer {
407437
ServiceStackTextTypeSerializerDeserializeFromReaderMethod() {
408438
this.getDeclaringType() instanceof ServiceStackTextTypeSerializerClass and
@@ -411,6 +441,7 @@ class ServiceStackTextTypeSerializerDeserializeFromReaderMethod extends Method,
411441
}
412442
}
413443

444+
/** `ServiceStack.Text.TypeSerializer.DeserializeFromStream` method */
414445
class ServiceStackTextTypeSerializerDeserializeFromStreamMethod extends Method, UnsafeDeserializer {
415446
ServiceStackTextTypeSerializerDeserializeFromStreamMethod() {
416447
this.getDeclaringType() instanceof ServiceStackTextTypeSerializerClass and
@@ -424,6 +455,7 @@ private class ServiceStackTextCsvSerializerClass extends Class {
424455
ServiceStackTextCsvSerializerClass() { this.hasQualifiedName("ServiceStack.Text.CsvSerializer") }
425456
}
426457

458+
/** `ServiceStack.Text.CsvSerializer.DeserializeFromString` method */
427459
class ServiceStackTextCsvSerializerDeserializeFromStringMethod extends Method, UnsafeDeserializer {
428460
ServiceStackTextCsvSerializerDeserializeFromStringMethod() {
429461
this.getDeclaringType() instanceof ServiceStackTextCsvSerializerClass and
@@ -432,6 +464,7 @@ class ServiceStackTextCsvSerializerDeserializeFromStringMethod extends Method, U
432464
}
433465
}
434466

467+
/** `ServiceStack.Text.TypeSeriCsvSerializeralizer.DeserializeFromReader` method */
435468
class ServiceStackTextCsvSerializerDeserializeFromReaderMethod extends Method, UnsafeDeserializer {
436469
ServiceStackTextCsvSerializerDeserializeFromReaderMethod() {
437470
this.getDeclaringType() instanceof ServiceStackTextCsvSerializerClass and
@@ -440,6 +473,7 @@ class ServiceStackTextCsvSerializerDeserializeFromReaderMethod extends Method, U
440473
}
441474
}
442475

476+
/** `ServiceStack.Text.CsvSerializer.DeserializeFromStream` method */
443477
class ServiceStackTextCsvSerializerDeserializeFromStreamMethod extends Method, UnsafeDeserializer {
444478
ServiceStackTextCsvSerializerDeserializeFromStreamMethod() {
445479
this.getDeclaringType() instanceof ServiceStackTextCsvSerializerClass and
@@ -453,6 +487,7 @@ private class ServiceStackTextXmlSerializerClass extends Class {
453487
ServiceStackTextXmlSerializerClass() { this.hasQualifiedName("ServiceStack.Text.XmlSerializer") }
454488
}
455489

490+
/** `ServiceStack.Text.XmlSerializer.DeserializeFromString` method */
456491
class ServiceStackTextXmlSerializerDeserializeFromStringMethod extends Method, UnsafeDeserializer {
457492
ServiceStackTextXmlSerializerDeserializeFromStringMethod() {
458493
this.getDeclaringType() instanceof ServiceStackTextXmlSerializerClass and
@@ -461,6 +496,7 @@ class ServiceStackTextXmlSerializerDeserializeFromStringMethod extends Method, U
461496
}
462497
}
463498

499+
/** `ServiceStack.Text.XmlSerializer.DeserializeFromReader` method */
464500
class ServiceStackTextXmlSerializerDeserializeFromReaderMethod extends Method, UnsafeDeserializer {
465501
ServiceStackTextXmlSerializerDeserializeFromReaderMethod() {
466502
this.getDeclaringType() instanceof ServiceStackTextXmlSerializerClass and
@@ -469,6 +505,7 @@ class ServiceStackTextXmlSerializerDeserializeFromReaderMethod extends Method, U
469505
}
470506
}
471507

508+
/** `ServiceStack.Text.XmlSerializer.DeserializeFromStream` method */
472509
class ServiceStackTextXmlSerializerDeserializeFromStreamMethod extends Method, UnsafeDeserializer {
473510
ServiceStackTextXmlSerializerDeserializeFromStreamMethod() {
474511
this.getDeclaringType() instanceof ServiceStackTextXmlSerializerClass and

0 commit comments

Comments
 (0)