When making REST api calls, the puppet master takes YAML from an untrusted client, deserializes it, and then calls methods on the resulting object. A YAML payload can be crafted to cause the deserialization to construct an instance of any class available in the ruby process, which allows an attacker to execute code contained in the payload.
4331f8a7741c008aa390b37694c2381491f1dd083ba0a9941ebaf7a62f36e8ac
Overview
CVE-2013-3567 (Unauthenticated Remote Code Execution Vulnerability)
Posted June 18, 2013
When making REST api calls, the puppet master takes YAML from an untrusted
client, deserializes it, and then calls methods on the resulting object. A YAML
payload can be crafted to cause the deserialization to construct an instance of
any class available in the ruby process, which allows an attacker to execute
code contained in the payload.
Status
Resolved in Puppet 2.7.22, 3.2.2
Resolved in Puppet Enterprise 2.8.2
Credits
Credit to Ben Murphy for the responsible disclosure of this vulnerability.