Avoid unsafe deserialization

Metadata

ID: java-security/json-unsafe-deserialization

Language: Java

Severity: Error

Category: Security

Description

Deserialization of untrusted data can lead to undesired code execution. Use activateDefaultTyping to prevent deserialization into random classes.

Learn More

Non-Compliant Code Examples

class Main {
    public static void main(String[] args) {
        ObjectMapper mapper = new ObjectMapper();
        oneFunction();
        oneFunction();
        mapper.readValue(json, ABean.class);
        foo.var();
        anotherFunction();
    }
}

Compliant Code Examples

class Main {
    public static void main(String[] args) {
        ObjectMapper mapper = new ObjectMapper();
        oneFunction();
        mapper.enableDefaultTyping();
        anotherFunction();
        mapper.readValue(json, ABean.class);
    }
}