Engineer working on a laptop connected to a device test rig, surrounded by wiring harnesses and test hardware

Firmware vulnerabilities & fixes

BlueZ and Linux Bluetooth vulnerabilities in embedded devices: find the versions, rank the CVEs, harden and patch

Last updated:

The BlueZ and Linux Bluetooth vulnerabilities in embedded devices that matter most as of 2026-11-15 are BleedingTooth (CVE-2020-12351, CVE-2020-12352, CVE-2020-24490), three kernel bugs fixed in mainline Linux 5.8 and 5.10, and CVE-2023-45866, an unauthenticated keystroke injection through bluetoothd fixed in BlueZ 5.71. Kernel and userspace fixes reach a device through different owners. Find both versions in the image, turn off unused profiles, require bonding for input devices, then upgrade or backport.

Key takeaways

  • BlueZ is the standard Bluetooth stack on embedded Linux products with a radio, from IoT gateways and smart home hubs to Linux-based infotainment units and operator HMIs.
  • A Bluetooth CVE on embedded Linux is a kernel problem when the vulnerable code sits in net/bluetooth, and a BlueZ problem when it sits in bluetoothd or its plugins.
  • Four CVEs cover the best-known remote Bluetooth risks on embedded Linux, all reachable by an unauthenticated attacker within radio range.
  • BleedingTooth is the name Google gave to three zero-click flaws in the Linux kernel's Bluetooth subsystem that, chained, allow remote code execution with kernel privileges from radio range.

Where do BlueZ and the kernel Bluetooth subsystem ship in embedded devices?

BlueZ is the standard Bluetooth stack on embedded Linux products with a radio, from IoT gateways and smart home hubs to Linux-based infotainment units and operator HMIs. A gateway uses it to read Bluetooth Low Energy sensors, a hub to pair locks and lights, an infotainment unit for phone audio and contacts, and an HMI for service tablets or barcode scanners. All three common build systems ship it: OpenEmbedded-Core has a bluez5 recipe at 5.88, and Buildroot's bluez5_utils package and OpenWrt's packages feed both carried 5.87 on 2026-11-14. The current release, 5.88, is dated 2026-11-05 on kernel.org's BlueZ tarball directory.

"BlueZ" names two pieces of code. The kernel half lives in the Linux source tree under net/bluetooth: HCI, L2CAP, SMP, the socket layer and, up to Linux 6.8, the A2MP and High Speed code. The userspace half is the BlueZ project's bluetoothd daemon with its profile plugins (input, HID over GATT, audio, network, OBEX), its D-Bus API and tools such as bluetoothctl and btmon. A third piece, the controller firmware inside the Bluetooth chip, comes from the chip vendor and is outside both.

This guide covers the stack implementation in a Linux image. Protocol-level weaknesses in Bluetooth Low Energy pairing and GATT, and the Zephyr side, are in our BLE protocol security guide, and NIST's checklist for Bluetooth security modes is explained in our NIST SP 800-121 guide.

Is a Bluetooth CVE a kernel problem or a BlueZ problem, and why does it matter?

A Bluetooth CVE on embedded Linux is a kernel problem when the vulnerable code sits in net/bluetooth, and a BlueZ problem when it sits in bluetoothd or its plugins. The CVE text does not always tell you which. Intel, which maintains BlueZ and was the CNA for BleedingTooth, wrote all three records as flaws "in BlueZ", and the CVE-2020-24490 record adds that it "affects all Linux kernel versions that support BlueZ", even though the Google advisories place every bug in kernel source files.

The distinction decides who ships the fix:

Part Typical owner on a device Where fixes land How it reaches the device
Kernel net/bluetooth Kernel or BSP maintainer, often following the SoC vendor's kernel tree Linux mainline and stable commits on git.kernel.org; CVEs from the kernel CNA New kernel build, usually a full firmware update
bluetoothd and plugins Root file system or distribution maintainer BlueZ commits in bluez.git and the next release tarball Package update, or a rebuild of the image's BlueZ recipe
Controller firmware Bluetooth chip vendor Vendor firmware release notes Firmware blob in the image, loaded by the kernel driver

Since February 2024 the Linux kernel's own CNA has assigned CVEs for fixed kernel bugs, including Bluetooth ones, and publishes them in its vulns.git repository and on the linux-cve-announce list. Our Linux kernel CVEs in embedded devices guide covers how to triage that stream by kernel version, configuration and driver; the rest of this page covers what is specific to Bluetooth.

