POSTED BY: George Poulios / 21.10.2020

Microchip cryptoauthlib atcab_genkey_base buffer overflow

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.

POSTED BY: George Poulios / 21.10.2020

Microchip ASF4 integer overflows in flash_read, flash_write and flash_append

CVE ID:CVE-2019-16127
Affected Products:ASF4 as distributed through (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.

POSTED BY: Aris Thallas / 08.10.2020

Samsung Hypervisor (RKP) arbitrary zero write

CVE ID:CVE-2019-19273
Samsung ID:SVE-2019-16265 (Look for SVE-2019-16265)
Affected Products:Samsung mobile devices running Android O(8.0) and P(9.0) with Exynos 8895 chipset (tested on S8 and Note8 firmware)
Class:"Write What Where" Condition where "What" is always zero (CWE-123)
Discovered by:Aristeidis Thallas

CENSUS identified a bug in RKP, the Samsung EL2 Hypervisor implementation. The bug allows to write the zero 64-bit value to an arbitrary memory address. For the bug to be triggered, code execution is required in the context of the EL1 kernel. The bug was verified on the Samsung S8 and Note8 devices and was fixed by Samsung in the "SMR February-2020 Release 1". The bug may allow an adversary with kernel execution access to circumvent established security controls through the corruption of device memory. Users are urged to follow the latest security updates offered by Samsung for their mobile devices.

POSTED BY: Dimitrios Glynos / 31.01.2020

Multiple NULL pointer dereference vulnerabilities in newlib

CVE IDs: CVE-2019-14871, CVE-2019-14872, CVE-2019-14873, CVE-2019-14874, CVE-2019-14875, CVE-2019-14876, CVE-2019-14877, CVE-2019-14878
Affected Products:newlib versions prior to 3.3.0, its derivatives (e.g. newlib-nano, picolibc and related Platform SDKs such as " GNU ARM Embedded Toolchain 64-bit Linux 8-2018-q4-major")
Class:NULL pointer dereference (CWE-476)
Discovered by:Dimitrios Glynos

During the security assessment of a firmware binary a number of NULL pointer dereference bugs were found caused by newlib-nano code. newlib-nano is a C library for use on 32-bit processors that have only a few kB of memory. It turns out that newlib-nano was part of the "GNU ARM Embedded Toolchain" that the chip manufacturer (Microchip/Atmel) delivered for application development purposes. newlib-nano inherits code from the newlib project, which is a C library intended for use on embedded systems. All NULL pointer dereference bugs identified in newlib-nano were inherited by newlib code and therefore CENSUS reported the respective vulnerabilities to the upstream project. Users of the newlib library are advised to update to version 3.3.0 and make sure to build the library sources with the newlib-reent-check-verify 'configure' option enabled.