Earlier this year, security expert Guido Vranken from the software firm ForAllSecure, discovered a critical vulnerability in the OpenWrt Linux-based operating system for network devices.
The flaw tracked as CVE-2020-7982 is a critical remote code execution vulnerability affecting the operating system, which is a widely used Linux-based operating system for network devices such as routers and residential gateways.
The vulnerability exists in the OPKG package manager of OpenWrt, it is related to the way it performs integrity checking of downloaded packages using the SHA-256 checksums that are embedded in the signed repository index.
The expert discovered that when an ‘ install’ command is executed on the target system, a remote attacker could exploit the vulnerability to intercept the communication of a targeted device to execute arbitrary code by tricking it into installing a malicious package or software update.
The successful exploitation of the flaw could allow a remote attacker to gain complete control over the vulnerable OpenWrt network device.
Vranken explained that when a checksum contains any leading spaces, the OPKG utility on the vulnerable versions of the operating system fails to check the integrity of the downloaded package and installs them.
“For exploitation it is required that the attacker serves (compromised) packages from a web server. The attacker must either be in a position to intercept and replace communication between the device and downloads.openwrt.org, or control the DNS server used by the device to make downloads.openwrt.org point to a web server controlled by the attacker.” reads a post published by the expert. “Attacks on a local network using packet spoofing or ARP cache poisoning might be possible, but this has not been tested.”
The expert ethically reported the flaw to the OpenWrt development team that
“Due to the fact that
The vulnerability affects versions 18.06.0 to 18.06.6 and 19.07.0, as well as LEDE 17.01.0 to 17.01.7.
Vranken explained that to solve the issue, OpenWRT removed the space in the SHA256sum from the package list, but this solution is only partial remediation.
“As a stopgap solution, OpenWRT removed the space in the SHA256sum from the package list shortly after I reported the bug,” Vranken added. “However, this is not an adequate long-term solution because an attacker can simply provide an older package list that was signed by the OpenWRT maintainers.”