Rapid7 Vulnerability & Exploit Database

Ruby on Rails XML Processor YAML Deserialization Code Execution

Back to Search

Ruby on Rails XML Processor YAML Deserialization Code Execution



This module exploits a remote code execution vulnerability in the XML request processor of the Ruby on Rails application framework. This vulnerability allows an attacker to instantiate a remote object, which in turn can be used to execute any ruby code remotely in the context of the application. This module has been tested across multiple versions of RoR 3.x and RoR 2.x The technique used by this module requires the target to be running a fairly recent version of Ruby 1.9 (since 2011 or so). Applications using Ruby 1.8 may still be exploitable using the init_with() method, but this has not been demonstrated.


  • charliesome
  • espes
  • lian
  • hdm <x@hdm.io>






Module Options

To display the available options, load the module within the Metasploit console and run the commands 'show options' or 'show advanced':

msf > use exploit/multi/http/rails_xml_yaml_code_exec
msf exploit(rails_xml_yaml_code_exec) > show targets
msf exploit(rails_xml_yaml_code_exec) > set TARGET < target-id >
msf exploit(rails_xml_yaml_code_exec) > show options
    ...show and set options...
msf exploit(rails_xml_yaml_code_exec) > exploit

Time is precious, so I don’t want to do something manually that I can automate. Leveraging the Metasploit Framework when automating any task keeps us from having to re-create the wheel as we can use the existing libraries and focus our efforts where it matters.

– Jim O’Gorman | President, Offensive Security