CVE-2019-10458
📋 TL;DR
This vulnerability in Jenkins Puppet Enterprise Pipeline plugin allows attackers with Script Security script execution permissions to bypass sandbox restrictions and execute arbitrary code on the Jenkins controller. It affects Jenkins installations using Puppet Enterprise Pipeline plugin version 1.3.1 and earlier. Attackers need existing script execution privileges to exploit this flaw.
💻 Affected Systems
- Jenkins Puppet Enterprise Pipeline Plugin
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Full compromise of Jenkins controller with arbitrary code execution, leading to complete system takeover, data exfiltration, and lateral movement within the network.
Likely Case
Privileged attackers with script execution rights can execute arbitrary code on Jenkins controller, potentially gaining persistent access and compromising build pipelines.
If Mitigated
With proper access controls limiting script execution to trusted users only, impact is reduced to authorized users potentially misusing their privileges.
🎯 Exploit Status
Exploitation requires authenticated access with script execution permissions. The vulnerability is in the plugin's custom whitelist that allows unsafe Groovy script execution.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 1.3.2 or later
Vendor Advisory: https://jenkins.io/security/advisory/2019-10-16/#SECURITY-918
Restart Required: Yes
Instructions:
1. Update Jenkins Puppet Enterprise Pipeline plugin to version 1.3.2 or later via Jenkins Plugin Manager. 2. Restart Jenkins to apply the update. 3. Verify plugin version in Manage Jenkins > Manage Plugins > Installed tab.
🔧 Temporary Workarounds
Disable vulnerable plugin
allTemporarily disable Puppet Enterprise Pipeline plugin if immediate patching isn't possible
Navigate to Manage Jenkins > Manage Plugins > Installed tab, find 'Puppet Enterprise Pipeline' and click 'Disable'
Restrict script execution permissions
allTighten Script Security permissions to limit who can execute scripts
Navigate to Manage Jenkins > Configure Global Security > Script Security, review and restrict 'Run Scripts' permissions
🧯 If You Can't Patch
- Remove or disable Puppet Enterprise Pipeline plugin entirely
- Implement strict access controls to limit script execution to only absolutely necessary trusted users
🔍 How to Verify
Check if Vulnerable:
Check installed plugin version in Jenkins: Manage Jenkins > Manage Plugins > Installed tab, look for 'Puppet Enterprise Pipeline' plugin version.
Check Version:
curl -s http://jenkins-url/pluginManager/api/json?depth=1 | grep -o '"shortName":"puppet-enterprise-pipeline","version":"[^"]*"'
Verify Fix Applied:
Verify plugin version is 1.3.2 or later in Manage Jenkins > Manage Plugins > Installed tab.
📡 Detection & Monitoring
Log Indicators:
- Unusual Groovy script execution in Jenkins logs
- Script Security sandbox bypass attempts
- Plugin update/installation activity
Network Indicators:
- Unusual outbound connections from Jenkins controller
- Unexpected process execution on Jenkins host
SIEM Query:
source="jenkins.log" AND ("Script Security" OR "sandbox" OR "puppet-enterprise-pipeline") AND ("bypass" OR "unsafe" OR "whitelist")