Android security tags, read closely by Lightrion

CVE-2026-28590 AI-generated analysis

platform/packages/modules/Bluetooth, system/stack/smp (SMP pairing) and system/stack/btm / system/stack/btu (encryption key size enforcement)

AI-generated: written from the bulletin and the fixing diffs by claude-fable-5-1, then checked against the code by claude-opus-5-5 (5 corrections). Verify against the commit before relying on it.

The fix makes the LE Security Manager (SMP) reject a peer Pairing Request/Response whose Maximum Encryption Key Size is below the 7-octet minimum (and adds the same check on the SMP-over-BR/EDR path), routing all minimum-key-size checks through a new btm_sec_get_min_enc_key_size() accessor.

Root cause

In system/stack/smp/smp_act.cc, smp_proc_pair_cmd() parsed the peer's Maximum Encryption Key Size into p_cb->peer_enc_size but only failed pairing with SMP_ENC_KEY_SIZE when p_cb->cert_failure was set to SMP_ENC_KEY_SIZE; it did not compare peer_enc_size against the 7-octet minimum. smp_br_process_pairing_command() (SMP over BR/EDR) had no key-size check before smp_command_has_invalid_parameters(). The 7-octet minimum (file-local MIN_KEY_SIZE in btu_hcif.cc on Android 14) was enforced on BR/EDR via the HCI Read Encryption Key Size completion handlers, and per the commit message the minimum was not enforced for LE.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to September 2026 · Findings