CVE-2020-2160: CSRF

Published Mar 25, 2020
·
Updated

An extension point in Jenkins allows selectively disabling cross-site request forgery (CSRF) protection for specific URLs.

Implementations of that extension point received a different representation of the URL path than the Stapler web framework uses to dispatch requests in Jenkins 2.227 and earlier, LTS 2.204.5 and earlier. This discrepancy allowed attackers to craft URLs that would bypass the CSRF protection of any target URL.

Jenkins now uses the same representation of the URL path to decide whether CSRF protection is needed for a given URL as the Stapler web framework uses.

In case of problems, administrators can disable this security fix by setting the system property hudson.security.csrf.CrumbFilter.UNPROCESSEDPATHINFO to true.

As an additional safeguard, semicolon (;) characters in the path part of a URL are now banned by default. Administrators can disable this protection by setting the system property jenkins.security.SuspiciousRequestFilter.allowSemicolonsInPath to true.

Other sources

Jenkins 2.227 and earlier, LTS 2.204.5 and earlier uses different representations of request URL paths, which allows attackers to craft URLs that allow bypassing CSRF protection of any target URL.

Affected Software

5 affected componentsFixes available
debian/jenkins
maven/org.jenkins-ci.main:jenkins-core>=2.205<=2.227
2.228
maven/org.jenkins-ci.main:jenkins-core<=2.204.5
2.204.6
Jenkins Jenkins<=2.204.5
Jenkins Jenkins<=2.227

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.228
  2. Upgrade

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

    Fixed in 2.204.6
  3. Configuration

    Ensure the system property hudson.security.csrf.CrumbFilter.UNPROCESSED_PATHINFO is not set to true (keep it false) so the CSRF security fix that aligns URL path representation remains enabled.

    Jenkins (CSRF protection) hudson.security.csrf.CrumbFilter.UNPROCESSED_PATHINFO = false
  4. Configuration

    Ensure the system property jenkins.security.SuspiciousRequestFilter.allowSemicolonsInPath is not set to true so semicolon (;) characters in the URL path remain banned by default.

    Jenkins (Suspicious Request Filter) jenkins.security.SuspiciousRequestFilter.allowSemicolonsInPath = false

Event History

Mar 25, 2020
CVE Published
via MITRE·04:05 PM
Data Sourced
via MITRE·04:05 PM
Description
Data Sourced
via NVD·05:15 PM
DescriptionSeverityWeaknessAffected Software
May 24, 2022
Advisory Published
via GitHub·05:12 PM

Frequently Asked Questions

1

Can CVE-2020-2160 be exploited remotely?

Yes, CVE-2020-2160 can be exploited remotely by an attacker to disable CSRF protection on specific URLs.

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