Cloudanix VulnDB

CVE-2026-33001

High · 8.8

CVSS

8.8

EPSS

1.2%

Published

Mar 18, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A person with limited Jenkins control could use a specially made archive file to place malicious files where Jenkins should not allow them, potentially taking over the build system.

Exploitation
Remote Authenticated
Attacker needs
Low Privilege
Complexity
Low
Impact
Remote Code Execution
Component
Application
Class
Path Traversal
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Jenkins fails to safely handle symbolic links while extracting .tar and .tar.gz archives. A crafted archive can cause Jenkins to write extracted files outside the intended destination directory, subject to the filesystem permissions of the operating-system user running Jenkins. Because Jenkins controllers and agents commonly process archived workspace or build artifacts, an attacker with Item/Configure permission, or an attacker able to control an agent process, can overwrite or create files in sensitive Jenkins locations. Practical impact may include planting malicious Groovy init scripts, modifying job or user configuration files, adding malicious plugins, replacing build scripts, or altering files used by the Jenkins controller, potentially resulting in remote code execution, credential theft, persistence, and denial of service.

Why it matters to the business

Successful exploitation can turn limited Jenkins access or a compromised build agent into control over the Jenkins controller and the software delivery pipeline. This may allow attackers to steal build secrets, signing keys, cloud credentials, and source-code access tokens; tamper with builds or deployment artifacts; disrupt CI/CD operations; and introduce malicious code into downstream products. Although this vulnerability is not currently listed in CISA KEV and the provided EPSS score is relatively low, the CVSS score is high and Jenkins is often highly privileged in enterprise environments, so exposed or broadly delegated Jenkins installations should treat remediation as high priority.

How an attack unfolds

An attacker first obtains a position that lets them influence archive extraction in Jenkins, such as Item/Configure permission on a job that processes tar archives, or control over a Jenkins agent that can supply build artifacts or workspace contents. The attacker then creates a .tar or .tar.gz archive containing symbolic links that point outside the intended extraction directory, followed by archive entries that write through those links. When Jenkins extracts the archive, it does not properly prevent writes via the symbolic links, causing files to be created or overwritten elsewhere on the filesystem. The attacker chooses target paths that Jenkins can write to, such as Jenkins home subdirectories, plugin directories, job configuration locations, script locations, or other files used by the controller. After the malicious file is placed, the attacker triggers Jenkins behavior that loads or executes it, such as a restart, plugin load, job execution, or configuration reload. Depending on the target file, this can provide persistent code execution on the controller, unauthorized configuration changes, credential access, build tampering, or service disruption.

How to fix it

Upgrade Jenkins to a version that contains the vendor fix for this archive symlink handling issue. The input did not provide exact fixed versions; consult the official Jenkins security advisory for CVE-2026-33001 and upgrade both weekly and LTS controllers to the first non-affected release or later. Ensure Jenkins agents are also updated where applicable and restart controllers after upgrade so patched archive handling is active. Until patching is complete, reduce the blast radius by limiting Item/Configure permission to trusted administrators, reviewing jobs that extract .tar or .tar.gz archives, disabling or restricting untrusted agent access, preventing untrusted users from supplying archives or workspace contents, and running Jenkins under a dedicated low-privilege operating-system account with minimal filesystem write permissions. Consider filesystem protections that prevent the Jenkins process from writing to plugin, init script, service, and system directories except during controlled maintenance windows.

How to confirm the fix worked

Confirm the installed Jenkins version is newer than the vulnerable ranges: Jenkins weekly 2.554 and earlier and Jenkins LTS 2.541.2 and earlier are affected. Validate the actual fixed version against the official Jenkins advisory because no exact fixed version was provided in the input. From the Jenkins UI, check the controller version under Manage Jenkins, or query the Jenkins CLI/API where authorized. Confirm all controllers have been upgraded and restarted. Review file permissions to verify the Jenkins operating-system user cannot write outside required Jenkins directories. Test mitigation by ensuring untrusted users cannot configure jobs or control agents that process tar archives. For higher assurance, use a controlled non-production test with a benign symlink-containing archive to verify patched Jenkins rejects or safely handles attempts to extract entries outside the intended directory.

Typical attack path

  1. Gain Item/Configure permission on a Jenkins job, or compromise/control a Jenkins agent process that can provide files to the controller or build workflow.
  2. Create a malicious .tar or .tar.gz archive containing symbolic links that resolve outside the intended extraction directory.
  3. Include archive entries that write files through those symbolic links to attacker-selected filesystem paths writable by the Jenkins process.
  4. Cause Jenkins to extract the crafted archive during a build, artifact operation, job configuration workflow, or controller-agent interaction.
  5. Place a malicious script, plugin, configuration file, or build-related file in a sensitive Jenkins-accessible location.
  6. Trigger Jenkins to load or execute the malicious file through a job run, configuration reload, plugin initialization, controller restart, or related workflow.
  7. Use the resulting access to execute code, persist, steal Jenkins credentials, alter pipeline behavior, or disrupt CI/CD operations.

