Securing the building blocks of embedded software
Embedded systems are special purpose systems that cover a wide range of applications, from home electronics and industrial control systems, to medical devices and avionics. The remote management & telemetry features of the so called "Internet of Things" family of embedded devices, have made them quite popular and their placement is almost ubiquitous. From a security standpoint, embedded software is not that different to software found in other domains. However, the criticality of its operation, its exposure on public networks, but also its security limitations make it a very attractive target for attackers. This article presents an overview of the building blocks of today's embedded software, analyses inherent weaknesses in the way this software is built and deployed, and highlights recent developments in the handling of the relevant risk.
Microchip ASF4 integer overflows in flash_read, flash_write and flash_append
CENSUS ID: | CENSUS-2020-0005 |
CVE ID: | CVE-2019-16127 |
Affected Products: | ASF4 as distributed through start.atmel.com (last accessed 2020-10-21) |
Class: | Integer Overflow or Wraparound (CWE-190) |
Discovered by: | George Poulios |
CENSUS identified several integer overflow problems in the flash_read, flash_write and flash_append functions of the Microchip ASF4 framework. This framework is used during firmware development for Atmel (now Microchip) microcontrollers. An adversary may abuse these issues to gain unauthorized read or write access to arbitrary pages of the flash storage, especially pages mapped at low memory addresses. As no patch is available from the vendor, CENSUS urges developers to implement a check for integer overflows in the relevant code.
Microchip cryptoauthlib atcab_genkey_base buffer overflow
CENSUS ID: | CENSUS-2020-0004 |
CVE ID: | CVE-2019-16129 |
Affected Products: | cryptoauthlib versions prior to "20191122" |
Class: | Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')(CWE-120) |
Discovered by: | George Poulios |
CENSUS identified a buffer overflow vulnerability in the atcab_genkey_base function of the cryptoauthlib library. This library is part of the standard SDK provided by Microchip and is used to drive the operation of cryptographic co-processors sold by the vendor, such as the ATECC608A. An attacker with physical access to an embedded device where a microcontroller unit executes a vulnerable version of this library, may be able to execute arbitrary code on the microcontroller, by supplying malicious input to the microcontroller. Affected manufacturers of embedded systems that use Microchip cryptographic co-processors, are strongly recommended to update to at least version "20191122" of the "cryptoauthlib" library.
Microchip cryptoauthlib atcab_sign_base buffer overflow
CENSUS ID: | CENSUS-2020-0003 |
CVE ID: | CVE-2019-16128 |
Affected Products: | cryptoauthlib versions prior to "20191122" |
Class: | Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')(CWE-120) |
Discovered by: | George Poulios |
CENSUS identified a buffer overflow vulnerability in the atcab_sign_base function of the cryptoauthlib library. This library is part of the standard SDK provided by Microchip and is used to drive the operation of cryptographic co-processors sold by the vendor, such as the ATECC608A. An attacker with physical access to an embedded device where a microcontroller unit executes a vulnerable version of this library, may be able to execute arbitrary code on the microcontroller, by supplying malicious input to the microcontroller. Affected manufacturers of embedded systems that use Microchip cryptographic co-processors, are strongly recommended to update to at least version "20191122" of the "cryptoauthlib" library.