Which BlueZ and kernel Bluetooth CVEs matter most?

Four CVEs cover the best-known remote Bluetooth risks on embedded Linux, all reachable by an unauthenticated attacker within radio range. Scores below are NVD's, EPSS values are FIRST's for 2026-11-14, and none of the four, nor any other entry mentioning Bluetooth or BlueZ, is in CISA's KEV catalog version 2026.11.13.

CVE Code What it is Affected (per finder) Fixed upstream NVD / EPSS
CVE-2020-12351 (BadKarma) Kernel, l2cap_core.c Heap type confusion from a crafted L2CAP packet; code execution in the kernel when chained with BadChoice Linux 4.8 and later Mainline 5.10; stable 4.9.240, 4.14.202, 4.19.152, 5.4.72, 5.8.16 8.8 / 0.078
CVE-2020-12352 (BadChoice) Kernel, a2mp.c Uninitialized kernel stack leaked in A2MP responses, defeats KASLR Linux 3.6 and later Mainline 5.10, same stable releases 6.5 / 0.058
CVE-2020-24490 (BadVibes) Kernel, hci_event.c Heap overflow from extended advertising data while scanning, on Bluetooth 5 controllers Linux 4.19 and later Mainline 5.8; stable 4.19.137, 5.4.56, 5.7.13 6.5 / 0.022
CVE-2023-45866 bluetoothd input plugin A fake keyboard pairs without user confirmation and injects keystrokes BlueZ before 5.71 with default settings BlueZ 5.71 (ClassicBondedOnly defaults to true) 6.3 / 0.079

The stable versions for BadKarma are the upper bounds of NVD's ranges, and Debian's tracker lists the same fixes in 4.9.240 and 4.19.152 packages. BlueZ itself has had other CVEs, such as CVE-2024-8805 in HID over GATT, which our BLE guide covers; the four above are the ones most often raised against embedded Linux images.

What was BleedingTooth and how exposed is an embedded device?

BleedingTooth is the name Google gave to three zero-click flaws in the Linux kernel's Bluetooth subsystem that, chained, allow remote code execution with kernel privileges from radio range. Andy Nguyen's write-up explains that L2CAP-based protocols such as A2MP are "exposed without authentication" in the Linux implementation, and shows a full exploit against x86-64 Ubuntu 20.04.1. BadKarma and BadChoice need the target's Bluetooth device address; BadVibes needs the target to be scanning with a Bluetooth 5 controller, which is exactly what a BLE sensor gateway does all day.

Disclosure was messy, which still matters for old BSP kernels. Google reported to Intel, as the BlueZ and kernel Bluetooth maintainers, instead of the kernel security team. Intel published its advisory on 2020-10-13 with patches that were in no released kernel at the time, then corrected the recommended fixed version from 5.9 to 5.10 the next day. The BadVibes fix had already landed in mainline on 2020-07-30 under the neutral title "fix kernel oops in store_pending_adv_report". A vendor kernel based on 4.19 or 5.4 is only fixed if someone pulled the matching stable release or cherry-picked the commits.

One kernel option reduces the A2MP part. The fix series included a commit that turned off Bluetooth High Speed (CONFIG_BT_HS) by default, and Google's timeline notes that informed parties were approved to disable BT_HS before disclosure. A2MP and the BT_HS option were removed entirely in Linux 6.9 by the commit "Bluetooth: Remove BT_HS". On older kernels, check that CONFIG_BT_HS is off; it only serves rare High Speed hardware.

NVD's records need care here. The Google advisory for BadChoice gives Linux 3.6 and later, but NVD's configuration for CVE-2020-12352 only covers ranges from 5.4, so an NVD-based scan of a 4.14 or 4.19 kernel can miss it. NVD files CVE-2020-24490 under the application CPE for BlueZ with no version, not under the Linux kernel, so a version match can attach it to the userspace package instead of the kernel that contains the bug.

How does CVE-2023-45866 let a fake keyboard into a Linux device?

CVE-2023-45866 lets a nearby attacker pair an emulated Bluetooth keyboard with a BlueZ host without any user confirmation, then type commands as the logged-in user. Its finder, Marc Newlin, describes it in his CVE-2023-45866 write-up as tricking "the Bluetooth host state-machine into pairing with a fake keyboard without user-confirmation", and says Linux with BlueZ is vulnerable when Bluetooth is discoverable and connectable. He tested Ubuntu 18.04 to 23.10, and the attack needs only a Linux computer with a normal Bluetooth adapter.

