Escape command in ExecuteContainerCommand.

This commit is contained in:
Stuart Rowlands 2023-12-07 11:05:52 -08:00
parent d7d948caf6
commit 19c66c6628

View File

@ -92,10 +92,13 @@ class ExecuteContainerCommand extends Component
{
$this->validate();
try {
// Wrap command to prevent escaped execution in the host.
$cmd = 'sh -c "' . str_replace('"', '\"', $this->command) . '"';
if (!empty($this->workDir)) {
$exec = "docker exec -w {$this->workDir} {$this->container} {$this->command}";
$exec = "docker exec -w {$this->workDir} {$this->container} {$cmd}";
} else {
$exec = "docker exec {$this->container} {$this->command}";
$exec = "docker exec {$this->container} {$cmd}";
}
$activity = remote_process([$exec], $this->server, ignore_errors: true);
$this->emit('newMonitorActivity', $activity->id);