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-22 NEW 2026 | picoCTF Super Serial Writeup: PHP Object Injection Explained Clearly | picoCTF Super Serial Writeup: PHP Object Injection Explained Clearly |
| 2026-04-22 NEW 2026 | Deep Dive into Fastjson Deserialization Vulnerabilities | Deep Dive into Fastjson Deserialization Vulnerabilities |
| 2026-04-22 NEW 2026 | CVE-2025-24813 PoC: Apache Tomcat Java Deserialization | CVE-2025-24813 PoC: Apache Tomcat Java Deserialization |
| 2026-04-22 NEW 2026 | WSUS Deserialization Exploit in the Wild (CVE-2025-59287) | WSUS Deserialization Exploit in the Wild (CVE-2025-59287) |
| 2026-04-22 NEW 2026 | Precise and Effective Gadget Chain Mining through Deserialization-Guided Call Graph Construction (USENIX Security 2025) | Precise and Effective Gadget Chain Mining through Deserialization-Guided Call Graph Construction (USENIX Security 2025) |
| 2026-04-22 NEW 2026 | Gleipner: A Benchmark for Gadget Chain Detection in Java Deserialization Vulnerabilities | Gleipner: A Benchmark for Gadget Chain Detection in Java Deserialization Vulnerabilities |
| 2026-04-19 NEW 2026 | IBM webMethods Integration CVE-2025-36072: Deserialization RCE | IBM webMethods Integration CVE-2025-36072: Deserialization RCE |
| 2026-04-19 NEW 2026 | Deserialization Vulnerability — Exploit-DB Paper | Deserialization Vulnerability — Exploit-DB Paper |
| 2026-04-19 NEW 2026 | Cisco ISE Insecure Java Deserialization — Cisco Docs | Cisco ISE Insecure Java Deserialization — Cisco Docs |
| 2026-04-19 NEW 2026 | Insecure Deserialization Vulnerabilities — Acunetix | Insecure Deserialization Vulnerabilities — Acunetix |
| 2026-04-19 NEW 2026 | Cisco ISE Insecure Java Deserialization (CVE-2025-20124) | Cisco ISE Insecure Java Deserialization (CVE-2025-20124) |
| 2026-04-17 NEW 2026 | CVE-2023-34040: Spring-Kafka Java Deserialization | CVE-2023-34040: Spring-Kafka Java Deserialization |
| 2026-04-17 NEW 2026 | Apache Struts vulnerability leads to RCE | Apache Struts vulnerability leads to RCE |
| 2026-04-17 NEW 2026 | Jackson deserialization vulnerability exploit (3 gadgets, GitHub) | Jackson deserialization vulnerability exploit (3 gadgets, GitHub) |
| 2026-04-17 NEW 2026 | Apache Struts2 Code Execution Exploit (Infopercept) | Apache Struts2 Code Execution Exploit (Infopercept) |
| 2026-04-17 NEW 2026 | Spring-web Java Deserialization: CVE-2016-1000027 (Contrast) | Spring-web Java Deserialization: CVE-2016-1000027 (Contrast) |
| 2026-04-17 NEW 2026 | Exploiting Apache Struts: Writing Better Detections (Gigamon) | Exploiting Apache Struts: Writing Better Detections (Gigamon) |
| 2026-04-17 NEW 2026 | Friday the 13th JSON Attacks (Black Hat) | Friday the 13th JSON Attacks (Black Hat) |
| 2026-04-17 NEW 2026 | PayloadsAllTheThings: Insecure Deserialization DotNET | PayloadsAllTheThings: Insecure Deserialization DotNET |
| 2026-04-17 NEW 2026 | Basic .Net deserialization ObjectDataProvider gadget (HackTricks) | Basic .Net deserialization ObjectDataProvider gadget (HackTricks) |
| 2026-04-17 NEW 2026 | Python-Pickle-RCE-Exploit + vulnerable Flask App (GitHub) | Python-Pickle-RCE-Exploit + vulnerable Flask App (GitHub) |
| 2026-04-17 NEW 2026 | SOUR PICKLE: Insecure Deserialization with Python Pickle | SOUR PICKLE: Insecure Deserialization with Python Pickle |
| 2026-04-17 NEW 2026 | PayloadsAllTheThings: Insecure Deserialization Python | PayloadsAllTheThings: Insecure Deserialization Python |
| 2026-04-17 NEW 2026 | Pickle Code Execution Exploitation (Dhound) | Pickle Code Execution Exploitation (Dhound) |
| 2026-04-17 NEW 2026 | Python-socketio: Pickle deserialization RCE advisory | Python-socketio: Pickle deserialization RCE advisory |
| 2026-04-17 NEW 2026 | Exploiting deserialization in recent Java versions (OWASP Stuttgart) | Exploiting deserialization in recent Java versions (OWASP Stuttgart) |
| 2026-04-17 NEW 2026 | Automated Discovery of Deserialization Gadget Chains (Black Hat) | Automated Discovery of Deserialization Gadget Chains (Black Hat) |
| 2026-04-17 NEW 2026 | Prevent insecure deserialization attacks (Veracode) | Prevent insecure deserialization attacks (Veracode) |
| 2026-04-17 NEW 2026 | Understanding Insecure Deserialization: Risks and Mitigations | Understanding Insecure Deserialization: Risks and Mitigations |
| 2026-04-17 NEW 2026 | Bug Bounty Hunting: Insecure Deserialization | Bug Bounty Hunting: Insecure Deserialization |
| 2026-04-17 NEW 2026 | Insecure Deserialization - Attack Technique (vuln.today) | Insecure Deserialization - Attack Technique (vuln.today) |
| 2026-04-16 NEW 2026 | Depickling, Gadgets, and Chains: The Exploit That Unraveled Equifax | Depickling, Gadgets, and Chains: The Exploit That Unraveled Equifax |
| 2026-04-16 NEW 2026 | How to Exploit PHAR Deserialization Vulnerability | How to Exploit PHAR Deserialization Vulnerability |
| 2026-04-16 NEW 2026 | Insecure Reflection Practices in Java and C# | Insecure Reflection Practices in Java and C# |
| 2026-04-16 NEW 2026 | Java Deserialization Tricks - Synacktiv | Java Deserialization Tricks - Synacktiv |
| 2026-04-16 NEW 2026 | Deep Dive into .NET ViewState Deserialization | Deep Dive into .NET ViewState Deserialization |
| 2026-04-16 NEW 2026 | ViewState Deserialization Zero-Day in Sitecore (CVE-2025-53690) | ViewState Deserialization Zero-Day in Sitecore (CVE-2025-53690) |
| 2026-04-16 NEW 2026 | The Art of Hide and Seek: Pickle-Based Model Supply Chain Poisoning | The Art of Hide and Seek: Pickle-Based Model Supply Chain Poisoning |
| 2026-04-10 2026 | Insecure Deserialization: Risks, Examples, and Best Practices | Insecure Deserialization: Risks, Examples, and Best Practices |
| 2026-04-10 2026 | Deserialization Gadget Chain Definition | Deserialization Gadget Chain Definition |
| 2026-04-10 2026 | CVE-2026-20963: SharePoint Deserialization RCE Analysis | CVE-2026-20963: SharePoint Deserialization RCE Analysis |
| 2026-04-10 2026 | SharePoint Zero-Day CVE-2025-53770 Actively Exploited | SharePoint Zero-Day CVE-2025-53770 Actively Exploited |
| 2026-04-10 2026 | SolarWinds Web Help Desk Deserialization Vulnerability | SolarWinds Web Help Desk Deserialization Vulnerability |
| 2026-04-10 2026 | SnakeYAML Deserialization Deep Dive (CVE-2022-1471) | SnakeYAML Deserialization Deep Dive (CVE-2022-1471) |
| 2026-04-10 2026 | Docling RCE via PyYAML (CVE-2026-24009) | Docling RCE via PyYAML (CVE-2026-24009) |
| 2026-04-10 2026 | PyTorch Users at Risk: 3 Zero-Day PickleScan Vulnerabilities | PyTorch Users at Risk: 3 Zero-Day PickleScan Vulnerabilities |
| 2026-04-10 2026 | PickleBall: Secure Deserialization of Pickle-based ML Models | PickleBall: Secure Deserialization of Pickle-based ML Models |
| 2026-04-10 2026 | CVE-2026-33728: dd-trace-java Unsafe Deserialization in RMI | CVE-2026-33728: dd-trace-java Unsafe Deserialization in RMI |
| 2026-04-10 2026 | CVE-2026-33439: OpenAM Pre-Auth RCE via Deserialization | CVE-2026-33439: OpenAM Pre-Auth RCE via Deserialization |
| 2026-04-10 2026 | PayloadsAllTheThings - Ruby Deserialization Payloads | PayloadsAllTheThings - Ruby Deserialization Payloads |
| 2026-04-10 2026 | Ruby Vulnerabilities: Exploiting Open, Send, and Deserialization | Ruby Vulnerabilities: Exploiting Open, Send, and Deserialization |
| 2026-04-10 2026 | Java Deserialization Gadget Chains Explained | Java Deserialization Gadget Chains Explained |
| 2026-04-10 2026 | Deserialization Gadget Chains in Android: An In-Depth Study | Deserialization Gadget Chains in Android: An In-Depth Study |
| 2026-04-10 2026 | What Actually Is a Deserialization Gadget Chain? | What Actually Is a Deserialization Gadget Chain? |
| 2026-04-10 2026 | ysoserial: Java Deserialization Payload Generator | ysoserial: Java Deserialization Payload Generator |
| 2026-04-10 2026 | ysoserial.net: Deserialization Payload Generator for .NET | ysoserial.net: Deserialization Payload Generator for .NET |
| 2026-04-10 2026 | The Anatomy of Deserialization Attacks | The Anatomy of Deserialization Attacks |
| 2026-04-10 2026 | Marshal Madness: A Brief History of Ruby Deserialization Exploits | Marshal Madness: A Brief History of Ruby Deserialization Exploits |
| 2026-04-10 2026 | Deserialization Attacks: How Exploiting Data Formats Can Break Security | Deserialization Attacks: How Exploiting Data Formats Can Break Security |
| 2026-04-10 2026 | DELMIA Apriso Insecure Deserialization Exploited in the Wild (CVE-2025-5086) | DELMIA Apriso Insecure Deserialization Exploited in the Wild (CVE-2025-5086) |
| 2026-04-10 2026 | PayloadsAllTheThings - PHP Deserialization Payloads | PayloadsAllTheThings - PHP Deserialization Payloads |
| 2026-04-10 2026 | Exploiting PHP Deserialization with POP Chains | Exploiting PHP Deserialization with POP Chains |
| 2026-04-10 2026 | What is PHP Object Injection? An In-Depth Guide | What is PHP Object Injection? An In-Depth Guide |
| 2026-04-10 2026 | PHP Object Injection Research | PHP Object Injection Research |
| 2026-04-10 2026 | .NET Deserialization Cheat Sheet | .NET Deserialization Cheat Sheet |
| 2026-04-10 2026 | BinaryFormatter Deserialization Security Guide for .NET | BinaryFormatter Deserialization Security Guide for .NET |
| 2026-04-10 2026 | Microsoft SharePoint Deserialization RCE (CVE-2026-26114) | Microsoft SharePoint Deserialization RCE (CVE-2026-26114) |
| 2026-04-10 2026 | .NET JSON.NET Deserialization RCE | .NET JSON.NET Deserialization RCE |
| 2026-04-10 2026 | Deserialization Bugs in the Wild | Deserialization Bugs in the Wild |
| 2026-04-10 2026 | Insecure Deserialization in Python: A Complete Guide | Insecure Deserialization in Python: A Complete Guide |
| 2026-04-10 2026 | Security in Python Deserialization: Safe Pickle Alternatives 2025 | Security in Python Deserialization: Safe Pickle Alternatives 2025 |
| 2026-04-10 2026 | Exposing 4 Critical Vulnerabilities in Python Picklescan | Exposing 4 Critical Vulnerabilities in Python Picklescan |
| 2026-04-10 2026 | Breaking Pickle: RCE Through Python Deserialization | Breaking Pickle: RCE Through Python Deserialization |
| 2026-04-10 2026 | Pickle Deserialization in ML Pipelines: The RCE That Won't Go Away | Pickle Deserialization in ML Pipelines: The RCE That Won't Go Away |
| 2026-04-10 2026 | Insecure Deserialization Tutorial and Examples | Insecure Deserialization Tutorial and Examples |
| 2026-04-10 2026 | An In-depth Study of Java Deserialization RCE Exploits | An In-depth Study of Java Deserialization RCE Exploits |
| 2026-04-10 2026 | OWASP Deserialization Cheat Sheet | OWASP Deserialization Cheat Sheet |
| 2026-04-10 2026 | Deserialization Vulnerabilities in Java | Deserialization Vulnerabilities in Java |
| 2026-04-10 2026 | Java Deserialization Cheat Sheet | Java Deserialization Cheat Sheet |
| 2026-04-10 2026 | Insecure Deserialization in Web Applications | Insecure Deserialization in Web Applications |
| 2026-04-10 2026 | CVE-2026-25769: Wazuh Critical RCE via Unsafe Deserialization | CVE-2026-25769: Wazuh Critical RCE via Unsafe Deserialization |
| 2026-04-10 2026 | U-Office Force Critical RCE via Insecure Deserialization (CVE-2026-3422) | U-Office Force Critical RCE via Insecure Deserialization (CVE-2026-3422) |
| 2026-04-10 2026 | IBM Langflow Desktop RCE via Insecure Deserialization | IBM Langflow Desktop RCE via Insecure Deserialization |
| 2026-04-06 2026 | Remote Code Execution (RCE) Prevention - SecPortal | Remote Code Execution (RCE) Prevention - SecPortal |
| 2026-04-06 2026 | CVE-2025-12305: Shiyi-blog RCE via Deserialization | CVE-2025-12305: Shiyi-blog RCE via Deserialization |
| 2026-04-06 2026 | CVE-2025-34153: Hyland OnBase RCE via Deserialization | CVE-2025-34153: Hyland OnBase RCE via Deserialization |
| 2026-04-06 2026 | CVE-2025-42928: SAP jConnect RCE via Deserialization | CVE-2025-42928: SAP jConnect RCE via Deserialization |
| 2026-04-06 2026 | Insecure Deserialization Guide - SecPortal | Insecure Deserialization Guide - SecPortal |
| 2026-04-03 2026 | Unsafe Deserialization in Ruby | SecureFlag | Unsafe Deserialization in Ruby | SecureFlag |
| 2026-04-03 2026 | Analyzing Prerequisites of Known Deserialization Vulnerabilities on Java Applications | Analyzing Prerequisites of Known Deserialization Vulnerabilities on Java Applications |
| 2026-04-03 2026 | Insecure Deserialization: The Vulnerability That Gives Attackers RCE | Insecure Deserialization: The Vulnerability That Gives Attackers RCE |
| 2026-04-03 2026 | Lab: Exploiting Ruby Deserialization Using a Documented Gadget Chain | PortSwigger | Lab: Exploiting Ruby Deserialization Using a Documented Gadget Chain | PortSwigger |
| 2026-04-03 2026 | Ruby 2.x Universal RCE Deserialization Gadget Chain | elttam | Ruby 2.x Universal RCE Deserialization Gadget Chain | elttam |
| 2026-04-03 2026 | Insecure Deserialization Explained with Examples | Insecure Deserialization Explained with Examples |
| 2026-04-03 2026 | Now You Serial, Now You Don't — Systematically Hunting for Deserialization Exploits | Google Cloud | Now You Serial, Now You Don't — Systematically Hunting for Deserialization Exploits | Google Cloud |
| 2026-04-03 2026 | PayloadsAllTheThings - Java Deserialization Payloads | PayloadsAllTheThings - Java Deserialization Payloads |
| 2026-04-03 2026 | Insecure Deserialization | OWASP | Insecure Deserialization | OWASP |
| 2026-04-03 2026 | Exploiting Insecure Deserialization Vulnerabilities | PortSwigger | Exploiting Insecure Deserialization Vulnerabilities | PortSwigger |
| 2020-06-29 2020 | Insecure deserialization | Web Security Academy | In this section, we'll cover what insecure deserialization is and describe how it can potentially expose websites to high-severity attacks. We'll highlight ... |
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.