Eric Yang created YARN-9718:
-------------------------------

             Summary: Yarn REST API, services endpoint remote command ejection
                 Key: YARN-9718
                 URL: https://issues.apache.org/jira/browse/YARN-9718
             Project: Hadoop YARN
          Issue Type: Bug
            Reporter: Eric Yang


Email from Oskars Vegeris:

 
During internal infrastructure testing it was discovered that the Hadoop Yarn 
REST endpoint /app/v1/services contains a command injection vulnerability.
 
The services endpoint's normal use-case is for launching containers (e.g. 
Docker images/apps), however by providing an argument with special shell 
characters it is possible to execute arbitrary commands on the Host server - 
this would allow to escalate privileges and access. 
 
The command injection is possible in the parameter for JVM options - 
"yarn.service.am.java.opts". It's possible to enter arbitrary shell commands by 
using sub-shell syntax `cmd` or $(cmd). No shell character filtering is 
performed. 
 
The "launch_command" which needs to be provided is meant for the container and 
if it's not being run in privileged mode or with special options, host OS 
should not be accessible.
 
I've attached a minimal request sample with an injected 'ping' command. The 
endpoint can also be found via UI @ 
[http://yarn-resource-manager:8088/ui2/#/yarn-services]
 
If no auth, or "simple auth" (username) is enabled, commands can be executed on 
the host OS. I know commands can also be ran by the "new-application" feature, 
however this is clearly not meant to be a way to touch the host OS.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to