Description
The Jenkins CLI subsystem in Jenkins before 1.638 and LTS before 1.625.2 allows remote attackers to execute arbitrary code via a crafted serialized Java object, related to a problematic webapps/ROOT/WEB-INF/lib/commons-collections-*.jar file and the "Groovy variant in 'ysoserial'".
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Red Hat
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Red Hat OpenShift 3 | atomic-openshift +9 | 3.1.1.6-1.git.0.b57e8bd.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | heapster | 0.18.2-3.gitaf4752e.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | jenkins | 1.625.3-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-ansi-green +1 | 0.1.1-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-ansi-wrap +1 | 0.1.0-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-anymatch | 1.3.0-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-arr-diff +8 | 2.0.0-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-array-unique | 0.2.1-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-arrify +8 | 1.0.0-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-binary-extensions | 1.3.1-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-braces | 1.8.2-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-chokidar | 1.4.1-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-configstore | 1.4.0-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-create-error-class | 2.0.1-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-deep-extend | 0.3.2-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-duplexer | 0.1.1-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-duplexify | 3.4.2-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-end-of-stream | 1.1.0-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-error-ex | 1.2.0-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-es6-promise | 3.0.2-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-event-stream | 3.3.2-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-expand-range | 1.8.1-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-extglob | 0.3.1-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-fill-range | 2.2.3-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-for-in +1 | 0.1.4-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-for-own +1 | 0.1.3-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-from +1 | 0.1.3-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-glob-base | 0.3.0-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-got | 5.2.1-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-graceful-fs | 4.1.2-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-ini | 1.1.0-6.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-is-dotfile +1 | 1.0.2-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-is-number +1 | 2.1.0-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-is-stream +1 | 1.0.1-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-kind-of | 3.0.2-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-lodash.assign +1 | 3.2.0-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-lodash.basecopy +1 | 3.0.1-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-lodash.createassigner | 3.1.1-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-lodash.getnative | 3.9.1-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-lodash.isiterateecall | 3.0.9-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-lodash.keys +1 | 3.1.2-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-lodash.restparam | 3.6.1-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-micromatch | 2.3.5-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-mkdirp | 0.5.0-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-nodemon | 1.8.1-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-object-assign | 4.0.1-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-optimist | 0.4.0-5.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-osenv +1 | 0.1.0-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-package-json | 2.3.0-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-parse-glob +2 | 3.0.4-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-parse-json | 2.2.0-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-pause-stream | 0.0.11-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-preserve | 0.2.0-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-ps-tree +5 | 1.0.1-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-randomatic | 1.1.5-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-rc +1 | 1.1.2-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-read-all-stream | 3.0.1-3.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-readdirp | 2.0.0-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-regex-cache | 0.4.2-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-registry-url | 3.0.3-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-semver | 5.1.0-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-slide | 1.1.5-3.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-split | 0.3.3-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-stream-combiner | 0.2.1-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-strip-json-comments | 1.0.2-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-through | 2.3.4-4.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-timed-out | 2.0.0-3.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-touch +2 | 1.0.0-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-undefsafe | 0.0.3-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-update-notifier | 0.6.0-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-uuid +3 | 2.0.1-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nodejs-write-file-atomic | 1.1.2-2.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | nss_wrapper | 1.0.3-1.el7 | RHSA-2016:0070 |
| Red Hat OpenShift 3 | openshift-ansible +6 | 3.0.35-1.git.0.6a386dd.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 3 | openvswitch +3 | 2.4.0-1.el7 | RHSA-2016:0070 |
| Red Hat OpenShift 3 | origin-kibana | 0.5.0-1.el7aos | RHSA-2016:0070 |
| Red Hat OpenShift 2 | activemq +1 | 5.9.0-6.redhat.611454.el6op | RHSA-2016:0489 |
| Red Hat OpenShift 2 | jenkins | 1.625.3-1.el6op | RHSA-2016:0489 |
| Red Hat OpenShift 2 | openshift-enterprise-release +4 | 2.2.9-1.el6op | RHSA-2016:0489 |
| Red Hat OpenShift 2 | openshift-origin-broker-util | 1.37.5.3-1.el6op | RHSA-2016:0489 |
| Red Hat OpenShift 2 | openshift-origin-cartridge-cron | 1.25.2.1-1.el6op | RHSA-2016:0489 |
| Red Hat OpenShift 2 | openshift-origin-cartridge-haproxy | 1.31.5.1-1.el6op | RHSA-2016:0489 |
| Red Hat OpenShift 2 | openshift-origin-cartridge-mysql | 1.31.2.1-1.el6op | RHSA-2016:0489 |
| Red Hat OpenShift 2 | openshift-origin-cartridge-php | 1.35.3.1-1.el6op | RHSA-2016:0489 |
| Red Hat OpenShift 2 | openshift-origin-cartridge-python | 1.34.2.1-1.el6op | RHSA-2016:0489 |
| Red Hat OpenShift 2 | openshift-origin-msg-node-mcollective | 1.30.2.1-1.el6op | RHSA-2016:0489 |
| Red Hat OpenShift 2 | openshift-origin-node-proxy | 1.26.2.1-1.el6op | RHSA-2016:0489 |
| Red Hat OpenShift 2 | openshift-origin-node-util | 1.38.6.2-1.el6op | RHSA-2016:0489 |
| Red Hat OpenShift 2 | php +7 | 5.3.3-46.el6_7.1 | RHSA-2016:0489 |
| Red Hat OpenShift 2 | rhc | 1.38.6.1-1.el6op | RHSA-2016:0489 |
| Red Hat OpenShift 2 | rubygem-openshift-origin-common | 1.29.5.2-1.el6op | RHSA-2016:0489 |
| Red Hat OpenShift 2 | rubygem-openshift-origin-console | 1.35.5.1-1.el6op | RHSA-2016:0489 |
| Red Hat OpenShift 2 | rubygem-openshift-origin-controller | 1.38.5.1-1.el6op | RHSA-2016:0489 |
| Red Hat OpenShift 2 | rubygem-openshift-origin-frontend-apache-vhost | 0.13.2.1-1.el6op | RHSA-2016:0489 |
| Red Hat OpenShift 2 | rubygem-openshift-origin-node | 1.38.5.3-1.el6op | RHSA-2016:0489 |
Public exploits
Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.
Metasploit 3 modules
-
Jenkins-CI Unauthenticated Script-Console Scanner
auxiliary/scanner/http/jenkins_command
-
OpenNMS Java Object Unserialization Remote Code Execution
exploit/linux/misc/opennms_java_serialize
-
Jenkins CLI RMI Java Deserialization Vulnerability
exploit/linux/misc/jenkins_java_deserialize
Exploit-DB 1
- Jenkins CLI - RMI Java Deserialization (Metasploit) EDB-38983 · remote · Dec 15, 2015 · verified
GitHub 2 repositories
-
r00t4dm/Jenkins-CVE-2015-8103 ★ 0 · Oct 12, 2022
-
cved-sources/cve-2015-8103 ★ 0 · Jan 6, 2019
cve-2015-8103
Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Maven | org.jenkins-ci.main:cli | < 1.625.2 | 1.625.2 | GHSA-wfw7-6632-xcv2 |
| Maven | org.jenkins-ci.main:cli | >= 1.626, < 1.638 | 1.638 | GHSA-wfw7-6632-xcv2 |
Advisories 3
- RHSA-2016:0070 Red Hat Security Advisory: Red Hat OpenShift Enterprise 3.1.1 bug fix and enhancement update Red Hat Security Advisories (RHSA) · Jun 28, 2026
- RHSA-2016:0489 Red Hat Security Advisory: Red Hat OpenShift Enterprise 2.2.9 security, bug fix, and enhancement update Red Hat Security Advisories (RHSA) · Jun 27, 2026
- WID-SEC-2023-1215 Jenkins: Mehrere Schwachstellen BSI CERT-Bund (WID) · May 14, 2023
References
- http://packetstormsecurity.com/files/134805/Jenkins-CLI-RMI-Java-Deserialization.html
- https://jenkins-ci.org/content/mitigating-unauthenticated-remote-code-execution-0-day-jenkins-cli
- [oss-security] 20151118 Re: CVE request: Jenkins remote code execution vulnerability due to unsafe deserialization mailing-list
- RHSA-2016:0489 vendor-advisory
- 77636 vdb-entry
- [oss-security] 20151118 Re: CVE request: Jenkins remote code execution vulnerability due to unsafe deserialization mailing-list
- RHSA-2016:0070 vendor-advisory
- 38983 exploit
- http://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-application-have-in-common-this-vulnerability/#jenkins
- [oss-security] 20151109 CVE request: Jenkins remote code execution vulnerability due to unsafe deserialization mailing-list
- https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2015-11-11
- [oss-security] 20151118 Re: CVE request: Jenkins remote code execution vulnerability due to unsafe deserialization mailing-list