Every CVE Search/ Get API key

CVE-2024-23897

Arbitrary file read vulnerability through the Jenkins CLI can lead to RCE

9.8 CriticalIn KEVPublic exploitFix available

Jenkins 2.441 and earlier, LTS 2.426.2 and earlier does not disable a feature of its CLI command parser that replaces an '@' character followed by a file path in an argument with the file's contents, allowing unauthenticated attackers to read arbitrary files on the Jenkins controller file system.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

100.0%Up 99.9 points since Jan 31, 2024
90%50%10%1%

What each source reports

NVD Score used 9.8

Jenkins 2.441 and earlier, LTS 2.426.2 and earlier does not disable a feature of its CLI command parser that replaces an '@' character followed by a file path in an argument with the file's contents, allowing unauthenticated attackers to read arbitrary files on the Jenkins controller file system.

Record
CVE-2024-23897
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-22, CWE-27
Updated
2026-11-02
CVE List 9.8

Jenkins 2.441 and earlier, LTS 2.426.2 and earlier does not disable a feature of its CLI command parser that replaces an '@' character followed by a file path in an argument with the file's contents, allowing unauthenticated attackers to read arbitrary files on the Jenkins controller file system.

Record
CVE-2024-23897
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-27
Updated
2026-11-02
EUVDEUVD-2024-0270 9.8

Jenkins 2.441 and earlier, LTS 2.426.2 and earlier does not disable a feature of its CLI command parser that replaces an '@' character followed by a file path in an argument with the file's contents, allowing unauthenticated attackers to read arbitrary files on the Jenkins controller file system.

Record
EUVD-2024-0270
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-6f9g-cxwr-q5jr 9.3

Arbitrary file read vulnerability through the Jenkins CLI can lead to RCE

Jenkins has a built-in command line interface (CLI) to access Jenkins from a script or shell environment.

Jenkins uses the args4j library to parse command arguments and options on the Jenkins controller when processing CLI commands. This command parser has a feature that replaces an @ character followed by a file path in an argument with the file’s contents (expandAtFiles). This feature is enabled by default and Jenkins 2.441 and earlier, LTS 2.426.2 and earlier does not disable it.

This allows attackers to read arbitrary files on the Jenkins controller file system using the default character encoding of the Jenkins controller process.

  • Attackers with Overall/Read permission can read entire files.

  • Attackers without Overall/Read permission can read the first few lines of files. The number of lines that can be read depends on available CLI commands. As of publication of this advisory, the Jenkins security team has found ways to read the first three lines of files in recent releases of Jenkins without having any plugins installed, and has not identified any plugins that would increase this line count.

Binary files containing cryptographic keys used for various Jenkins features can also be read, with some limitations (see note on binary files below). As of publication, the Jenkins security team has confirmed the following possible attacks in addition to reading contents of all files with a known file path. All of them leverage attackers' ability to obtain cryptographic keys from binary files, and are therefore only applicable to instances where that is feasible.

Record
GHSA-6f9g-cxwr-q5jr
CVSS 4.0
9.3 CriticalCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:A
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H/E:H
Weakness
CWE-22, CWE-27
Updated
2026-11-02
CISA KEV No score

Jenkins Command Line Interface (CLI) Path Traversal Vulnerability

Jenkins Command Line Interface (CLI) contains a path traversal vulnerability that allows attackers limited read access to certain files, which can lead to code execution.

Record
CVE-2024-23897
Weakness
CWE-27
Updated
2026-11-02
OSV 9.8

Jenkins 2.441 and earlier, LTS 2.426.2 and earlier does not disable a feature of its CLI command parser that replaces an '@' character followed by a file path in an argument with the file's contents, allowing unauthenticated attackers to read arbitrary files on the Jenkins controller file system.

Record
CVE-2024-23897
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
Show 5 moreShow less
OSVGHSA-6f9g-cxwr-q5jr 9.3

Arbitrary file read vulnerability through the Jenkins CLI can lead to RCE

