2
0

Sleeping Giants - Activating Dormant Java Deserialization Gadget Chains through Stealthy Code Changes

Bruno Kreyssig
Sabine Houy
Timothée Riom
Alexandre Bartel
Abstract

Java deserialization gadget chains are a well-researched critical software weakness. The vast majority of known gadget chains rely on gadgets from software dependencies. Furthermore, it has been shown that small code changes in dependencies have enabled these gadget chains. This makes gadget chain detection a purely reactive endeavor. Even if one dependency's deployment pipeline employs gadget chain detection, a gadget chain can still result from gadgets in other dependencies. In this work, we assess how likely small code changes are to enable a gadget chain. These changes could either be accidental or intentional as part of a supply chain attack. Specifically, we show that class serializability is a strongly fluctuating property over a dependency's evolution. Then, we investigate three change patterns by which an attacker could stealthily introduce gadgets into a dependency. We apply these patterns to 533 dependencies and run three state-of-the-art gadget chain detectors both on the original and the modified dependencies. The tools detect that applying the modification patterns can activate/inject gadget chains in 26.08% of the dependencies we selected. Finally, we verify the newly detected chains. As such, we identify dormant gadget chains in 53 dependencies that could be added through minor code modifications. This both shows that Java deserialization gadget chains are a broad liability to software and proves dormant gadget chains as a lucrative supply chain attack vector.

View on arXiv
@article{kreyssig2025_2504.20485,
  title={ Sleeping Giants - Activating Dormant Java Deserialization Gadget Chains through Stealthy Code Changes },
  author={ Bruno Kreyssig and Sabine Houy and Timothée Riom and Alexandre Bartel },
  journal={arXiv preprint arXiv:2504.20485},
  year={ 2025 }
}
Comments on this paper