CVE-2023-28677

9.8 CRITICAL

📋 TL;DR

This vulnerability in Jenkins Convert To Pipeline Plugin allows attackers with permission to configure Freestyle projects to inject malicious Pipeline script code during conversion. The injected code executes without sandbox restrictions, potentially leading to remote code execution. Affected users are those running Jenkins with the vulnerable plugin installed.

💻 Affected Systems

Products:
  • Jenkins Convert To Pipeline Plugin
Versions: 1.0 and earlier
Operating Systems: All platforms running Jenkins
Default Config Vulnerable: ⚠️ Yes
Notes: Requires the plugin to be installed and users with permission to configure Freestyle projects. The vulnerability is triggered when converting a maliciously configured Freestyle project to Pipeline.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full system compromise via remote code execution, allowing attackers to execute arbitrary commands on the Jenkins server with the privileges of the Jenkins process.

🟠

Likely Case

Attackers with project configuration access can execute arbitrary Pipeline code, potentially stealing credentials, modifying builds, or deploying malicious artifacts.

🟢

If Mitigated

With proper access controls limiting who can configure projects, impact is reduced to authorized users only, though they could still cause damage.

🌐 Internet-Facing: HIGH if Jenkins is internet-facing and attackers can gain project configuration access through other means.
🏢 Internal Only: MEDIUM as it requires authenticated users with project configuration permissions, but could be exploited by compromised accounts or malicious insiders.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated access with project configuration permissions. The injection mechanism is straightforward string concatenation bypass.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.1

Vendor Advisory: https://www.jenkins.io/security/advisory/2023-03-21/#SECURITY-2966

Restart Required: Yes

Instructions:

1. Update Jenkins Convert To Pipeline Plugin to version 1.1 or later via Jenkins Plugin Manager. 2. Restart Jenkins to apply the update. 3. Verify the plugin version in Manage Jenkins > Manage Plugins > Installed tab.

🔧 Temporary Workarounds

Disable or remove vulnerable plugin

all

Temporarily disable or uninstall the Convert To Pipeline Plugin until patching is possible.

Manage Jenkins > Manage Plugins > Installed tab > Find 'Convert To Pipeline' > Click 'Disable' or 'Uninstall'

Restrict project configuration permissions

all

Limit who can configure Freestyle projects to trusted administrators only.

Manage Jenkins > Manage and Assign Roles > Role-based Authorization Strategy > Configure permissions to remove 'Configure' from non-admin users

🧯 If You Can't Patch

  • Immediately restrict project configuration permissions to minimal trusted administrators only.
  • Monitor Jenkins logs for suspicious conversion activities and audit all Freestyle project configurations.

🔍 How to Verify

Check if Vulnerable:

Check installed plugin version in Jenkins: Manage Jenkins > Manage Plugins > Installed tab > Find 'Convert To Pipeline' plugin. If version is 1.0 or earlier, you are vulnerable.

Check Version:

In Jenkins web UI: Manage Jenkins > Manage Plugins > Installed tab

Verify Fix Applied:

After updating, verify the plugin shows version 1.1 or later in the Installed plugins list. Test converting a Freestyle project to Pipeline to ensure functionality works without errors.

📡 Detection & Monitoring

Log Indicators:

  • Unusual Pipeline conversion activities, especially from non-admin users
  • Errors or warnings related to Convert To Pipeline plugin
  • Suspicious Pipeline script execution

Network Indicators:

  • Unusual outbound connections from Jenkins server following project conversions

SIEM Query:

source="jenkins.log" AND ("Convert To Pipeline" OR "conversion" OR "injected") AND (error OR warning OR suspicious)

🔗 References

📤 Share & Export