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.

Severity

Critical

Classification

PCI v3.2-6.5.1 CAPEC-356 CWE-94 HIPAA-164.306(a) 164.308(a) ISO27001-A.14.2.5 WASC-23 OWASP 2013-A1 OWASP 2017-A1 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N