Android security tags, read closely by Lightrion

CVE-2024-34730 AI-generated analysis

platform/packages/modules/Bluetooth, HID Host profile (btif_hh, btif_profile_storage, HidHostService JNI, Floss topshim)

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 (4 corrections). Verify against the commit before relying on it.

Adds a per-device "reconnect_allowed" flag to the HID host btif layer (persisted as HidReConnectAllowed) and makes hh_open_handler in system/btif/src/btif_hh.cc reject incoming HID connections unless the device is an added device with reconnection allowed or an outgoing connection to it is pending.

Root cause

In system/btif/src/btif_hh.cc, hh_open_handler processed every BTA_HH open event as an accepted connection: it emitted BTHH_CONN_STATE_CONNECTING and proceeded to set up the device without checking whether the application had allowed connections from that device. The HID connection policy (BluetoothProfile.CONNECTION_POLICY_ALLOWED) was evaluated only in the Java HidHostService and was not propagated to the native stack; the native disconnect() took only an address. The only guard visible in the material is the Java-side okToConnect check in MESSAGE_CONNECT_STATE_CHANGED, which acts once the HAL reports CONNECTED (virtualUnPlugNative). Per the commit message, a remote device could initiate a HID connection even when HID connection was disabled by the connection policy.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to January 2025 · Findings