The root cause is a default. BlueZ fixed a similar flaw, CVE-2020-0556, in version 5.54 by adding a ClassicBondedOnly option to the input profile, but, as the Debian tracker notes, that option defaulted to false. Newlin writes that the 2020 fix "was left disabled by default" and that ChromeOS was the only Linux-based OS known to have enabled it. The BlueZ fix, dated 2023-10-10, changes two lines so the default becomes true, citing the HID profile's requirement for Security Mode 4. It first shipped in BlueZ 5.71 on 2023-12-13.

The embedded risk depends on what the device does with HID input. A headless gateway that never registers an agent or shows a shell has less to lose than an infotainment unit or an HMI with a terminal, a browser or a privileged kiosk app, where typed input becomes commands. Ubuntu's CVE page gives the configuration mitigation: set ClassicBondedOnly=true in /etc/bluetooth/input.conf and restart the Bluetooth service, noting that setting it false re-enables legacy devices such as the PS3 controller and the vulnerability.

How do you find the BlueZ and kernel versions in a firmware image?

Find two versions and one configuration: the BlueZ release in the root file system, the kernel release, and whether that kernel builds Bluetooth at all.

  1. BlueZ package recordsDebian-based images record the bluez package in the dpkg status file, OpenWrt records bluez-daemon and bluez-utils in its opkg status file, and Buildroot and Yocto record the version in their build manifests and SBOM output. Distribution builds carry a revision after the upstream number, such as 5.66-1+deb12u1.
  2. The daemon itselfOn a running device, bluetoothd --version prints the version, according to the bluetoothd manual. In an unpacked image, bluetoothd usually sits under /usr/libexec/bluetooth/ or /usr/lib/bluetooth/.
  3. Over the airBlueZ's main.conf documents the default adapter name as "BlueZ X.YZ", so a device that never sets Name can announce its BlueZ version to anyone scanning.
  4. Kernel releaseRead the directory name under /lib/modules/, or search the kernel image for its Linux version string. Treat a vendor suffix as a sign of a BSP kernel with its own patch history.
  5. Kernel Bluetooth configurationCheck the shipped .config, or /proc/config.gz where the kernel exposes it, for CONFIG_BT, CONFIG_BT_HS, CONFIG_BT_HIDP and CONFIG_BT_LE. A bluetooth.ko module under /lib/modules/<release>/kernel/net/bluetooth/ shows the subsystem is built as a module.
  6. Profiles and settingsList the plugins the build enabled, and read /etc/bluetooth/main.conf, input.conf and the bluetoothd service unit for --noplugin or --experimental flags.

The version is only the upstream base. Debian fixed CVE-2023-45866 in bookworm's 5.66-1+deb12u1 and bullseye's 5.55-3.1+deb11u1, and Ubuntu fixed it in 22.04's 5.64-0ubuntu1.1, without changing the upstream number. Kernel stable branches and BSP trees do the same for BleedingTooth. Our embedded Linux build systems and SBOM guide explains where Buildroot and Yocto record versions and patches.

Where are BlueZ and kernel Bluetooth fixes published?

BlueZ fixes are published as commits in the bluez.git repository on git.kernel.org and then in the next release tarball, without a separate security advisory page from the project. The release notes are terse: the BlueZ ChangeLog entry for 5.71 lists three "Fix issue" lines and does not mention the ClassicBondedOnly change. The practical sources are therefore the commit log, the CVE record's references, and distribution trackers such as the Debian Security Tracker, which names the fix commit and the fixed package per release.

Kernel Bluetooth fixes go through the bluetooth and bluetooth-next trees into mainline, then into the stable and long-term branches. The Debian tracker entry for CVE-2020-24490 shows the pattern: it links the mainline commit and marks it as first released in 5.8, and lists the Debian kernel packages that carry the fix. For newer kernel CVEs, the kernel CNA's records list the fixing commit and the first fixed version for each stable branch.

How should you harden BlueZ on a device?

