appsec.fyi

Insecure Deserialization Resources

Post Share

A curated AppSec resource library covering XSS, SQLi, SSRF, IDOR, RCE, XXE, OSINT, and more.

Insecure Deserialization

Insecure deserialization vulnerabilities occur when applications reconstruct objects from serialized data without proper validation, potentially allowing attackers to execute arbitrary code, bypass authentication, or manipulate application logic. These vulnerabilities affect virtually every major programming language: Java (ObjectInputStream, ysoserial gadget chains), PHP (unserialize), Python (pickle, PyYAML), .NET (BinaryFormatter, Json.NET with TypeNameHandling), and Ruby (Marshal). Deserialization attacks are particularly dangerous because they often achieve remote code execution with a single crafted payload. The exploitation landscape includes gadget chain discovery, polyglot payloads that work across libraries, and attacks against message queues, caching layers, and session management systems that serialize user-controlled data. Defenses include avoiding native serialization for untrusted data, using safe alternatives like JSON, implementing allowlists for deserialized types, and integrity checking serialized objects.

Date Added Link Excerpt
2026-04-28 2026Critical bug leaves Hugging Face's LeRobot exposed newsA critical vulnerability has been discovered in Hugging Face's LeRobot library, potentially exposing user data and systems. The bug, if exploited, could allow unauthorized access and control over robotic systems integrated with the library. Hugging Face has been alerted and is working on a fix. This incident highlights the importance of robust security in AI and robotics development. Further details regarding the specific nature of the exploit and its potential impact are expected as the investigation progresses. → secnews.gr
2026-04-22 2026picoCTF Super Serial Writeup: PHP Object Injection Explained Clearly beginnerpicoCTF Super Serial Writeup: PHP Object Injection Explained Clearly
2026-04-22 2026Deep Dive into Fastjson Deserialization Vulnerabilities advancedDeep Dive into Fastjson Deserialization Vulnerabilities
2026-04-22 2026CVE-2025-24813 PoC: Apache Tomcat Java Deserialization newsProof-of-concept exploit for CVE-2025-24813, a Java deserialization vulnerability in Apache Tomcat. This tool, built with Docker, automates the generation and delivery of malicious serialized Java payloads using `ysoserial` or custom Java, targeting session files to trigger deserialization. It supports custom commands and can disable SSL verification for testing.
2026-04-22 2026WSUS Deserialization Exploit in the Wild (CVE-2025-59287) newsAnalysis of CVE-2025-59287, a WSUS deserialization vulnerability, details an in-the-wild exploitation targeting internet-exposed Windows Server Update Services. The exploit bypasses initial proof-of-concept limitations by delivering a custom .NET payload via a ysoserial.net gadget chain, enabling arbitrary command execution through an embedded `cmd.exe` process launched by `w3wp.exe`. This attack was observed via EDR telemetry, specifically the execution of `whoami.exe` with `w3wp.exe` as its parent, and confirmed by log analysis revealing deserialization errors.
2026-04-22 2026Precise and Effective Gadget Chain Mining through Deserialization-Guided Call Graph Construction (USENIX Security 2025) advancedTool for precise gadget chain mining using deserialization-guided call graph construction. This approach addresses limitations of existing methods by incorporating controllability analysis, hybrid dispatch techniques, and recovery of missing call edges due to reflection. Evaluated on 30 applications, it demonstrated improved recall and precision, detecting numerous new gadget chains and previously unknown exploitation methods for vulnerabilities like those related to Java deserialization.
2026-04-22 2026Gleipner: A Benchmark for Gadget Chain Detection in Java Deserialization Vulnerabilities advancedGleipner: A Benchmark for Gadget Chain Detection in Java Deserialization Vulnerabilities → dl.acm.org
2026-04-19 2026IBM webMethods Integration CVE-2025-36072: Deserialization RCE newsWriteup of CVE-2025-36072, an unsafe deserialization vulnerability (CWE-502) in IBM webMethods Integration Server. Exploitable by authenticated users with service execution privileges, this flaw allows attackers to submit crafted serialized object graphs to trigger arbitrary code execution. Affected versions include 10.11, 10.15, and 11.1, requiring the latest core fixes to mitigate the risk. → zeropath.com
2026-04-19 2026Deserialization Vulnerability — Exploit-DB Paper intermediateDeserialization Vulnerability — Exploit-DB Paper → exploit-db.com
2026-04-19 2026Cisco ISE Insecure Java Deserialization — Cisco Docs intermediateAdvisory detailing Insecure Java Deserialization vulnerabilities in Cisco Identity Service Engine (ISE). The advisory provides information on affected software releases and the first fixed release available through standard update channels for customers with active service contracts. It also outlines procedures for customers without service contracts to obtain security fixes.
2026-04-19 2026Insecure Deserialization Vulnerabilities — Acunetix beginnerReference list of web vulnerability categories, including Insecure Deserialization, SSRF, SQL Injection, XSS, XXE, and LLM-related issues like LLM Prompt Injection and LLM Sensitive Information Disclosure, with severity ratings. → acunetix.com
2026-04-19 2026Cisco ISE Insecure Java Deserialization (CVE-2025-20124) newsCisco ISE Insecure Java Deserialization (CVE-2025-20124)
2026-04-17 2026CVE-2023-34040: Spring-Kafka Java Deserialization newsLibrary fixes CVE-2023-34040 in Spring for Apache Kafka, addressing a deserialization attack vector in exception record headers. This vulnerability requires unusual configuration, specifically the enabling of `enable.idempotent.deserializer` and the use of an `ErrorHandlingDeserializer`. Releases 3.0.10 and 2.9.11 resolve this issue.
2026-04-17 2026Apache Struts vulnerability leads to RCE newsApache Struts vulnerability leads to RCE
2026-04-17 2026Jackson deserialization vulnerability exploit (3 gadgets, GitHub) intermediateLibrary for exploiting Jackson deserialization vulnerabilities. This resource contains code to reproduce exploits leveraging known gadgets, specifically focusing on the dangers of Polymorphic Type Handling when Jackson accepts untrusted JSON. It details how enabling default typing or using annotations can lead to Remote Code Execution if exploitable gadgets are present in the classpath, demonstrating with `com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl`.
2026-04-17 2026Apache Struts2 Code Execution Exploit (Infopercept) intermediateWriteup detailing an Apache Struts2 remote code execution exploit. The vulnerability, present in versions 2.1.2 to 2.3.x (prior to 2.3.34) and 2.5.x (prior to 2.5.13), stems from insecure deserialization via the Rest Plugin's XStream handler. Attackers can leverage specially crafted XML POST requests to execute system commands. The writeup covers setup with vulnerable servers like Pentester Lab or Metasploitable 3, and exploitation using Metasploit's `struts2_rest_xstream` module or a Python script.
2026-04-17 2026Spring-web Java Deserialization: CVE-2016-1000027 (Contrast) newsSpring-web Java Deserialization: CVE-2016-1000027 (Contrast)
2026-04-17 2026Exploiting Apache Struts: Writing Better Detections (Gigamon) intermediateWriteup analyzing detection bypasses for Apache Struts vulnerabilities CVE-2017-5638, CVE-2017-9791, and CVE-2017-9805. It demonstrates how focusing on implementation details of exploits, rather than the underlying Java deserialization and Property-Oriented Programming (POP) chain mechanics of CVE-2017-9805, leads to easily evadable detections. The analysis highlights specific POP gadget class paths, both strict and loose, that can be used to create more robust and attack-class-aware detection logic.
2026-04-17 2026Friday the 13th JSON Attacks (Black Hat) advancedFriday the 13th JSON Attacks (Black Hat) → blackhat.com
2026-04-17 2026PayloadsAllTheThings: Insecure Deserialization DotNET intermediateLibrary for exploiting insecure deserialization vulnerabilities in .NET applications. It details how various .NET formatters like BinaryFormatter, Json.Net, XmlSerializer, and NetDataContractSerializer can be abused. The library references tools such as `ysoserial.net` and `ysonet` for generating malicious payloads, and highlights specific gadgets like `ObjectDataProvider` and `ExpandedWrapper` used in exploit chains. It also links to several research papers and presentations on .NET deserialization attacks, including work by James Forshaw and Alvaro Muñoz.
2026-04-17 2026Basic .Net deserialization ObjectDataProvider gadget (HackTricks) intermediateBasic .Net deserialization ObjectDataProvider gadget (HackTricks) → book.hacktricks.xyz
2026-04-17 2026Python-Pickle-RCE-Exploit + vulnerable Flask App (GitHub) intermediateLibrary for demonstrating and exploiting Remote Code Execution (RCE) vulnerabilities via Python's pickle module. Includes a vulnerable Flask application and PoC scripts for executing arbitrary code by serializing and deserializing malicious objects. Useful for understanding pickle deserialization risks and testing applications that handle untrusted pickle data.
2026-04-17 2026SOUR PICKLE: Insecure Deserialization with Python Pickle beginnerSOUR PICKLE: Insecure Deserialization with Python Pickle
2026-04-17 2026PayloadsAllTheThings: Insecure Deserialization Python intermediateLibrary for understanding Python insecure deserialization vulnerabilities, focusing on the pickle and YAML modules. It details vulnerable sinks like `cPickle.loads` and `yaml.unsafe_load`, providing example payloads for Remote Code Execution (RCE) via `pickle` and `os.system` through YAML tags like `!!python/object/apply:os.system`. The entry also references CVE-2019-20477 and techniques for code injection, error-based, and time-based RCE.
2026-04-17 2026Python-socketio: Pickle deserialization RCE advisory newsAdvisory for python-socketio GHSA-g8c6-8fjj-2r4m details arbitrary Python code execution (RCE) via malicious pickle deserialization in multi-server deployments. Attackers with access to the message queue can send crafted pickle payloads, exploiting `pickle.loads()` and Python's `__reduce__` method to execute arbitrary code with the server's privileges. Versions prior to 5.14.0 are affected; upgrading to 5.14.0+ resolves this by using JSON encoding instead of pickle.
2026-04-17 2026Exploiting deserialization in recent Java versions (OWASP Stuttgart) intermediateExploiting deserialization in recent Java versions (OWASP Stuttgart) → owasp.org
2026-04-17 2026Automated Discovery of Deserialization Gadget Chains (Black Hat) advancedAutomated Discovery of Deserialization Gadget Chains (Black Hat)
2026-04-17 2026Prevent insecure deserialization attacks (Veracode) beginnerLibrary on preventing insecure deserialization, an OWASP Top Ten vulnerability enabling attacks like RCE, SQL injection, and path traversal. It details threat vectors, attack examples using tools like Java Serial Killer and manipulated PHP object serialization, and mitigation strategies including avoiding untrusted input, utilizing JSON, digital signatures, and running deserialization in low-privilege environments. The resource also covers manual and dynamic testing approaches.
2026-04-17 2026Understanding Insecure Deserialization: Risks and Mitigations beginnerUnderstanding Insecure Deserialization: Risks and Mitigations
2026-04-17 2026Bug Bounty Hunting: Insecure Deserialization beginnerBug Bounty Hunting: Insecure Deserialization
2026-04-17 2026Insecure Deserialization - Attack Technique (vuln.today) intermediateLibrary for understanding and mitigating insecure deserialization vulnerabilities. It details how attackers exploit this weakness by crafting malicious serialized payloads, often leveraging "gadget chains" via tools like ysoserial or phpggc, to achieve remote code execution, authentication bypass, and other impacts. Specific instances like SolarWinds Web Help Desk, Jenkins, and WordPress vulnerabilities are discussed, alongside mitigations such as avoiding untrusted data deserialization, implementing allowlists, and applying cryptographic signatures. The entry also notes a denial of service vulnerability in Nerdbank.MessagePack related to `DateTime` decoding and OutOfMemoryErrors in Apache OpenNLP model deserialization.
2026-04-16 2026Depickling, Gadgets, and Chains: The Exploit That Unraveled Equifax advancedReference on deserialization vulnerabilities, detailing how the Equifax breach stemmed from CVE-2017-5638 in Apache Struts. It explains the "gadget" and "chain" exploitation technique, drawing parallels to concepts from the "Marshalling Pickles" talk by Lawrence and Frohoff, and referencing CVE-2013-0156 in Rails. The entry highlights the dangers of unchecked input in serialization mechanisms leading to arbitrary code execution.
2026-04-16 2026How to Exploit PHAR Deserialization Vulnerability intermediateLibrary for PHP deserialization vulnerabilities, focusing on PHAR archives. It details how the `phar://` stream wrapper can automatically deserialize PHAR file metadata, enabling Property Oriented Programming (POP) attacks. The resource explains POP attacks, including the role of magic methods like `__destruct()`, and provides a proof-of-concept exploit demonstrating code execution via a crafted PHAR archive with a malicious object in its metadata.
2026-04-16 2026Insecure Reflection Practices in Java and C# intermediateLibrary detailing insecure reflection practices in Java and C# applications, outlining vulnerabilities like remote code execution and privilege escalation that arise from unchecked dynamic class loading and type resolution. It emphasizes proactive mitigation strategies, including class whitelisting and securing deserialization pathways, and highlights real-world impacts through case studies like CVE-2025-53770 in SharePoint, demonstrating how reflection is exploited during deserialization, often facilitated by tools like ysoserial.
2026-04-16 2026Java Deserialization Tricks - Synacktiv advancedLibrary of techniques for evading WAFs and EDRs during Java deserialization exploitation. This library focuses on stealthy RCE, demonstrating how to bypass pattern detection by renaming packages and modifying gadget chains, as well as utilizing the Translet API to inject custom Java code at runtime. It provides methods to avoid detection from common security solutions like WAFs and EDRs by obfuscating strings and injecting bytecode, offering alternatives to direct command execution.
2026-04-16 2026Deep Dive into .NET ViewState Deserialization advancedDeep Dive into .NET ViewState Deserialization
2026-04-16 2026ViewState Deserialization Zero-Day in Sitecore (CVE-2025-53690) newsWriteup of CVE-2025-53690, a ViewState deserialization zero-day impacting Sitecore deployments. Mandiant's investigation revealed attackers exploiting an exposed sample machine key to achieve remote code execution. Post-exploitation involved WEEPSTEEL reconnaissance, archiving sensitive files like `web.config`, and using tools such as EARTHWORM, DWAGENT, and SHARPHOUND for network tunneling, remote access, and Active Directory enumeration, culminating in privilege escalation and lateral movement via RDP. → cloud.google.com
2026-04-16 2026The Art of Hide and Seek: Pickle-Based Model Supply Chain Poisoning advancedLibrary for detecting and bypassing pickle-based model supply chain poisoning in Python AI/ML frameworks. It systematically discloses the poisoning surface across model loading paths and risky functions, identifying 22 overlooked loading paths and 133 exploitable gadgets. The research also introduces Exception-Oriented Programming (EOP) to bypass scanners, demonstrating robust vulnerabilities missed by current detection solutions like PickleScan and ModelScan, and leading to a $6000 bug bounty. → arxiv.org
2026-04-10 2026Insecure Deserialization: Risks, Examples, and Best Practices beginnerLibrary covering insecure deserialization, a vulnerability allowing attackers to inject malicious code by manipulating untrusted serialized data. Exploits can lead to remote code execution, privilege escalation, or denial-of-service attacks. Best practices include strict input validation, using secure serialization libraries, implementing cryptographic integrity checks, and app shielding to protect against tampering.
2026-04-10 2026Deserialization Gadget Chain Definition beginnerLibrary defines Deserialization Gadget Chains, a technique exploiting insecure deserialization by chaining existing application code fragments to achieve remote code execution. Unlike injecting new code, this method abuses legitimate, benign code through reflection and method invocation, as exemplified by the CommonsCollections chain. → pentesterlab.com
2026-04-10 2026CVE-2026-20963: SharePoint Deserialization RCE Analysis intermediateAnalysis of CVE-2026-20963 details a critical remote code execution vulnerability in Microsoft SharePoint stemming from unsafe deserialization of user-controlled data. Attackers exploit this by crafting malicious .NET gadget chains within serialized payloads, allowing arbitrary code execution with low-privileged authenticated access. This vulnerability, listed on CISA's Known Exploited Vulnerabilities catalog, enables attackers to compromise SharePoint servers, pivot to other network systems, and access sensitive enterprise data. Detection requires layered monitoring of application requests, process behavior, and network traffic, as exploitation often bypasses traditional signature-based methods. → securityboulevard.com
2026-04-10 2026SharePoint Zero-Day CVE-2025-53770 Actively Exploited newsWriteup detailing CVE-2025-53770, a critical zero-day vulnerability in on-premise SharePoint servers actively exploited by the "ToolShell" campaign. This vulnerability allows unauthenticated remote code execution and insecure deserialization via custom webshells parsing VIEWSTATE payloads. Attackers chain this with known Ivanti EPMM vulnerabilities like CVE-2025-4427 and CVE-2025-4428, targeting government, telecommunications, software, financial, business services, and consumer goods sectors, primarily in North America and Western Europe. Recommendations include enabling Anti-Malware Scan Interface, rotating machine keys, deploying endpoint protection, and updating Intrusion Prevention System packages.
2026-04-10 2026SolarWinds Web Help Desk Deserialization Vulnerability intermediateSolarWinds Web Help Desk Deserialization Vulnerability → cybersecuritynews.com
2026-04-10 2026SnakeYAML Deserialization Deep Dive (CVE-2022-1471) intermediateWriteup of CVE-2022-1471 in SnakeYAML, detailing its insecure-by-default deserialization allowing RCE. This analysis covers the vulnerability's technical mechanics, the history of similar issues in SnakeYAML, and provides steps to build a vulnerable application and develop an exploit for remote code execution.
2026-04-10 2026Docling RCE via PyYAML (CVE-2026-24009) intermediateWriteup of CVE-2026-24009 detailing a Docling RCE vulnerability stemming from unsafe YAML deserialization via PyYAML. This "shadow vulnerability," often hidden in transitive dependencies, allows attackers to execute arbitrary Python code by submitting malicious documents. The flaw, similar to past deserialization exploits like the ByBit heist, is only detectable at runtime, bypassing traditional static analysis and dependency checks. Oligo's CADR solution identifies and blocks these unsafe deserialization flows in real-time.
2026-04-10 2026PyTorch Users at Risk: 3 Zero-Day PickleScan Vulnerabilities news PythonLibrary for scanning PyTorch ML models, PickleScan, is vulnerable to three zero-day exploits including CVE-2025-10155, a file extension bypass. These vulnerabilities allow attackers to evade detection by masquerading malicious code within model files, potentially leading to large-scale supply chain attacks on platforms like Hugging Face. The exploits target PickleScan's parsing logic, which can be tricked by specific file extensions to skip bytecode analysis of embedded malicious Python code within pickle serialization.
2026-04-10 2026PickleBall: Secure Deserialization of Pickle-based ML Models intermediateLibrary for securely deserializing pickle-based machine learning models. PickleBall statically analyzes model source code to generate custom policies for safe load-time behavior, enforcing them dynamically as a replacement for the standard pickle module. This approach correctly loads 79.8% of benign models while rejecting all tested malicious examples, offering a significant improvement over existing model scanners and loaders. → arxiv.org
2026-04-10 2026CVE-2026-33728: dd-trace-java Unsafe Deserialization in RMI newsCVE-2026-33728: dd-trace-java Unsafe Deserialization in RMI → advisories.gitlab.com
2026-04-10 2026CVE-2026-33439: OpenAM Pre-Auth RCE via Deserialization newsCVE-2026-33439: OpenAM Pre-Auth RCE via Deserialization → advisories.gitlab.com
2026-04-10 2026PayloadsAllTheThings - Ruby Deserialization Payloads intermediateReference detailing Ruby deserialization vulnerabilities, including a script to generate gadget chains for Ruby 2.0-2.5. It highlights universal gadgets for Ruby versions up to 2.7.2 and 3.x, and cites specific research on RCE via YAML.load and Marshal, referencing works by Luke Jahnke, Etienne Stalmans, Colin McQueen, and PentesterLab.

Frequently Asked Questions

What makes deserialization vulnerabilities so dangerous?
Deserialization vulnerabilities often lead directly to remote code execution (RCE) because the deserialization process can trigger arbitrary method calls through gadget chains — sequences of existing classes whose methods chain together to execute attacker-controlled commands. A single crafted payload can compromise an entire server.
What is a gadget chain?
A gadget chain is a sequence of existing classes and methods in an application's classpath that, when triggered during deserialization, produce a dangerous side effect like code execution. Tools like ysoserial (Java), phpggc (PHP), and peas (Python) generate payloads for known gadget chains in popular libraries and frameworks.
How do you prevent insecure deserialization?
Never deserialize untrusted data using native serialization formats (Java ObjectInputStream, Python pickle, PHP unserialize). Use safe data formats like JSON for data exchange. If native serialization is required, implement strict type allowlists, integrity checks (HMAC signatures), and consider using look-ahead deserialization that validates types before instantiation.

Weekly AppSec Digest

Get new resources delivered every Monday.