Overview

MCollective Remote Code Execution Via YAML Deserialization

  • Posted May 11, 2017

  • Assessed Risk Level: Critical

  • CVSS: 9.0

Versions of MCollective prior to 2.10.4 deserialized YAML from agents without calling safe_load, allowing the potential for arbitrary code execution on the server. The fix for this is to call YAML.safe_load on input. This has been tested in all Puppet-supplied MCollective plugins, but there is a chance that third-party plugins could rely on this insecure behavior.

This vulnerability was found by an internal audit at Puppet.

Status:

Affected Software Versions:

  • Puppet Enterprise prior to 2016.4.5
  • Puppet Enterprise 2016.5.x
  • Puppet Enterprise 2017.1.x
  • Puppet Agent prior to 1.10.1

Resolved in:

  • Puppet Enterprise 2016.4.5
  • Puppet Enterprise 2017.2.1
  • Puppet Agent 1.10.1