Cadena de gadgets universal de deserialización RCE en Ruby 4.0
Ruby 4.0 Universal RCE Deserialization Gadget Chain

Una nueva cadena universal convierte una sola llamada a Marshal.load en ejecución de comandos en Ruby 4.0.6, la versión más reciente. La cadena, construida con gadgets de fuentes no explotadas y reutilizando otros, funciona en versiones desde 3.3. Se basa en Gem::Specification.load para ejecutar código arbitrario y utiliza Gem::StubSpecification y Gem::URI::Generic para desencadenar la carga. El artículo detalla cómo se rompió la cadena anterior y cómo se superaron las nuevas restricciones.
El desencadenante no es una anulación especializada de marshal_load que un mantenedor pueda ajustar silenciosamente, sino la interacción entre dos características fundamentales del lenguaje: aplicar hash a un objeto y reconstruir un Hash durante la deserialización.