Researcher Demonstrates Bypasses for Hardened .NET Deserialization
· 49:38 · Watch on YouTube ↗
Summary
Piotr Bazydło demonstrates deserialization and serialization gadget chains that bypass protections in SolarWinds, Exchange and Device Master, enabling code execution or information disclosure in test scenarios.
Key points
- The researcher bypassed a SolarWinds deserialization blocklist using a misidentified class and custom gadgets in the product codebase.
- An Exchange allowlisted generic class could invoke an unchecked inner type; a subsequent blocklist could also be bypassed with an Exchange class that starts a process.
- The Exchange vulnerabilities demonstrated could be exploited by a user with a mailbox, according to the researcher.
- In Device Master, a serialization gadget triggered binary deserialization and pre-authentication code execution after an earlier architecture change.
- SolarWinds serialization gadgets exposed file contents and database credentials; one demonstration used a recovered secret to execute commands.
- The researcher combined arbitrary getter calls with serialization gadgets and described further bypasses of class blocklists.
- Microsoft told the researcher that remote DLL loading behavior in newer .NET versions was expected and that its documentation would be changed.
Article Details
- Topics
- [00:53] Hardened deserialization targets and gadget discovery
- [01:42] SolarWinds blocklist bypasses and custom gadget chains
- [15:23] Exchange ProxyNotShell deserialization and patch bypasses
- [24:10] Device Master authentication and MessagePack deserialization
- [29:01] Insecure serialization gadgets and information disclosure
- [38:28] Chaining arbitrary getter calls with serialization gadgets
- [45:04] Gadgets and remote DLL loading in newer .NET versions
- [48:08] Gadget and plugin contributions to ysoserial.net
