CAPEC Definitions

    CAPEC Definitions / CAPEC-586

    CAPEC-586: Object Injection

    An adversary attempts to exploit an application by injecting additional, malicious content during its processing of serialized objects. Developers leverage serialization in order to convert data or state into a static, binary format for saving to disk or transferring over a network. These objects are then deserialized when needed to recover the data/state. By injecting a malformed object into a vulnerable application, an adversary can potentially compromise the application by manipulating the deserialization process. This can result in a number of unwanted outcomes, including remote code execution.

    Severity:High
    Possibility:Medium

    Extended Description

    No Extended Description.

    Mitigations

    Implementation: Validate object before deserialization process

    Design: Limit which types can be deserialized.

    Implementation: Avoid having unnecessary types or gadgets available that can be leveraged for malicious ends. Use an allowlist of acceptable classes.

    Implementation: Keep session state on the server, when possible.

    Relationships with other CAPECs

    No related CAPECs found.

    Prerequisites

    The target application must unserialize data before validation.

    Related Weaknesses

    CWE-502: Deserialization of Untrusted Data