Hardening BlueZ on a device means building fewer profiles, loading fewer plugins and making pairing a deliberate, time-limited act. Defaults favour desktops: the OpenEmbedded-Core recipe enables audio, network, HID, HID over GATT and OBEX profiles by default, while Buildroot leaves each plugin behind its own option.

  1. Build only the profiles the product usesIn Yocto, trim PACKAGECONFIG for bluez5; in Buildroot, leave the HID, HID over GATT, network, audio and OBEX options off unless needed. A sensor gateway rarely needs HID or audio.
  2. Block plugins at run timebluetoothd --noplugin=input,hog,network,a2dp,avrcp stops those plugins loading even when they are built, per the bluetoothd manual. Avoid --experimental and --testing in production units.
  3. Restrict input devicesKeep ClassicBondedOnly=true in input.conf. It is the default from 5.71 but older images and some distribution configurations set it to false.
  4. Trim the kernelIf the product has no Bluetooth, build without CONFIG_BT. If it does, turn off CONFIG_BT_HS on kernels before 6.9, and turn off CONFIG_BT_HIDP when the product accepts no keyboards or mice.
  5. Keep the radio off when unusedAutoEnable in the [Policy] section enables every controller when it is found and defaults to true; set it to false on products where Bluetooth is a service feature and power the adapter only when a technician needs it.

Pairing should be a deliberate, time-limited act. A main.conf baseline for a BLE sensor gateway looks like this:

[General]
# Only BLE on a sensor gateway; use "dual" only if BR/EDR is needed
ControllerMode = le
# Discoverable and pairable only for a short window after a user action
DiscoverableTimeout = 120
PairableTimeout = 120
AlwaysPairable = false
# Refuse Just Works re-pairing started by a peer (the default)
JustWorksRepairing = never
# Allow only Secure Connections pairing
SecureConnections = only

[GATT]
# Require a full-length key for secured characteristics
KeySize = 16

Each value comes from the documented options in the BlueZ main.conf: DiscoverableTimeout defaults to 180 seconds, PairableTimeout defaults to 0, which means pairable forever, JustWorksRepairing accepts never, confirm or always and defaults to never, and SecureConnections=only allows only Secure Connections. SecureConnections=only and ControllerMode=le can lock out older phones and accessories, so test them against the devices your users pair.

How does a device maker patch or backport BlueZ and kernel Bluetooth fixes?

  1. Update BlueZ where you canMove to a current release, 5.88 as of 2026-11-15, or to the current BlueZ recipe in your build system branch. Read the configuration file diffs as well as the code, because a fix such as CVE-2023-45866 changes a default that your own input.conf may override.
  2. Backport when you cannotBlueZ fixes are often small. The CVE-2023-45866 fix is two changed lines, and Debian carried it back to 5.50 for buster and Ubuntu to 5.37 for 16.04. Take the commit that the Debian tracker or the CVE record names, apply it to your BlueZ recipe as a patch, and record it.
  3. Fix the kernel through its ownerUpdate to the newest release of your kernel's stable or long-term branch, or ask the SoC vendor for a BSP kernel that includes the Bluetooth fixes. For an old branch, cherry-pick the mainline commits: the BadKarma fix adds a filter callback to L2CAP channels, and the BadChoice and BadVibes fixes touch a2mp.c and hci_event.c. Our firmware diffing and patch analysis guide shows how to confirm a backport reached the shipped binary.
  4. Mitigate in configuration meanwhileClassicBondedOnly=true closes CVE-2023-45866. A kernel built without CONFIG_BT_HS removes the A2MP code behind BadChoice and the A2MP path to BadKarma. Turning scanning off when no BLE sensor is expected limits BadVibes, but on a sensor gateway that is the product's job, so the kernel fix is the only real answer there.
  5. Ask the chip vendor about controller firmwareBluetooth controller bugs are fixed in vendor firmware blobs, not in BlueZ or the kernel, and need their own entry in the update.
  6. Release with evidenceRegenerate the SBOM with the BlueZ and kernel versions and the patch list, and state per CVE whether the product is affected. Our CSAF and VEX for device makers guide shows the format, for example "not affected" for BleedingTooth on a kernel built without CONFIG_BT.

Worked example: how would you triage Bluetooth in a smart home hub image?

