diff --git a/java/ql/src/Security/CWE/CWE-502/UnsafeDeserialization.qhelp b/java/ql/src/Security/CWE/CWE-502/UnsafeDeserialization.qhelp index d1933ad4ac25..6806527e442d 100644 --- a/java/ql/src/Security/CWE/CWE-502/UnsafeDeserialization.qhelp +++ b/java/ql/src/Security/CWE/CWE-502/UnsafeDeserialization.qhelp @@ -28,11 +28,52 @@ for example JSON or XML. However, these formats should not be deserialized into complex objects because this provides further opportunities for attack. For example, XML-based deserialization attacks are possible through libraries such as XStream and XmlDecoder. - +

+

Alternatively, a tightly controlled whitelist can limit the vulnerability of code, but be aware of the existence of so-called Bypass Gadgets, which can circumvent such protection measures.

+

+Recommendations specific to particular frameworks supported by this query: +

+

FastJson - com.alibaba:fastjson

+ +

+

FasterXML - com.fasterxml.jackson.core:jackson-databind

+ +

+

Kryo - com.esotericsoftware:kryo and com.esotericsoftware:kryo5

+ +

+

ObjectInputStream - Java Standard Library

+ +

+

SnakeYAML - org.yaml:snakeyaml

+ +

+

XML Decoder - Standard Java Library

+ +

@@ -74,7 +115,7 @@ Alvaro Muñoz & Christian Schneider, RSAConference 2016:
  • SnakeYaml documentation on deserialization: -SnakeYaml deserialization. +SnakeYaml deserialization.
  • Hessian deserialization and related gadget chains: