Second Breakfast: Implicit and Mutation-Based Serialization Vulnerabilities in .NET
summary
Demonstrates concrete RCEs by crafting serialized payloads and showstopping mutations that turn innocuous key/value maps into gadgets, successfully exploiting LiteDB, MongoDB, RavenDB, ServiceStack.Redis, MartenDB, JSON.Net and the .NET JavaScriptSerializer. Describes the mutation-based serialization trick (put "$type" into a string→string dictionary), an implicit serialization danger where libraries deserialize storage for callers, and multiple serialization binder bypass techniques via generics and contagion. Recommends removing polymorphic serializers and unsafe settings; most vendors patch differently and JSON.Net refuses to change.
AI-written summary · about
chapters (17)
- 0:00Introduction
- 0:17Understanding type get type
- 1:43LiteDB serialization
- 2:54Deserialization gadgets
- 4:35Implicit vulnerabilities
- 6:12NoSQL client risks
- 6:54Vulnerabilities in MongoDB
- 8:16RavenDB and ServiceStack
- 9:37MartinDB and mutations
- 11:18Mutation attack mechanics
- 13:28Impact of mutation attacks
- 15:22Vulnerable serializers
- 16:24Defending against attacks
- 16:51Bypassing security binders
- 18:58Binder bypass examples
- 20:35Vendor fixes and status
- 21:50Conclusion and Q&A
related talks
44mSecond Breakfast: Implicit and Mutation-Based Serialization Vulnerabilities in .NET
49mDeserialization vulns: past, present, and future
35mDangerous Serialization
41mFriday the 13th: Attacking JSON
01h 01mThe Code Behind The Vulnerability
45mThe Code Behind The Vulnerability
41mJava Serialisation: A Modern Fairytale
58mThe Code Behind The Vulnerability