Synthetic example, not a real product. A smart home hub maker scans a Yocto-based image built on a vendor 5.4 BSP kernel with BlueZ 5.64.

  1. Confirm the versionsThe build manifest lists bluez5 5.64 with no extra patches, /lib/modules/ shows a 5.4.50 release with the SoC vendor's suffix, and the kernel configuration has CONFIG_BT=m, CONFIG_BT_HS=y and CONFIG_BT_HIDP=m.
  2. Match the kernel CVEs5.4.50 sits below the 5.4.56 and 5.4.72 stable fixes, so BadVibes, BadKarma and BadChoice all apply unless the vendor patch list shows the commits; it does not. The controller supports Bluetooth 5 and the hub scans continuously for BLE door sensors, so BadVibes is reachable.
  3. Match the BlueZ CVEs5.64 predates 5.71, and the shipped input.conf leaves ClassicBondedOnly commented out, so CVE-2023-45866 applies. NVD's record lists operating systems rather than a BlueZ CPE, so the team adds it from the BlueZ commit and the Debian tracker instead of relying on the version match.
  4. Check exposureThe hub enables the input, network and audio plugins it never uses, and PairableTimeout is 0, so it stays pairable whenever the adapter is on.
  5. FixThe team moves to the SoC vendor's newer BSP kernel with CONFIG_BT_HS off, updates the BlueZ recipe, sets ClassicBondedOnly=true, adds --noplugin=input,hog,network,a2dp,avrcp, sets a pairing window of 120 seconds, then rebuilds, re-scans and publishes a VEX statement per CVE.

How does AI-assisted analysis help with Bluetooth stack findings?

SoftWSP's automated scan unpacks a firmware image, catalogs the software packages in the extracted file system with their versions (the inventory our firmware SBOM guide describes), and matches each one against CVE records, CISA's KEV catalog and FIRST's EPSS scores. Where the image records the kernel as a package, as OpenWrt's package database does, it is matched against NVD's Linux kernel entry. This is deterministic code: the code scores, and AI narrates. You can inspect the resulting CycloneDX file in the free SBOM viewer.

Version matching follows NVD's records and inherits their limits, which are significant for Bluetooth. CVE-2023-45866 names operating systems but no BlueZ product, CVE-2020-24490 is filed under BlueZ instead of the kernel, CVE-2020-12352's ranges start at 5.4, and a kernel version says nothing about whether CONFIG_BT is built. AI's part is the written explanation of what matched, citing the component, version and record behind each sentence. An engineer reviews every finding before the report is delivered. That review is where kernel configuration, enabled plugins, input.conf and main.conf settings and any distribution or BSP backport become a documented "affected" or "fixed" decision.

For where Bluetooth fits in a full assessment, see the OWASP Firmware Security Testing Methodology guide and our KEV and EPSS prioritisation guide, or device & firmware security services to have a specific image reviewed.

This guide draws on Google's BleedingTooth write-up and advisories, Marc Newlin's CVE-2023-45866 write-up, BlueZ commits, ChangeLog, main.conf, input.conf and bluetoothd manual on git.kernel.org, the Linux kernel commits for each fix, kernel.org's BlueZ release directory, the Debian Security Tracker, Ubuntu's CVE page, the Buildroot, OpenEmbedded-Core and OpenWrt BlueZ build files, NVD, CISA's KEV catalog (version 2026.11.13) and FIRST EPSS data dated 2026-11-14, all read directly on 2026-11-14.

Put this guide to work

Frequently asked questions

Which BlueZ and Linux Bluetooth vulnerabilities matter most for embedded devices?

Two groups cover most findings. BleedingTooth is three Linux kernel bugs that Google disclosed on 2020-10-13: CVE-2020-12351 (BadKarma, an L2CAP type confusion from Linux 4.8 that can give code execution in the kernel), CVE-2020-12352 (BadChoice, an A2MP stack leak from Linux 3.6) and CVE-2020-24490 (BadVibes, a heap overflow from Linux 4.19 in the parser for Bluetooth 5 extended advertising reports). CVE-2023-45866 is a userspace bluetoothd flaw that lets a nearby attacker pair a fake keyboard without user confirmation and inject keystrokes while the device is discoverable or connectable; BlueZ 5.71 fixed it by changing the default of ClassicBondedOnly to true. As of 2026-11-14 none of them is in CISA's KEV catalog.

Is a BleedingTooth CVE a BlueZ bug or a kernel bug?

BleedingTooth is kernel code. All three bugs sit in the net/bluetooth directory of the Linux kernel (l2cap_core.c, a2mp.c and hci_event.c), and their fixes are Linux kernel commits. The CVE records, written by Intel, still say 'BlueZ' because BlueZ is the name of the whole Linux Bluetooth stack, which has kernel and userspace parts. For a device maker the difference decides who ships the fix: a kernel bug is fixed by updating or patching the kernel, usually the SoC vendor's BSP kernel, while a bluetoothd bug is fixed by updating the BlueZ package in the root file system.

