Summary

An attacker can send a specially crafted XML request to the application containing an embedded YAML-encoded object. Rails will parse the XML and load the objects from YAML. In the process, arbitrary Ruby code sent by the attacker may be executed (depending on the type and structure of the injected objects).

Impact
An attacker can execute arbitrary Ruby on Rails (RoR) code on the system. The attacker may also be able to execute arbitrary system commands.
Remediation
Upgrade to version 2.3.15, 3.0.19, 3.1.10, 3.2.11, or higher, to address this vulnerability. Additionally, the vendor has released a patch to address this issue, or users may opt to apply the following temporary workaround.
  • Disable XML entirely
  • Remove YAML / Symbol support from XML parsing
Required Skills for Successful Exploitation
This vulnerability is not difficult to leverage, RoR is a high level language for which there are vast resources available. Successful exploitation requires knowledge of the programming language, access to or the ability to produce source code for use in such attacks and minimal attack skills.
Classifications
PCI v3.1-6.5.1, PCI v3.2-6.5.1, CAPEC-356, WASC-23, OWASP 2013-A1 , CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N