Jenkins has a built-in command line interface (CLI) to access Jenkins from a script or shell environment.

Jenkins uses the args4j library to parse command arguments and options on the Jenkins controller when processing CLI commands. This command parser has a feature that replaces an @ character followed by a file path in an argument with the file’s contents (expandAtFiles). This feature is enabled by default and Jenkins 2.441 and earlier, LTS 2.426.2 and earlier does not disable it.

This allows attackers to read arbitrary files on the Jenkins controller file system using the default character encoding of the Jenkins controller process.

  • Attackers with Overall/Read permission can read entire files.

  • Attackers without Overall/Read permission can read the first few lines of files. The number of lines that can be read depends on available CLI commands. As of publication of this advisory, the Jenkins security team has found ways to read the first three lines of files in recent releases of Jenkins without having any plugins installed, and has not identified any plugins that would increase this line count.

Binary files containing cryptographic keys used for various Jenkins features can also be read, with some limitations (see note on binary files below). As of publication, the Jenkins security team has confirmed the following possible attacks in addition to reading contents of all files with a known file path. All of them leverage attackers' ability to obtain cryptographic keys from binary files, and are therefore only applicable to instances where that is feasible.

Record
GHSA-6f9g-cxwr-q5jr
CVSS 4.0
9.3 CriticalCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:A
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H/E:H
Weakness
CWE-22, CWE-27
Updated
2026-11-02
OSVRHSA-2024:0775 9.8

Red Hat Security Advisory: jenkins and jenkins-2-plugins security update

Record
RHSA-2024:0775
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRHSA-2024:0776 9.8

Red Hat Security Advisory: jenkins and jenkins-2-plugins security update

Record
RHSA-2024:0776
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRHSA-2024:0778 9.8

Red Hat Security Advisory: Jenkins and Jenkins-2-plugins security update

Record
RHSA-2024:0778
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVBIT-jenkins-2024-23897 No score

Jenkins LTS 2.426.2 and earlier does not disable a feature of its CLI command parser that replaces an '@' character followed by a file path in an argument with the file's contents, allowing unauthenticated attackers to read arbitrary files on the Jenkins controller file system.

Record
BIT-jenkins-2024-23897
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
org.jenkins-ci.main:jenkins-core
Maven
1.606 to 2.426.2
2.426.3
org.jenkins-ci.main:jenkins-core
Maven
2.441 to 2.441
2.442
org.jenkins-ci.main:jenkins-core
Maven
2.427 up to 2.440.1
2.440.1
jenkins
Bitnami
before 2.452.1
2.452.1
org.jenkins-ci.main:jenkins-core
Maven
1.606 up to 2.426.3, plus listed versions
1.6071.6081.6091.609.11.609.2
Show 45 moreShow less
1.609.31.6101.6111.6121.6131.6141.6151.6161.6171.6181.6191.6201.6211.6221.6231.6241.6251.625.11.625.21.625.31.6261.6271.6281.6291.6301.6311.6321.6331.6341.6351.6361.6371.6381.6391.6401.6411.6421.642.11.642.21.642.31.642.41.6431.6441.6451.646
2.426.3
org.jenkins-ci.main:jenkins-core
Maven
2.427 up to 2.440.1, plus listed versions
2.4282.4292.4302.4312.432
Show 8 moreShow less
2.4332.4342.4352.4362.4372.4382.4392.440
2.440.1
org.jenkins-ci.main:jenkins-core
Maven
2.441 up to 2.442
2.442
jenkins-2-plugins
Red Hat:ocp_tools:4.11::el8
From an advisory covering 11 CVEs
before 0:4.11.1706516946-1.el8
0:4.11.1706516946-1.el8
jenkins
Red Hat:ocp_tools:4.11::el8
From an advisory covering 11 CVEs
before 0:2.426.3.1706516929-3.el8
0:2.426.3.1706516929-3.el8
jenkins-2-plugins
Red Hat:ocp_tools:4.13::el8
From an advisory covering 10 CVEs
before 0:4.13.1706516346-1.el8
0:4.13.1706516346-1.el8
jenkins
Red Hat:ocp_tools:4.13::el8
From an advisory covering 10 CVEs
before 0:2.426.3.1706516254-3.el8
0:2.426.3.1706516254-3.el8
jenkins-2-plugins
Red Hat:ocp_tools:4.12::el8
From an advisory covering 24 CVEs
before 0:4.12.1706515741-1.el8
0:4.12.1706515741-1.el8
jenkins
Red Hat:ocp_tools:4.12::el8
From an advisory covering 24 CVEs
before 0:2.426.3.1706515686-3.el8
0:2.426.3.1706515686-3.el8

