Auditing Headphone Security Without Extra Hardware: Introducing buds-audit
buds-audit is an open source tool that checks wireless earbuds for the Airoha SDK Bluetooth vulnerability chain (CVE-2025-20700/20701/20702) using your computer's built-in Bluetooth adapter, no external dongle required.

When security researchers disclosed the Airoha SDK vulnerability chain — CVE-2025-20700, CVE-2025-20701, and CVE-2025-20702 — affecting a wide range of wireless earbuds, I was deeply concerned about whether my own daily-driver earbuds were exposed.
The original research published a method to check for these flaws, but it required specialized external Bluetooth dongles and hardware adapters. To make this kind of check accessible to anyone with an ordinary laptop, I built buds-audit.
Why buds-audit Was Built
- No External Dongle Needed: buds-audit talks to your device's built-in Bluetooth adapter through the standard Linux Bluetooth stack (BlueZ), instead of requiring specialized RF hardware.
- Targeted CVE Checks: It fingerprints known-affected Airoha chipsets from nearby advertisements, then runs a targeted probe for each CVE in the chain — unauthenticated GATT access (CVE-2025-20700), a firmware/pairing-bypass check (CVE-2025-20701), and RACE-channel reachability (CVE-2025-20702) — so you get a concrete answer per vulnerability instead of a vague risk score.
- Accessible Risk Assessment: Results are reported in plain language alongside the technical detail, so you don't need deep Bluetooth expertise to act on them.
Basic Usage
- Clone the repository
git clone https://github.com/SpiritualMachines/buds-audit.git cd buds-audit - Install dependencies
python3 -m venv venv venv/bin/pip install -r requirements.txtRequires Python 3.10+ and a Linux system running BlueZ with a powered-on Bluetooth adapter. Windows isn't supported directly — some checks shell out to
bluetoothctl, a BlueZ-only tool — but a Fedora live USB or VM works fine; see the repo's README for the details. - Run it
venv/bin/python buds_audit.pyWith no flags, it opens a numbered menu — full analysis, check against a saved baseline, or scan for spoofed devices — so you don't need to already know a device address or which flag to pass.
- Read the results
Every active check (anything beyond a passive scan) asks you to confirm the target is a device you own or have permission to test before it touches the radio at all.
Check Your Headphones
The project is open source and available on GitHub. Contributions, issues, and feature requests are welcome.