Metrics
Affected Vendors & Products
Tue, 11 Aug 2026 07:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | Jenkins FilePath.untarFrom() in all versions, including those with the CVE-2026-33001 and CVE-2026-70427 patches applied, contains two distinct symlink validation weaknesses that independently allow arbitrary file read. 1. SYMLINK TARGET NOT VALIDATED (all versions): The CVE-2026-33001 fix enforces that the symlink file is created within the workspace boundary, but the symlink target — the path returned by te.getLinkName() and passed directly to symlinkTo() — is never validated and may point to any path on the controller filesystem. 2. BLANK-NAME CHECK BYPASS via Unicode (Jenkins 2.576): The CVE-2026-70427 patch added a blank-name check using Java's String.isBlank() to reject symlinks with empty names. However, String.isBlank() does not recognize Unicode zero-width characters (U+200B ZERO WIDTH SPACE, U+200C ZERO WIDTH NON-JOINER, U+200D ZERO WIDTH JOINER, U+2060 WORD JOINER, U+00AD SOFT HYPHEN) as whitespace. A tar entry named with any of these characters passes the blank-name check and results in a symlink with an invisible name pointing to an arbitrary target. An attacker with Item/Configure permission can configure a job to extract a malicious .tar or .tar.gz archive. When FilePath.untarFrom() processes the archive, it creates symlinks inside the workspace that resolve to arbitrary controller paths. By targeting the entire $JENKINS_HOME/secrets/ directory — including master.key, hudson.util.Secret, and credentials.xml — an attacker can exfiltrate all Jenkins cryptographic material and offline-decrypt all {AQA...}-format credential entries, exposing every password, API key, cloud provider secret, and SSH private key stored in Jenkins. | Jenkins FilePath.untarFrom() does not validate symlink targets in extracted TAR archives, even in versions patched for CVE-2026-33001 and CVE-2026-70427. An authenticated attacker with job configuration privileges can include a malicious archive in a build step that creates workspace symlinks pointing to arbitrary files on the Jenkins controller. By reading the secrets directory, the attacker obtains the cryptographic keys used to sign remember-me cookies, forges a valid administrator session cookie without any admin interaction, and gains access to the Script Console for remote code execution. Jenkins 2.576 is additionally affected by a bypass of the CVE-2026-70427 blank-name check via Unicode zero-width characters (U+200B, U+200C, U+200D, U+2060, U+00AD), which Java's String.isBlank() does not recognize as whitespace. |
| References |
| |
| Metrics |
cvssV3_1
|
cvssV3_1
|
Tue, 11 Aug 2026 07:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | Jenkins FilePath.untarFrom() in all versions, including those with the CVE-2026-33001 patch applied, validates symlink destinations but not targets. The CVE-2026-33001 fix enforces that the symlink file is created within the workspace boundary, but the symlink target — the path returned by te.getLinkName() and passed directly to symlinkTo() — is never validated and may point to any path on the controller filesystem. An attacker with Item/Configure permission can configure a job to extract a malicious .tar or .tar.gz archive via a tool installer or custom build step. When FilePath.untarFrom() processes the archive, it creates symlinks inside the workspace that resolve to arbitrary controller paths. By targeting the entire $JENKINS_HOME/secrets/ directory — including master.key, hudson.util.Secret, hudson.model.Secrets.xml, and any other files present — an attacker can exfiltrate all Jenkins cryptographic material through the workspace viewer (GET /job/{name}/ws/) or build artifacts. Combined with credentials.xml and per-user config.xml files, this enables offline AES-128 decryption of all {AQA...}-format credential entries, exposing in plaintext every password, API key, cloud provider secret, and SSH private key stored in the Jenkins credential store — compromising all downstream systems those credentials protect. | Jenkins FilePath.untarFrom() in all versions, including those with the CVE-2026-33001 and CVE-2026-70427 patches applied, contains two distinct symlink validation weaknesses that independently allow arbitrary file read. 1. SYMLINK TARGET NOT VALIDATED (all versions): The CVE-2026-33001 fix enforces that the symlink file is created within the workspace boundary, but the symlink target — the path returned by te.getLinkName() and passed directly to symlinkTo() — is never validated and may point to any path on the controller filesystem. 2. BLANK-NAME CHECK BYPASS via Unicode (Jenkins 2.576): The CVE-2026-70427 patch added a blank-name check using Java's String.isBlank() to reject symlinks with empty names. However, String.isBlank() does not recognize Unicode zero-width characters (U+200B ZERO WIDTH SPACE, U+200C ZERO WIDTH NON-JOINER, U+200D ZERO WIDTH JOINER, U+2060 WORD JOINER, U+00AD SOFT HYPHEN) as whitespace. A tar entry named with any of these characters passes the blank-name check and results in a symlink with an invisible name pointing to an arbitrary target. An attacker with Item/Configure permission can configure a job to extract a malicious .tar or .tar.gz archive. When FilePath.untarFrom() processes the archive, it creates symlinks inside the workspace that resolve to arbitrary controller paths. By targeting the entire $JENKINS_HOME/secrets/ directory — including master.key, hudson.util.Secret, and credentials.xml — an attacker can exfiltrate all Jenkins cryptographic material and offline-decrypt all {AQA...}-format credential entries, exposing every password, API key, cloud provider secret, and SSH private key stored in Jenkins. |
| Title | Jenkins - FilePath.untarFrom() Symlink Target Validation Bypass (Arbitrary File Read) | Jenkins - FilePath.untarFrom() Symlink Target Validation Bypass and Blank-Name Check Bypass (Arbitrary File Read) |
| Weaknesses | CWE-184 |
Mon, 10 Aug 2026 19:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
Mon, 10 Aug 2026 17:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | Jenkins FilePath.untarFrom() in all versions, including those with the CVE-2026-33001 patch applied, validates symlink destinations but not targets. The CVE-2026-33001 fix enforces that the symlink file is created within the workspace boundary, but the symlink target — the path returned by te.getLinkName() and passed directly to symlinkTo() — is never validated and may point to any location on the controller filesystem. An attacker with Item/Configure permission can configure a job to extract a malicious .tar or .tar.gz archive via a tool installer or custom build step. When FilePath.untarFrom() processes the archive, it creates symlinks inside the workspace pointing to arbitrary controller paths such as $JENKINS_HOME/secrets/master.key, secrets/hudson.util.Secret, or credentials.xml. The attacker then reads the symlinked files through the Jenkins workspace viewer (GET /job/{name}/ws/) or by archiving them as build artifacts, requiring no additional privileges beyond Item/Configure and Item/Workspace. Obtaining master.key and hudson.util.Secret enables offline AES-128 decryption of all {AQA...}-format credential entries in credentials.xml, exposing stored passwords, API keys, and SSH private keys in plaintext. | Jenkins FilePath.untarFrom() in all versions, including those with the CVE-2026-33001 patch applied, validates symlink destinations but not targets. The CVE-2026-33001 fix enforces that the symlink file is created within the workspace boundary, but the symlink target — the path returned by te.getLinkName() and passed directly to symlinkTo() — is never validated and may point to any path on the controller filesystem. An attacker with Item/Configure permission can configure a job to extract a malicious .tar or .tar.gz archive via a tool installer or custom build step. When FilePath.untarFrom() processes the archive, it creates symlinks inside the workspace that resolve to arbitrary controller paths. By targeting the entire $JENKINS_HOME/secrets/ directory — including master.key, hudson.util.Secret, hudson.model.Secrets.xml, and any other files present — an attacker can exfiltrate all Jenkins cryptographic material through the workspace viewer (GET /job/{name}/ws/) or build artifacts. Combined with credentials.xml and per-user config.xml files, this enables offline AES-128 decryption of all {AQA...}-format credential entries, exposing in plaintext every password, API key, cloud provider secret, and SSH private key stored in the Jenkins credential store — compromising all downstream systems those credentials protect. |
| Metrics |
cvssV4_0
|
cvssV4_0
|
Mon, 10 Aug 2026 17:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | Jenkins FilePath.untarFrom() in all versions, including those with the CVE-2026-33001 patch applied, validates symlink destinations but not symlink targets. The CVE-2026-33001 fix checks that the symlink file (destination) is created within the workspace boundary, but the symlink target — the path returned by te.getLinkName() and passed directly to symlinkTo() — is never sanitized. An attacker with Item/Configure permission can supply a malicious .tar or .tar.gz archive (for example via a tool installer or custom archive extraction step) that, when extracted by FilePath.untarFrom(), creates persistent symlinks on the controller filesystem pointing to arbitrary paths such as secrets/master.key, secrets/hudson.util.Secret, and credentials.xml. Reading these files through the created symlinks enables offline AES-128 decryption of all credentials stored in the Jenkins credential store, leading to full credential compromise. | Jenkins FilePath.untarFrom() in all versions, including those with the CVE-2026-33001 patch applied, validates symlink destinations but not targets. The CVE-2026-33001 fix enforces that the symlink file is created within the workspace boundary, but the symlink target — the path returned by te.getLinkName() and passed directly to symlinkTo() — is never validated and may point to any location on the controller filesystem. An attacker with Item/Configure permission can configure a job to extract a malicious .tar or .tar.gz archive via a tool installer or custom build step. When FilePath.untarFrom() processes the archive, it creates symlinks inside the workspace pointing to arbitrary controller paths such as $JENKINS_HOME/secrets/master.key, secrets/hudson.util.Secret, or credentials.xml. The attacker then reads the symlinked files through the Jenkins workspace viewer (GET /job/{name}/ws/) or by archiving them as build artifacts, requiring no additional privileges beyond Item/Configure and Item/Workspace. Obtaining master.key and hudson.util.Secret enables offline AES-128 decryption of all {AQA...}-format credential entries in credentials.xml, exposing stored passwords, API keys, and SSH private keys in plaintext. |
| Metrics |
cvssV3_1
|
cvssV3_1
|
Mon, 10 Aug 2026 16:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | Jenkins FilePath.untarFrom() (all versions) validates symlink destinations but not targets, bypassing CVE-2026-33001. Any user with Item/Build access triggers tar extraction via POST /job/{name}/build, writing persistent symlinks into the tool cache. Symlinks to secrets/master.key, hudson.util.Secret, credentials.xml, and users/*/config.xml read via GET /job/{name}/lastBuild/consoleText enable offline AES decryption of all credentials and admin API tokens without bcrypt cracking, achieving RCE. | Jenkins FilePath.untarFrom() in all versions, including those with the CVE-2026-33001 patch applied, validates symlink destinations but not symlink targets. The CVE-2026-33001 fix checks that the symlink file (destination) is created within the workspace boundary, but the symlink target — the path returned by te.getLinkName() and passed directly to symlinkTo() — is never sanitized. An attacker with Item/Configure permission can supply a malicious .tar or .tar.gz archive (for example via a tool installer or custom archive extraction step) that, when extracted by FilePath.untarFrom(), creates persistent symlinks on the controller filesystem pointing to arbitrary paths such as secrets/master.key, secrets/hudson.util.Secret, and credentials.xml. Reading these files through the created symlinks enables offline AES-128 decryption of all credentials stored in the Jenkins credential store, leading to full credential compromise. |
| Title | Jenkins Project Jenkins - Symlink Target Validation Bypass Arbitrary File Read | Jenkins - FilePath.untarFrom() Symlink Target Validation Bypass (Arbitrary File Read) |
| References |
Mon, 10 Aug 2026 15:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | Jenkins FilePath.untarFrom() (all versions) validates symlink destinations but not targets, bypassing CVE-2026-33001. Any user with Item/Build access triggers malicious tar extraction via POST /job/{name}/build, writing persistent symlinks into the Jenkins tool cache. Symlinks to secrets/master.key and credentials.xml read via GET /job/{name}/lastBuild/consoleText enable offline AES decryption of all stored credentials and admin RCE. Symlinks to /dev/zero or blocking FIFOs hang build executors. | Jenkins FilePath.untarFrom() (all versions) validates symlink destinations but not targets, bypassing CVE-2026-33001. Any user with Item/Build access triggers tar extraction via POST /job/{name}/build, writing persistent symlinks into the tool cache. Symlinks to secrets/master.key, hudson.util.Secret, credentials.xml, and users/*/config.xml read via GET /job/{name}/lastBuild/consoleText enable offline AES decryption of all credentials and admin API tokens without bcrypt cracking, achieving RCE. |
| Metrics |
cvssV4_0
|
Mon, 10 Aug 2026 14:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | Jenkins FilePath.untarFrom() (all versions) validates symlink destinations but not targets, bypassing CVE-2026-33001. Any user with Item/Build access can trigger extraction of a malicious tar via POST /job/{name}/build, planting symlinks to secrets/master.key, secrets/hudson.util.Secret, and credentials.xml. Files are read via GET /job/{name}/lastBuild/consoleText. These three files enable offline AES decryption of all stored Jenkins credentials, escalating to admin access and RCE. | Jenkins FilePath.untarFrom() (all versions) validates symlink destinations but not targets, bypassing CVE-2026-33001. Any user with Item/Build access triggers malicious tar extraction via POST /job/{name}/build, writing persistent symlinks into the Jenkins tool cache. Symlinks to secrets/master.key and credentials.xml read via GET /job/{name}/lastBuild/consoleText enable offline AES decryption of all stored credentials and admin RCE. Symlinks to /dev/zero or blocking FIFOs hang build executors. |
| Metrics |
cvssV3_1
|
cvssV3_1
|
Mon, 10 Aug 2026 14:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | Jenkins FilePath.untarFrom() (all versions) validates symlink destinations but not targets, bypassing the CVE-2026-33001 fix. An admin points a tool installer (DownloadFromUrlInstaller/ZipExtractionInstaller) at an attacker URL; any user's POST /job/{name}/build then extracts the malicious tar, planting symlinks in the tool cache. Sensitive files are read via GET /job/{name}/lastBuild/consoleText or GET /job/{name}/ws/{file}, exposing /etc/passwd, secrets/master.key, and credentials.xml. | Jenkins FilePath.untarFrom() (all versions) validates symlink destinations but not targets, bypassing CVE-2026-33001. Any user with Item/Build access can trigger extraction of a malicious tar via POST /job/{name}/build, planting symlinks to secrets/master.key, secrets/hudson.util.Secret, and credentials.xml. Files are read via GET /job/{name}/lastBuild/consoleText. These three files enable offline AES decryption of all stored Jenkins credentials, escalating to admin access and RCE. |
Mon, 10 Aug 2026 13:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | An incomplete patch for CVE-2026-33001 in Jenkins Project Jenkins through LTS 2.555.3 allows an authenticated remote attacker with Item/Configure permission to read arbitrary files on the Jenkins controller filesystem via a crafted tar archive. The CVE-2026-33001 security update validates symlink destinations during tar extraction in FilePath.java but does not validate symlink targets; a symlink whose location is inside the workspace can still point to arbitrary paths outside it, enabling disclosure of any file readable by the Jenkins process user, including secrets/master.key, credentials.xml, and other sensitive configuration files. | Jenkins FilePath.untarFrom() (all versions) validates symlink destinations but not targets, bypassing the CVE-2026-33001 fix. An admin points a tool installer (DownloadFromUrlInstaller/ZipExtractionInstaller) at an attacker URL; any user's POST /job/{name}/build then extracts the malicious tar, planting symlinks in the tool cache. Sensitive files are read via GET /job/{name}/lastBuild/consoleText or GET /job/{name}/ws/{file}, exposing /etc/passwd, secrets/master.key, and credentials.xml. |
| First Time appeared |
Jenkins Project
Jenkins Project jenkins |
|
| Vendors & Products |
Jenkins Project
Jenkins Project jenkins |
Mon, 10 Aug 2026 12:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | An incomplete patch for CVE-2026-33001 in Jenkins Project Jenkins through LTS 2.555.3 allows an authenticated remote attacker with Item/Configure permission to read arbitrary files on the Jenkins controller filesystem via a crafted tar archive. The CVE-2026-33001 security update validates symlink destinations during tar extraction in FilePath.java but does not validate symlink targets; a symlink whose location is inside the workspace can still point to arbitrary paths outside it, enabling disclosure of any file readable by the Jenkins process user, including secrets/master.key, credentials.xml, and other sensitive configuration files. | |
| Title | Jenkins Project Jenkins - Symlink Target Validation Bypass Arbitrary File Read | |
| Weaknesses | CWE-59 | |
| References |
| |
| Metrics |
cvssV3_1
|
Status: PUBLISHED
Assigner: TuranSec
Published:
Updated: 2026-08-11T07:23:15.794Z
Reserved: 2026-08-10T12:06:37.123Z
Link: CVE-2026-19429
Updated: 2026-08-10T15:34:47.081Z
No data.
No data.
OpenCVE Enrichment
Updated: 2026-08-11T08:30:16Z