Android security tags, read closely by Lightrion

CVE-2026-58835 AI-generated analysis

platform/packages/modules/Bluetooth, system/btif (btif_storage, bt_config property read-back)

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

In system/btif/src/btif_storage.cc cfg2prop(), the BT_PROPERTY_UUIDS / BT_PROPERTY_UUIDS_LE path now limits btif_split_uuids_string() to the caller-supplied buffer capacity (prop->len / sizeof(Uuid)) instead of the hardcoded BT_MAX_NUM_UUIDS.

Root cause

cfg2prop() in system/btif/src/btif_storage.cc reads the stored remote service UUID string (BTIF_STORAGE_KEY_REMOTE_SERVICE or BTIF_STORAGE_KEY_REMOTE_SERVICE_LE) into a 1280-byte local buffer. It then parses that string with btif_split_uuids_string(value, p_uuid, BT_MAX_NUM_UUIDS), where p_uuid is prop->val. BT_MAX_NUM_UUIDS is a constant and ignores prop->len, the real capacity of the caller's bt_property_t value buffer. Sibling cases in the same switch (e.g. BT_PROPERTY_CLASS_OF_DEVICE, BT_PROPERTY_REMOTE_VERSION_INFO) check prop->len against the type size before writing. This case had no link between the write limit and the buffer size, so a stored string with more UUIDs than fit in prop->val could be written past the end of the caller's buffer. The commit message also calls this a companion to ag/40421805, whose content is not in the material.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to October 2026 · Findings