CVE-2026-84645: Jenkins deserialization RCE in config.xml handling

CVE-2026-84645 · Severity: high · CVSS 8.8 · Published 2026-09-02

Jenkins, a widely-used automation and CI/CD server, improperly deserializes specially crafted configuration XML files, allowing attackers to bypass security protections and gain access to the Script Console for remote code execution. An attacker with sufficient permissions can craft malicious configuration documents that execute arbitrary code on the Jenkins server.

Technologies: Jenkins. Vendors: Jenkins.

Quick answers

Is CVE-2026-84645 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-84645 being exploited in the wild.
How severe is CVE-2026-84645?
High severity, with a CVSS score of 8.8, published 2 September 2026.
Which products and versions are affected?
Jenkins 2.579 and earlier, LTS 2.568.2 and earlier.
Is there a fix for CVE-2026-84645?
A patch was published on 2026-09-02: Jenkins 2.580, LTS 2.568.3 Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-84645 attacked?
It is attacked over the network, in a web application.
Am I affected by CVE-2026-84645?
Check whether you run Jenkins at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

Jenkins uses XStream for deserialization of configuration and build data stored in XML format. The vulnerability exists in the deserialization filter logic which failed to prevent objects marked as PersistenceRoot (types storing configuration in independent top-level files) from appearing as nested field values in user-submitted config.xml documents. When deserialized, these objects can be accessed and handled as HTTP requests via the Stapler web framework, which uses reflective access to matching code elements. A crafted combination of such objects allows attackers with Overall/Read permission to gain access to the Script Console, resulting in remote code execution. The issue was fixed in Jenkins 2.580 and LTS 2.568.3 by preventing PersistenceRoot-marked types from being deserialized as nested field values.

Affected products

  • Jenkins Jenkins 2.579 and earlier, LTS 2.568.2 and earlier

Timeline

  • 2026-09-02: disclosed
  • 2026-09-02: patched: Jenkins 2.580, LTS 2.568.3

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.