Insecure Deserialization (ARCH4109)
هذا المحتوى غير متوفر بلغتك بعد.
Key java.security.insecure-deserialization · Severity critical · Category security · CWE CWE-502
Deserializing untrusted data with Java’s native ObjectInputStream is a classic vector for remote code execution via gadget chains. Use a strictly typed, safe data format such as JSON instead.
Incorrect
Section titled “Incorrect”ObjectInputStream in = new ObjectInputStream(request.getInputStream());Order order = (Order) in.readObject(); // gadget chain -> RCECorrect
Section titled “Correct”ObjectMapper mapper = JsonMapper.builder() .activateDefaultTyping(NoCheckSubTypeValidator.instance) // keep off .build();Order order = mapper.readValue(request.getInputStream(), Order.class);Use fixed-type JSON instead of native deserialization for untrusted data; never enable polymorphic typing.