How do I find the BlueZ and kernel versions in a firmware image?

For BlueZ, read the package database first: dpkg status for a Debian-based image, the opkg status file for OpenWrt (the daemon package is bluez-daemon), or the Buildroot and Yocto build manifests. On a running device, bluetoothd --version prints the version. For the kernel, take the release from the directory name under /lib/modules or the 'Linux version' string in the kernel image, then check the kernel configuration for CONFIG_BT and its sub-options, because a kernel version only matters for Bluetooth CVEs if the Bluetooth subsystem is built.

Which BlueZ settings close CVE-2023-45866 and similar pairing attacks?

Set ClassicBondedOnly=true in the [General] section of input.conf, which is the default from BlueZ 5.71, so the input profile only accepts HID connections from bonded devices. In main.conf, keep JustWorksRepairing at its default of never, keep AlwaysPairable false, set a PairableTimeout instead of the default 0 (pairable forever), use ControllerMode=le on products that only need Bluetooth Low Energy, and consider SecureConnections=only and a GATT KeySize of 16. Only stay discoverable when a user has asked to pair.

Does SoftWSP find BlueZ and kernel Bluetooth CVEs in my firmware automatically?

SoftWSP's automated scan catalogs the software packages in an unpacked firmware file system with their versions and matches them against CVE records, CISA's KEV catalog and FIRST EPSS scores. AI then writes a plain-language summary that cites the component, version and record behind each finding, and an engineer reviews it. Several Bluetooth facts sit outside a version match and are part of that engineer review: whether the kernel builds Bluetooth at all, which BlueZ plugins and settings the image ships, and CVE-2023-45866, whose NVD record names operating systems but no BlueZ product.

Sources

  1. Google Security Research: BleedingTooth, Linux Bluetooth Zero-Click Remote Code Execution (write-up by Andy Nguyen)
  2. Google Security Research advisory GHSA-h637-c88j-47wq: BadKarma, heap-based type confusion in L2CAP (CVE-2020-12351)
  3. Google Security Research advisory GHSA-7mh3-gq28-gfrq: BadChoice, stack-based information leak in A2MP (CVE-2020-12352)
  4. Google Security Research advisory GHSA-ccx2-w2r4-x649: BadVibes, heap-based buffer overflow in the HCI event parser (CVE-2020-24490)
  5. Marc Newlin (SkySafe): Hi, My Name Is Keyboard, CVE-2023-45866 write-up
  6. BlueZ commit 25a471a: input.conf: Change default of ClassicBondedOnly
  7. Linux commit f194256: Bluetooth: L2CAP: Fix calling sk_filter on non-socket based channel (CVE-2020-12351)
  8. Linux commit eddb773: Bluetooth: A2MP: Fix not initializing all members (CVE-2020-12352)
  9. Linux commit a2ec905: Bluetooth: fix kernel oops in store_pending_adv_report (CVE-2020-24490)
  10. Linux commit b176dd0: Bluetooth: Disable High Speed by default
  11. Linux commit e7b0229: Bluetooth: Remove BT_HS
  12. BlueZ: main.conf (default configuration file, master)
  13. BlueZ: input.conf (input profile configuration, master)
  14. BlueZ: bluetoothd manual page source
  15. BlueZ: ChangeLog
  16. kernel.org: BlueZ release tarballs
  17. Linux kernel CVE team: vulns.git repository
  18. Debian Security Tracker: CVE-2020-12351
  19. Debian Security Tracker: CVE-2020-24490
  20. Debian Security Tracker: CVE-2023-45866
  21. Debian Security Tracker: CVE-2020-0556
  22. Ubuntu Security: CVE-2023-45866
  23. Buildroot: package/bluez5_utils/bluez5_utils.mk
  24. OpenEmbedded-Core: bluez5.inc recipe
  25. OpenWrt packages: bluez package Makefile
  26. NIST NVD: CVE-2020-12351
  27. NIST NVD: CVE-2020-12352
  28. NIST NVD: CVE-2020-24490
  29. NIST NVD: CVE-2023-45866
  30. CISA: Known Exploited Vulnerabilities (KEV) Catalog
Was this guide helpful?

In this cluster

BlueZ and Linux Bluetooth vulnerabilities in embedded devices: find the versions, rank the CVEs, harden and patch