Skip to content
OpenAdvisories

Weakness (CWE)

CWE-502: Deserialization of Untrusted Data

Base Draft

The product deserializes untrusted data without sufficiently ensuring that the resulting data will be valid.

How to prevent it (7 mitigations)
  1. Architecture and Design, Implementation

    If available, use the signing/sealing features of the programming language to assure that deserialized data has not been tainted. For example, a hash-based message authentication code (HMAC) could be used to ensure that data has not been modified.

  2. Implementation

    When deserializing data, populate a new object rather than just deserializing. The result is that the data flows through safe input validation and that the functions are safe.

  3. Implementation

    Explicitly define a final object() to prevent deserialization.

  4. Architecture and Design, Implementation

    Make fields transient to protect them from deserialization.

    An attempt to serialize and then deserialize a class containing transient fields will result in NULLs where the transient data should be. This is an excellent way to prevent time, environment-based, or sensitive variables from being carried over and used improperly.

  5. Implementation

    Avoid having unnecessary types or gadgets (a sequence of instances and method invocations that can self-execute during the deserialization process, often found in libraries) available that can be leveraged for malicious ends. This limits the potential for unintended or unauthorized types and gadgets to be leveraged by the attacker. Add only acceptable classes to an allowlist. Note: new gadgets are constantly being discovered, so this alone is not a sufficient mitigation.

  6. Architecture and Design, Implementation

    Employ cryptography of the data or code for protection. However, it's important to note that it would still be client-side security. This is risky because if the client is compromised then the security implemented on the client (the cryptography) can be bypassed.

  7. Operation

    Use an application firewall that can detect attacks against this weakness. It can be beneficial in cases in which the code cannot be fixed (because it is controlled by a third party), as an emergency prevention measure while more comprehensive software assurance measures are applied, or to provide defense in depth [REF-1481].

Source: MITRE CWE-502

