Puppet Enterprise 2016.4.x prior to 2016.4.12, Puppet Enterprise 2017.3.x prior to 2017.3.7, Puppet Enterprise 2018.1.x prior to 2018.1.1, Puppet Agent 1.10.x prior to 1.10.13, Puppet Agent 5.3.x prior to 5.3.7, and Puppet Agent 5.5.x prior to 5.5.2, were vulnerable to an attack where an unprivileged user on Windows agents could write custom facts that can escalate privileges on the next puppet run. This was possible through the loading of shared libraries from untrusted paths.
The product searches for critical resources using an externally-supplied search path that can point to resources that are not under the product’s direct control.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Puppet | Puppet | 1.10.0 (including) | 1.10.13 (excluding) |
Puppet | Puppet | 5.3.0 (including) | 5.3.7 (excluding) |
Puppet | Puppet | 5.5.0 (including) | 5.5.2 (excluding) |
Puppet_enterprise | Puppet | 2016.4.0 (including) | 2016.4.12 (excluding) |
Puppet_enterprise | Puppet | 2017.3.0 (including) | 2017.3.7 (excluding) |
Puppet_enterprise | Puppet | 2018.1.0 (including) | 2018.1.1 (excluding) |
This might allow attackers to execute their own programs, access unauthorized data files, or modify configuration in unexpected ways. If the product uses a search path to locate critical resources such as programs, then an attacker could modify that search path to point to a malicious program, which the targeted product would then execute. The problem extends to any type of critical resource that the product trusts. Some of the most common variants of untrusted search path are: