Jenkins has identified a significant security flaw that permits attackers to run malicious code on controllers by circumventing a security filter designed for agent-to-controller communication.
Details of the Security Vulnerability
Known as CVE-2026-70426, this vulnerability affects Jenkins setups with specific versions of the Remoting library. It has been classified with a Critical CVSS severity score. Jenkins versions 2.575 and earlier, along with Jenkins LTS 2.568.1 and earlier, are susceptible. The flaw is present in Remoting versions up to 3384.v60d89463d9e0, excluding version 3355.3357.v931d3c992987.
The Remoting library, often distributed as agent.jar or remoting.jar, facilitates communication between the main Jenkins controller and its build agents. These interactions depend on serialized Java objects. Potential Java deserialization vulnerabilities can lead to arbitrary code execution, prompting Jenkins to employ the JEP-200 class filter to screen objects received over a Remoting channel.
Exploitation of the Vulnerability
The JEP-200 filter aims to prevent unsafe classes from being deserialized by the Jenkins controller. However, researchers discovered it was not applied when classes were resolved through a fallback mechanism in the Remoting deserialization process. This oversight allows for a filter bypass.
An attacker with control over an agent process or possessing the Jenkins Agent/Connect permission can exploit this flaw to deserialize Java classes that should be blocked, potentially executing malicious code on the Jenkins controller. This controller is a critical system within a Jenkins environment, and its compromise could expose sensitive information like source code, secrets, and software supply chain pipelines.
Mitigation and Recommendations
Jenkins has addressed the issue in advisory SECURITY-3911, releasing updates Jenkins 2.576 and Jenkins LTS 2.568.2 to ensure the JEP-200 class filter is applied correctly, even in fallback paths. Organizations are urged to upgrade to these versions immediately.
Security teams should evaluate permissions for users and systems with Agent/Connect access and consider isolating untrusted build agents. Jenkins also provided a temporary workaround in its SECURITY-3911-3930 GitHub repository for environments unable to update immediately. Administrators should implement this mitigation cautiously and prioritize upgrading to patched versions.
This vulnerability was disclosed through the European Commission’s Jenkins Bug Bounty Program, underscoring the importance of active security monitoring and prompt response to potential threats.
