CVE-2020-2099: High severity Jenkins Jenkins vulnerability

Published Jan 29, 2020
·
Updated

Jenkins 2.213 and earlier, LTS 2.204.1 and earlier improperly reuses encryption key parameters in the Inbound TCP Agent Protocol/3, allowing unauthorized attackers with knowledge of agent names to obtain the connection secrets for those agents, which can be used to connect to Jenkins, impersonating those agents.

Other sources

Jenkins 2.213 and earlier, LTS 2.204.1 and earlier includes support for the Inbound TCP Agent Protocol/3 for communication between controller and agents. While this protocol has been deprecated in 2018 and was recently removed from Jenkins in 2.214, it could still easily be enabled in Jenkins LTS 2.204.1, 2.213, and older.

This protocol incorrectly reuses encryption parameters which allow an unauthenticated remote attacker to determine the connection secret. This secret can then be used to connect attacker-controlled Jenkins agents to the Jenkins controller.

Jenkins 2.204.2 no longer allows for the use of Inbound TCP Agent Protocol/3 by default. The system property jenkins.slaves.JnlpSlaveAgentProtocol3.ALLOWUNSAFE can be set to true to allow enabling the Inbound TCP Agent Protocol/3 in Jenkins 2.204.2, but doing so is strongly discouraged.

Inbound TCP Agent Protocol/3 was removed completely from Jenkins 2.214 and will not be part of Jenkins LTS after the end of the 2.204.x line.

Affected Software

4 affected componentsFixes available
maven/org.jenkins-ci.main:jenkins-core>=2.205<2.214
2.214
maven/org.jenkins-ci.main:jenkins-core<2.204.2
2.204.2
Jenkins Jenkins<=2.204.1
Jenkins Jenkins<=2.218

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade maven/org.jenkins-ci.main:jenkins-core to a version that resolves this vulnerability.

    Fixed in 2.214
  2. Upgrade

    Upgrade maven/org.jenkins-ci.main:jenkins-core to a version that resolves this vulnerability.

    Fixed in 2.204.2
  3. Upgrade

    Upgrade jenkins to a version that resolves this vulnerability.

    Fixed in 2.214
  4. Configuration

    Ensure the system property jenkins.slaves.JnlpSlaveAgentProtocol3.ALLOW_UNSAFE is not set to true (i.e., keep it false/unset) so Inbound TCP Agent Protocol/3 cannot be enabled in Jenkins 2.204.2, 2.204.1, 2.213 and earlier.

    Jenkins jenkins.slaves.JnlpSlaveAgentProtocol3.ALLOW_UNSAFE = false

Event History

Jan 29, 2020
CVE Published
via MITRE·03:15 PM
Data Sourced
via MITRE·03:15 PM
Description
Data Sourced
via NVD·04:15 PM
DescriptionSeverityWeaknessAffected Software
May 24, 2022
Advisory Published
05:07 PM

Frequently Asked Questions

1

What is the severity of CVE-2020-2099?

CVE-2020-2099 is classified as a medium severity vulnerability.

2

How do I fix CVE-2020-2099?

To fix CVE-2020-2099, upgrade to Jenkins version 2.214 or 2.204.2 or later.

3

What are the affected versions in CVE-2020-2099?

CVE-2020-2099 affects Jenkins versions 2.213 and earlier, and LTS versions up to 2.204.1.

4

What type of vulnerability is CVE-2020-2099?

CVE-2020-2099 is an improper key management vulnerability impacting Jenkins.

5

Who can exploit CVE-2020-2099?

CVE-2020-2099 can be exploited by unauthorized attackers who have knowledge of Jenkins agent names.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203