Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2021-3625 PoC — Buffer overflow in Zephyr USB DFU DNLOAD

Source
Associated Vulnerability
Title: Buffer overflow in Zephyr USB DFU DNLOAD (CVE-2021-3625)
Description:Buffer overflow in Zephyr USB DFU DNLOAD. Zephyr versions >= v2.5.0 contain Heap-based Buffer Overflow (CWE-122). For more information, see https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-c3gr-hgvr-f363
Description
CVE-2021-3625 - Sample exploits for Zephyr
Readme
# CVE-2021-3625

This repository contains a few example exploits for CVE-2021-3625.

All Zephyr-based usb devices up to (and including) version 2.5.0 suffer from
a buffer overflow allowing readout of up to 65kB. Depending on the actual device
this may result of leakage of sensitive data like encryption keys or credentials.

The issue may be triggered by issuing crafted usb control transfer requests
with IN direction (reads, to host) and a write specific request - in example
set address (0x05). In such cases write to host is not expected thus response
length is not updated resulting in a initially set value of request->wLength.
Since wLength is user controlled it can be set to an arbitrary two byte value like
0xffff resulting in readout of 65 kilobytes microcontroller memory. Since size of
buffer is significantly smaller a overflow takes place allowing an attacker
to extract memory contents past the buffer boundary.

Besides application layer also MCUBoot builds with Zephyr USB device stack enabled
are affected. Furthermore along memory readout past buffer bounaries the DFU class
may also be exloited to achive buffer overflow write.

For best results it is recommended to use a libusb build with MAX_CTRL_BUFFER_LENGTH
size increased from default 4096 bytes to 0xFFFF (libusb/os/linux_usbfs.h).

Security Advisory: https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-c3gr-hgvr-f363
File Snapshot

Log in to view the POC file snapshot cached by Shenlong Bot

Log in to view
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →