Skip to content

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

maven org.jenkins-ci.main:jenkins-core (Maven)

Affected versions

>= 2.217, <= 2.426.2
>= 2.427, <= 2.440
= 2.441

Patched versions

2.426.3
2.442

Description

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

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

Severity

High
8.8
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Weaknesses

CVE ID

CVE-2024-23898

GHSA ID

GHSA-53ph-2r2x-vqw8

Source code

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.