Cross-site WebSocket hijacking vulnerability in the Jenkins CLI
High severity
GitHub Reviewed
Published
Jan 24, 2024
to the GitHub Advisory Database
•
Updated May 14, 2024
Package
Affected versions
>= 2.217, <= 2.426.2
>= 2.427, <= 2.440
= 2.441
Patched versions
2.426.3
2.442
Description
Published by the National Vulnerability Database
Jan 24, 2024
Published to the GitHub Advisory Database
Jan 24, 2024
Reviewed
Jan 26, 2024
Last updated
May 14, 2024
Jenkins has a built-in command line interface (CLI) to access Jenkins from a script or shell environment. Since Jenkins 2.217 and LTS 2.222.1, one of the ways to communicate with the CLI is through a WebSocket endpoint. This endpoint relies on the default Jenkins web request authentication functionality, like HTTP Basic authentication with API tokens, or session cookies. This endpoint is enabled when running on a version of Jetty for which Jenkins supports WebSockets. This is the case when using the provided native installers, packages, or the Docker containers, as well as when running Jenkins with the command java -jar jenkins.war.
Jenkins 2.217 through 2.441 (both inclusive), LTS 2.222.1 through 2.426.2 (both inclusive) does not perform origin validation of requests made through the CLI WebSocket endpoint, resulting in a cross-site WebSocket hijacking (CSWSH) vulnerability.
References