CVE-2021-21639 Lack of type validation in agent related REST API in Jenkins
Attackers with Computer/Configure permission can replace a node with a different type via the config.xml API, potentially leading to code execution.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2021-21639?
CVE-2021-21639 is a medium-severity unsafe deserialization vulnerability in Jenkins Jenkins, published on 7 Apr 2021. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
Jenkins 2.286 and earlier, LTS 2.277.1 and earlier does not validate the type of object created after loading the data submitted to the `config.xml` REST API endpoint of a node, allowing attackers with Computer/Configure permission to replace a node with one of a different type.
Which versions are affected by CVE-2021-21639?
5 open source packages ship an affected version, including org.jenkins-ci.main:jenkins-core and jenkins. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
org.jenkins-ci.main:jenkins-core Maven | All versions | 2.277.2 |
org.jenkins-ci.main:jenkins-core Maven | All versions | 2.277.2 |
org.jenkins-ci.main:jenkins-core Maven | From 2.278 | 2.287 |
org.jenkins-ci.main:jenkins-core Maven | From 2.278 | 2.287 |
jenkins Bitnami | All versions | 2.286.1 |
Products include Jenkins Jenkins.
How do I fix CVE-2021-21639?
Upgrade org.jenkins-ci.main:jenkins-core to a fixed version for your release line: 2.277.2 or 2.287.
Upgrade, and only deserialise data from trusted sources or with an allow-list of types. More about Unsafe deserialization.
Is CVE-2021-21639 being exploited?
There is no known exploitation of CVE-2021-21639 in the wild and no public exploit code.
Other vulnerabilities in Jenkins Jenkins
- CVE-2024-23897 Jenkins Command Line Interface (CLI) Path Traversal
- CVE-2018-1000861 Jenkins Stapler Web Framework Deserialization of Untrusted Data
- CVE-2017-1000353 Jenkins Remote Code Execution
- CVE-2015-5317 Jenkins User Interface (UI) Information Disclosure
- CVE-2021-21690 Multiple vulnerabilities allow bypassing path filtering of agent-to-controller access control in Jenkins
Sources
Also known as BIT-jenkins-2021-21639, GHSA-pvwx-3jx5-24r2.