3,358 results · Feed

  • Critical 9.8

    Deserialization of Untrusted Data in jackson-databind

    An issue was discovered in FasterXML jackson-databind 2.0.0 through 2.9.5. Use of Jackson default typing along with a gadget class from iBatis allows exfiltration of content. Fixed in 2.7.9.4, 2.8.11.2, and 2.9.6.

  • High 8.8

    TYPO3 Vulnerable to Insecure Deserialization

    TYPO3 8.x through 8.7.26 and 9.x through 9.5.7 allows Deserialization of Untrusted Data.

  • Medium 5.9
    CVE-2019-12384 Public exploit EPSS 45%

    Deserialization of Untrusted Data in FasterXML jackson-databind

    FasterXML jackson-databind 2.x before 2.9.9.1 might allow attackers to have a variety of impacts by leveraging failure to block the logback-core class from polymorphic deserialization. Depending on the classpath content, remote code execution may be possible.

  • Critical 9.8

    Deserialization of Untrusted Data in EthereumJ

    An issue was discovered in EthereumJ 1.8.2. There is Unsafe Deserialization in ois.readObject in mine/Ethash.java and decoder.readObject in crypto/ECKey.java. When a node syncs and mines a new block, arbitrary OS commands can be run on the server.

  • Medium 5.9
    CVE-2019-12814 Public exploit EPSS 11%

    Deserialization of untrusted data in FasterXML jackson-databind

    A Polymorphic Typing issue was discovered in FasterXML jackson-databind 2.x through 2.9.9. When Default Typing is enabled (either globally or for a specific property) for an externally exposed JSON endpoint and the service has JDOM 1.x or 2.x jar in the class…

  • Medium 6.5
    CVE-2019-12799 Public exploit EPSS 54%

    Shopware Insecure Deserialization Vulnerability

    In createInstanceFromNamedArguments in Shopware through 5.6.x, a crafted web request can trigger a PHP object instantiation vulnerability, which can result in an arbitrary deserialization if the right class is instantiated. An attacker can leverage this deser…

  • High 8.8
    CVE-2019-9875 Exploited EPSS 25%

    Deserialization of Untrusted Data in the anti CSRF module in Sitecore through 9.1 allows an authenticated attacker to e…

    KEV Mar 26, 2025
  • Critical 9.8
    CVE-2019-9874 Exploited Scanner template EPSS 84%

    Deserialization of Untrusted Data in the Sitecore.Security.AntiCSRF (aka anti CSRF) module in Sitecore CMS 7.0 to 7.2 a…

    KEV Mar 26, 2025
  • High 8.1

    Deserialization of Untrusted Data in Hazelcast

    In Hazelcast before 3.11, the cluster join procedure is vulnerable to remote code execution via Java deserialization. If an attacker can reach a listening Hazelcast instance with a crafted JoinRequest, and vulnerable classes exist in the classpath, the attack…

  • High 7.5
    CVE-2019-12086 Public exploit EPSS 22%

    Information exposure in FasterXML jackson-databind

    A Polymorphic Typing issue was discovered in FasterXML jackson-databind 2.x before 2.9.9. When Default Typing is enabled (either globally or for a specific property) for an externally exposed JSON endpoint, the service has the mysql-connector-java jar (8.0.14…

  • High 7.1

    Deserialization of untrusted data in Symfony

    In Symfony before 2.8.50, 3.x before 3.4.26, 4.x before 4.1.12, and 4.2.x before 4.2.7, it is possible to cache objects that may contain bad user input. On serialization or unserialization, this could result in the deletion of files that the current user has …

  • Unscored —

    A vulnerability has been identified in LOGO! Soft Comfort (All versions < V8.3). The vulnerability could allow an attac…

  • Critical 9.8

    Directory Traversal in typo3/phar-stream-wrapper

    The PharStreamWrapper (aka phar-stream-wrapper) package 2.x before 2.1.1 and 3.x before 3.1.1 for TYPO3 does not prevent directory traversal, which allows attackers to bypass a deserialization protection mechanism, as demonstrated by a phar:///path/bad.phar/.…

  • Critical 9.8

    PharStreamWrapper for Typo3 unsafe deserialization vulnerability

    PharMetaDataInterceptor in the PharStreamWrapper (aka phar-stream-wrapper) package 2.x before 2.1.1 and 3.x before 3.1.1 for TYPO3 mishandles Phar stub parsing, which allows attackers to bypass a deserialization protection mechanism.

  • High 7.5

    Unsafe deserialization in SmtpTransport in CakePHP

    An issue was discovered in SmtpTransport in CakePHP 3.7.6. An unserialized object with modified internal properties can trigger arbitrary file overwriting upon destruction.

  • Unscored —
    CVE-2019-5434 Public exploit Scanner template EPSS 57%

    An attacker could send a specifically crafted payload to the XML-RPC invocation script and trigger the unserialize() ca…

  • High 8.8
    CVE-2019-10867 Public exploit EPSS 69%

    Pimcore Unserialize Remote Code Execution

    An issue was discovered in Pimcore before 5.7.1. An attacker with classes permission can send a POST request to /admin/class/bulk-commit, which will make it possible to exploit the unserialize function when passing untrusted values in the data parameter to bu…

  • High 7.5

    CoAPthon DoS due to Exceptions

    The Serialize.deserialize() method in CoAPthon 3.1, 4.0.0, 4.0.1, and 4.0.2 mishandles certain exceptions, leading to a denial of service in applications that use this library (e.g., the standard CoAP server, CoAP client, CoAP reverse proxy, example collect C…

  • High 7.5

    CoAPthon3 vulnerable to Deserialization of Untrusted Data

    The Serialize.deserialize() method in CoAPthon3 1.0 and 1.0.1 mishandles certain exceptions, leading to a denial of service in applications that use this library (e.g., the standard CoAP server, CoAP client, example collect CoAP server and client) when they r…

  • Critical 9.8
    CVE-2019-10068 Exploited Public exploit Scanner template EPSS 95%

    An issue was discovered in Kentico 12.0.x before 12.0.15, 11.0.x before 11.0.48, 10.0.x before 10.0.52, and 9.x version…

    KEV Mar 25, 2022
  • Critical 9.6

    ipycache is vulnerable to Code Injection

    A code injection issue was discovered in ipycache through 2016-05-31.

  • High 7.5

    jackson-databind Deserialization of Untrusted Data vulnerability

    An issue was discovered in FasterXML jackson-databind prior to 2.7.9.4, 2.8.11.2, and 2.9.6. When Default Typing is enabled (either globally or for a specific property), the service has the Jodd-db jar (for database access for the Jodd framework) in the class…

  • High 7.5

    Deserialization of Untrusted Data

    An issue was discovered in FasterXML jackson-databind prior to 2.7.9.4, 2.8.11.2, and 2.9.6. When Default Typing is enabled (either globally or for a specific property), the service has the Oracle JDBC jar in the classpath, and an attacker can provide an LDAP…

  • Critical 9.8
    CVE-2019-0192 Public exploit Scanner template EPSS 78%

    Critical severity vulnerability that affects org.apache.solr:solr-core

    In Apache Solr versions 5.0.0 to 5.5.5 and 6.0.0 to 6.6.5, the Config API allows to configure the JMX server via an HTTP POST request. By pointing it to a malicious RMI server, an attacker could take advantage of Solr's unsafe deserialization to trigger remot…

  • Critical 9.8

    Unauthenticated Remote Code Execution in Apache JMeter

    Unauthenticated RCE is possible when JMeter is used in distributed mode (-r or -R command line options). Attacker can establish a RMI connection to a jmeter-server using RemoteJMeterEngine and proceed with an attack using untrusted data deserialization. This …

  • Critical 9.8

    Incomplete List of Disallowed Inputs in SOFA-Hessian

    SOFA-Hessian through 4.0.2 allows remote attackers to execute arbitrary commands via a crafted serialized Hessian object because blacklisting of com.caucho.naming.QName and com.sun.org.apache.xpath.internal.objects.XString is mishandled, related to Resin Gadg…

  • High 8.1
    CVE-2019-6340 Exploited Public exploit Scanner template EPSS 92%

    Drupal core - Highly critical - Remote Code Execution

    Some field types do not properly sanitize data from non-form sources in Drupal 8.5.x before 8.5.11 and Drupal 8.6.x before 8.6.10. This can lead to arbitrary PHP code execution in some cases. A site is only affected by this if one of the following conditions …

    KEV Mar 25, 2022
  • Critical 9.8

    Joomla! Object Injection Vulnerability

    An issue was discovered in Joomla! before 3.9.3. The phar:// stream wrapper can be used for objection injection attacks because there is no protection mechanism (such as the TYPO3 PHAR stream wrapper) to prevent use of the phar:// handler for non .phar-files.

  • High 8.8

    mPDF Unsafe Deserialization

    mPDF version 7.1.7 and earlier contains a CWE-502: Deserialization of Untrusted Data vulnerability in getImage() method of Image/ImageProcessor class that can result in Arbitry code execution, file write, etc.. This attack appears to be exploitable via attack…

  • High 8.0

    third-party PEAR Archive_Tar library updates

    In Drupal Core versions 7.x prior to 7.62, 8.6.x prior to 8.6.6 and 8.5.x prior to 8.5.9; Drupal core uses the third-party PEAR Archive_Tar library. This library has released a security update which impacts some Drupal configurations. Refer to CVE-2018-100088…

  • Critical 9.8
    CVE-2019-6446 Public exploit EPSS 27%

    Numpy Deserialization of Untrusted Data

    An issue was discovered in NumPy before 1.16.3. It uses the pickle Python module unsafely, which allows remote attackers to execute arbitrary code via a crafted serialized object, as demonstrated by a numpy.load call. NOTE: third parties dispute this issue be…

  • Critical 9.8
    CVE-2018-19361 EPSS 11%

    Deserialization of Untrusted Data in jackson-databind

    FasterXML jackson-databind 2.x before 2.9.8 might allow attackers to have unspecified impact by leveraging failure to block the openjpa class from polymorphic deserialization.

  • Critical 9.8
    CVE-2018-19362 EPSS 11%

    com.fasterxml.jackson.core:jackson-databind vulnerable to Deserialization of Untrusted Data

    FasterXML jackson-databind 2.x before 2.9.8 might allow attackers to have unspecified impact by leveraging failure to block the jboss-common-core class from polymorphic deserialization.

  • Critical 9.8
    CVE-2018-19360 EPSS 11%

    Deserialization of Untrusted Data in jackson-databind due to polymorphic deserialization

    FasterXML jackson-databind 2.x before 2.9.8 might allow attackers to have unspecified impact by leveraging failure to block the axis2-transport-jms class from polymorphic deserialization.

  • Critical 9.8
    CVE-2018-14718 EPSS 13%

    Arbitrary Code Execution in jackson-databind

    FasterXML jackson-databind 2.x before 2.9.7 might allow remote attackers to execute arbitrary code by leveraging failure to block the slf4j-ext class from polymorphic deserialization.

  • Critical 9.8

    XML External Entity Reference (XXE) in jackson-databind

    FasterXML jackson-databind 2.x before 2.9.7 might allow attackers to conduct external XML entity (XXE) attacks by leveraging failure to block unspecified JDK classes from polymorphic deserialization.

  • Critical 9.8

    Arbitrary Code Execution in jackson-databind

    FasterXML jackson-databind 2.x before 2.9.7 might allow remote attackers to execute arbitrary code by leveraging failure to block the blaze-ds-opt and blaze-ds-core classes from polymorphic deserialization.

  • Critical 9.8

    Buck parser-cache command loads/saves state using Java serialized object. If the state information is maliciously craft…

  • Critical 9.8
    CVE-2018-1000861 Exploited Public exploit Scanner template EPSS 98%

    Deserialization of Untrusted Data in Jenkins

    A code execution vulnerability exists in the Stapler web framework used by Jenkins 2.153 and earlier, LTS 2.138.3 and earlier in stapler/core/src/main/java/org/kohsuke/stapler/MetaClass.java that allows attackers to invoke some methods on Java objects by acce…

    KEV Feb 10, 2022
  • High 7.5

    Improper Access Control in activejob

    A Broken Access Control vulnerability in Active Job versions >= 4.2.0 allows an attacker to craft user input which can cause Active Job to deserialize it using GlobalId and give them access to information that they should not have. This vulnerability has been…