How to detect it

Investigate historical exploitation by correlating Jenkins build activity, archive extraction events, file modification times, and Jenkins configuration changes. Review Jenkins controller logs, job build logs, agent logs, web access logs or reverse-proxy logs, operating-system audit logs, endpoint telemetry, and filesystem metadata. Focus on builds or agent interactions that processed .tar or .tar.gz files shortly before suspicious file creation, plugin installation, controller restarts, configuration reloads, credential access, or unexpected job changes. Look for archive entries containing symbolic links, path traversal patterns, or writes that resulted in changes outside normal workspace or artifact directories. On the filesystem, inspect Jenkins home and adjacent writable paths for newly created or modified Groovy init scripts, plugin .jpi/.hpi files, job config.xml files, user configuration files, shell scripts, cron entries, service files, or unexpected binaries owned by the Jenkins user. In Jenkins audit trails, look for Item/Configure changes by non-administrative users, newly added build steps that download or extract tar archives, suspicious pipeline changes, unexpected plugin additions, and unusual agent reconnections. If endpoint detection is available, search for Jenkins spawning unusual child processes such as shells, curl, wget, Python, Perl, PowerShell, or encoded commands, especially immediately after archive extraction or controller restart. No public exploit maturity or named threat actor context was provided, and the vulnerability is not currently in CISA KEV, so detection should be behavior-based rather than relying on known campaign indicators.

  • .tar.gz
  • .tar
  • ../
  • ..\\
  • config.xml
  • init.groovy
  • init.groovy.d
  • plugins/
  • *.jpi
  • *.hpi
  • jenkins.war
  • JENKINS_HOME
  • Manage Jenkins
  • Reload Configuration from Disk
  • Started by user
  • Item/Configure
  • hudson.model.UpdateCenter
  • Installing plugin
  • java -jar
  • /var/lib/jenkins/init.groovy.d/
  • /var/lib/jenkins/plugins/
  • /var/lib/jenkins/jobs/
  • /var/lib/jenkins/users/
  • /var/lib/jenkins/secrets/
  • /var/lib/jenkins/credentials.xml
  • /var/lib/jenkins/config.xml
  • /usr/share/jenkins/
  • /etc/systemd/system/jenkins.service
  • /etc/cron.d/
  • /tmp/
  • /var/tmp/
  • sh -c
  • bash -c
  • curl
  • wget
  • python -c
  • perl -e
  • powershell
  • cmd.exe /c

What your security team should do

  • Inventory all Jenkins controllers and identify any running Jenkins 2.554 or earlier, or LTS 2.541.2 or earlier.
  • Prioritize patching internet-facing, shared, production, or highly privileged Jenkins controllers, especially those with many job administrators or dynamic/ephemeral agents.
  • Upgrade Jenkins to the vendor-fixed release or later as soon as available from the official Jenkins advisory, and restart controllers after applying the update.
  • Temporarily restrict Item/Configure permission to trusted administrators only until all controllers are patched.
  • Audit Jenkins agents for compromise or unauthorized control, especially agents that can influence controller-side artifacts or archive extraction workflows.
  • Identify jobs and plugins that extract .tar or .tar.gz files and restrict them from processing untrusted archives.
  • Review Jenkins home, plugin, init script, job configuration, and credential-related directories for unexpected recently modified files.
  • Run Jenkins under a dedicated low-privilege account and harden filesystem permissions so Jenkins cannot write to unnecessary system or application paths.
  • Monitor for suspicious Jenkins configuration changes, new plugins, new Groovy scripts, unexpected job modifications, and unusual controller restarts after archive-processing builds.
  • Because exploitation can affect the software supply chain, validate recent build artifacts and deployment outputs if suspicious archive activity is found.

The record

Jenkins 2.554 and earlier, LTS 2.541.2 and earlier does not safely handle symbolic links during the extraction of .tar and .tar.gz archives, allowing crafted archives to write files to arbitrary locations on the filesystem, restricted only by file system access permissions of the user running Jenkins. This can be exploited to deploy malicious scripts or plugins on the controller by attackers with Item/Configure permission, or able to control agent processes.

Affected packages

Ecosystem Package Introduced Fixed

Related vulnerabilities