CVE-2019-1003040

9.8 CRITICAL

📋 TL;DR

This vulnerability in Jenkins Script Security Plugin allows attackers to bypass sandbox restrictions and execute arbitrary code by invoking constructors in sandboxed scripts. It affects Jenkins instances using Script Security Plugin 1.55 or earlier. Attackers with permission to create/edit jobs or pipelines can exploit this to gain full control of the Jenkins server.

💻 Affected Systems

Products:
  • Jenkins Script Security Plugin
Versions: 1.55 and earlier
Operating Systems: All platforms running Jenkins
Default Config Vulnerable: ⚠️ Yes
Notes: Requires attacker to have permission to create/edit jobs or pipelines. Jenkins instances using sandboxed scripts are vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of Jenkins server leading to remote code execution, data theft, lateral movement to connected systems, and persistent backdoor installation.

🟠

Likely Case

Attackers with job creation/edit permissions achieve remote code execution, potentially compromising build pipelines, stealing credentials, and accessing sensitive data.

🟢

If Mitigated

With strict access controls and network segmentation, impact limited to isolated Jenkins environment with no critical system access.

🌐 Internet-Facing: HIGH
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated access with appropriate permissions. Public exploit details available in security advisories.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Script Security Plugin 1.56 or later

Vendor Advisory: https://jenkins.io/security/advisory/2019-03-25/#SECURITY-1353

Restart Required: Yes

Instructions:

1. Update Jenkins to latest version
2. Update Script Security Plugin to 1.56+ via Plugin Manager
3. Restart Jenkins service
4. Verify plugin version in Manage Jenkins > Plugin Manager

🔧 Temporary Workarounds

Disable Script Security Plugin

all

Temporarily disable vulnerable plugin if immediate patching not possible

mv $JENKINS_HOME/plugins/script-security.hpi $JENKINS_HOME/plugins/script-security.hpi.disabled
Restart Jenkins

Restrict Script Permissions

all

Tighten Groovy sandbox permissions to limit script capabilities

Configure script approvals in Manage Jenkins > In-process Script Approval

🧯 If You Can't Patch

  • Restrict user permissions to prevent job/pipeline creation/edit
  • Isolate Jenkins server network segment and implement strict firewall rules

🔍 How to Verify

Check if Vulnerable:

Check Script Security Plugin version in Manage Jenkins > Plugin Manager. If version is 1.55 or earlier, system is vulnerable.

Check Version:

Check $JENKINS_HOME/plugins/script-security/META-INF/MANIFEST.MF for Implementation-Version or use Jenkins web interface

Verify Fix Applied:

Verify Script Security Plugin version is 1.56 or later in Plugin Manager and test sandboxed script functionality.

📡 Detection & Monitoring

Log Indicators:

  • Unusual Groovy script execution patterns
  • Failed sandbox approval requests
  • Unexpected constructor invocations in scripts

Network Indicators:

  • Unusual outbound connections from Jenkins server
  • Suspicious payloads in Jenkins API requests

SIEM Query:

source="jenkins.log" AND ("sandbox" OR "script-security" OR "Groovy") AND ("bypass" OR "constructor" OR "unauthorized")

🔗 References

📤 Share & Export