Jenkins Server Vulnerabilities Chained for Remote Code Execution
Two recently patched vulnerabilities affecting Jenkins servers can be chained to achieve remote code execution, cybersecurity firm Aqua Security warns.
Tracked as CVE-2023-27898 and CVE-2023-27905 and impacting both Jenkins Server and Update Center, the two security defects are described as cross-site scripting (XSS) bugs that can be exploited by providing a malicious plugin.
Rated ‘high severity’, CVE-2023-27898 exists because Jenkins “does not escape the Jenkins version a plugin depends on when rendering the error message stating its incompatibility with the current version of Jenkins in the plugin manager”.
An attacker could provide a manipulated plugin to trigger the XSS. The plugin’s installation is not required for successful exploitation.
The flaw impacts Jenkins versions 2.270 through 2.393 and long-term support (LTS) releases 2.277.1 through 2.375.3. Jenkins version 2.394, LTS 2.375.4, and LTS 2.387.1 escape the Jenkins version a plugin depends on.
“Due to how Jenkins community update sites serve plugin metadata based on the reported Jenkins core version, it is unlikely that a reasonably up to date Jenkins instance shows the vulnerable error message in the plugin manager at all,” Jenkins explains.
A medium-severity flaw, CVE-2023-27905 impacts update-center2, a tool that generates Jenkins update sites that are hosted on updates.jenkins.io.
The tool “renders the required Jenkins core version on plugin download index pages” and retrieves this version from plugin metadata without sanitization, which results in an XSS vulnerability. An attacker could trigger the bug by providing a plugin for hosting.
Aqua Security says that a remote attacker could chain these issues to achieve arbitrary code execution on a vulnerable server, without authentication. Named CorePlague, the attack chain could result in full compromise of the Jenkins server, the cybersecurity firm warns.
For that, the attacker would need to upload a malicious plugin to the Jenkins Update Center. Next, when the victim opens the Available Plugin Manager, the vulnerability is triggered, leading to code execution without further user interaction.
“Attackers could exploit these vulnerabilities to compromise Jenkins Servers, even though they are not directly reachable because the public Jenkins Update Center – which is used by default on Jenkins Servers to obtain available plugin lists – could be injected by attackers,” Aqua Security says.
Jenkins released a fix for update-center2 on February 15, when it also patched the public Jenkins Update Center. This week, updates were released for Jenkins core to resolve these two flaws along with five other high- and medium-severity bugs.
Additional details on the addressed vulnerabilities can be found in the Jenkins security advisory.
Related: Jenkins Says Confluence Service Compromised Using Recent Exploit
Related: Jenkins Vulnerability Exploited to Deliver ‘Kerberods’ Malware
Related: Vulnerabilities Found in Over 100 Jenkins Plugins