Public exploits

Links only. Every CVE stores no exploit code.

Public exploits
SourceLinkDate
PoC in GitHubjenkinsci-cert/SECURITY-3314-33152024-01-23
PoC in GitHubbinganao/CVE-2024-238972024-01-26
PoC in GitHubh4x0r-dz/CVE-2024-238972024-01-26
PoC in GitHubvmtyan/poc-cve-2024-238972024-01-26
PoC in GitHubxaitax/CVE-2024-238972024-01-26
PoC in GitHub10T4/PoC-Fix-jenkins-rce_CVE-2024-238972024-01-27
PoC in GitHubP4x1s/CVE-2024-238972024-01-27
PoC in GitHubwjlin0/CVE-2024-238972024-01-27
PoC in GitHubyoryio/CVE-2024-238972024-01-27
PoC in GitHubVozec/CVE-2024-238972024-01-28
Show 18 moreShow less
Public exploits
SourceLinkDate
PoC in GitHubr0xDB/CVE-2024-238972024-01-28
PoC in GitHubjopraveen/CVE-2024-238972024-01-29
PoC in GitHubviszsec/CVE-2024-238972024-01-29
PoC in GitHubAbraXa5/Jenkins-CVE-2024-238972024-02-01
PoC in GitHubWLXQqwer/Jenkins-CVE-2024-23897-2024-02-04
PoC in GitHubkaanatmacaa/CVE-2024-238972024-02-04
PoC in GitHubGraySignal/CVE-2024-23897-Jenkins-Arbitrary-Read-File-Vulnerability2024-02-07
PoC in GitHubB4CK4TT4CK/CVE-2024-238972024-02-13
PoC in GitHubgodylockz/CVE-2024-238972024-02-16
PoC in GitHubifconfig-me/CVE-2024-238972024-02-16
PoC in GitHubAp0dexMe0/CVE-2024-238972024-02-19
PoC in GitHubpulentoski/CVE-2024-23897-Arbitrary-file-read2024-02-20
PoC in GitHubNebian/CVE-2024-238972024-02-21
Exploit-DBJenkins 2.441 - Local File Inclusion2024-04-15
PoC in GitHubJAthulya/CVE-2024-238972024-05-03
PoC in GitHubmurataydemir/CVE-2024-238972024-05-07
MetasploitJenkins cli Ampersand Replacement Arbitrary File Read2024-01-24
NucleiJenkins < 2.441 - Arbitrary File Read

Plus 25 more. The full list has every link.

History

History
RecordedChangedSources
affected
exploitation
exploits, exploits_more
exploits
first indexedCVE List, EUVD, Exploit-DB, GitHub Advisories, CISA KEV, Metasploit, Nuclei, NVD, OSV, PoC in GitHub

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2024-23897 is a critical vulnerability (CVSS 9.8) in Jenkins, published January 24, 2024. CISA lists it as known to be exploited, since August 19, 2024. EUVD reports exploitation since August 19, 2024. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 100.0%, the 99th percentile. Fixed in org.jenkins-ci.main:jenkins-core 2.426.3.

References

Show 184 moreShow less
This page doesn't list everything

Left out here: 549 versions. The JSON record has them.

MoveEnter Open