Jenkins w wersjach 2.56 i wcześniejszych oraz 2.46.1 LTS i wcześniejszych zawiera krytyczną podatność umożliwiającą nieuwierzytelnionemu atakującemu zdalne wykonanie kodu. Podatność jest aktywnie exploitowana i dotyczy kluczowego elementu infrastruktury CI/CD.
▸ Pokaż oryginał (EN)
Jenkins versions 2.56 and earlier as well as 2.46.1 LTS and earlier are vulnerable to an unauthenticated remote code execution. An unauthenticated remote code execution vulnerability allowed attackers to transfer a serialized Java `SignedObject` object to the Jenkins CLI, that would be deserialized using a new `ObjectInputStream`, bypassing the existing blacklist-based protection mechanism. We're fixing this issue by adding `SignedObject` to the blacklist. We're also backporting the new HTTP CLI protocol from Jenkins 2.54 to LTS 2.46.2, and deprecating the remoting-based (i.e. Java serialization) CLI protocol, disabling it by default.
Atakujący przesyła do Jenkins CLI specjalnie spreparowany, zserializowany obiekt Java typu `SignedObject`. Podczas deserializacji Jenkins tworzy nowy obiekt `ObjectInputStream`, który przetwarza dane bez weryfikacji przez istniejący mechanizm ochrony oparty na czarnej liście (blacklist). W ten sposób blacklist zostaje całkowicie ominięty, a złośliwy payload jest wykonywany w kontekście serwera. Podatność wynika z protokołu CLI opartego na mechanizmie Java serialization (remoting-based CLI protocol).
Nieuwierzytelniony atakujący może przejąć pełną kontrolę nad serwerem Jenkins — uzyskać dostęp do poufnych danych, zmodyfikować konfigurację oraz wykonać dowolny kod na hoście, co w środowiskach CI/CD może prowadzić do kompromitacji całego łańcucha dostaw oprogramowania.
Należy zaktualizować Jenkins do wersji 2.57 lub nowszej (gałąź main) albo do wersji 2.46.2 LTS lub nowszej (gałąź LTS). Poprawka dodaje `SignedObject` do czarnej listy deserializacji oraz wprowadza nowy protokół HTTP CLI (backportowany z Jenkins 2.54), a protokół oparty na Java serialization (remoting CLI) zostaje wyłączony domyślnie. Jeśli natychmiastowa aktualizacja nie jest możliwa, należy ręcznie wyłączyć remoting-based CLI protocol w konfiguracji serwera.
Jenkins w wersjach 2.56 i wcześniejszych oraz Jenkins LTS w wersjach 2.46.1 i wcześniejszych; podatność dotyczy również Oracle Communications Cloud Native Core Automated Test Suite (zgodnie z referencjami Oracle).
Publiczne exploity są dostępne w Exploit-DB (exploits/41965) oraz Packet Storm Security (Jenkins-2.56-CLI-Deserialization-Code-Execution). Podatność została pierwotnie ujawniona przez producenta w advisory z dnia 2017-04-26 (jenkins.io/security/advisory/2017-04-26/).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HJenkins
APPJenkins≤ 2.56≤ 2.46.1Oracle Communications Cloud Native Core Automated Test Suite
APPOracle1.9.0
CISA KEV — szczegółyi
- Dostawcai
- Jenkins
- Produkti
- Jenkins
- Data dodania do KEVi
- 2 października 2025
- Termin remediation (USA)i
- 23 października 2025(po terminie)
Zastosuj mitygacje zgodnie z instrukcjami dostawcy, postępuj zgodnie z odpowiednimi wytycznymi BOD 22-01 dla usług chmurowych lub przerwij korzystanie z produktu, jeśli mitygacje są niedostępne.
▸ Pokaż oryginał (EN)
Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.
Jenkins zawiera podatność zdalnego wykonania kodu. Ta podatność mogłaby pozwolić atakującym na przesłanie serializowanego obiektu Java SignedObject do opartego na remoting'u Jenkins CLI, który byłby deserializowany przy użyciu nowego ObjectInputStream, omijając istniejący mechanizm ochrony oparty na blocklist'cie.
▸ Pokaż oryginał (EN)
Jenkins contains a remote code execution vulnerability. This vulnerability that could allowed attackers to transfer a serialized Java SignedObject object to the remoting-based Jenkins CLI, that would be deserialized using a new ObjectInputStream, bypassing the existing blocklist-based protection mechanism.
Powiązane podatności
Jenkins CLI – odczyt dowolnych plików przez path traversal bez uwierzytelnienia
Spring4Shell — RCE przez data binding w Spring MVC/WebFlux na JDK 9+
RCE w Spring Cloud Function poprzez złośliwy SpEL routing-expression
RCE w Jenkins — nieuprawnione wywołanie metod przez Stapler framework
Stored XSS w Jenkins poprzez wersję wymaganą przez wtyczkę