Android security tags, read closely by Lightrion

CVE-2026-45513 AI-generated analysis

platform/system/nfc (Android 14/15) and platform/packages/modules/Nfc libnfc-nci (Android 16/17), NCI transport / HAL receive path (src/nfc/nfc/nfc_main.cc)

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 length check in nfc_main_hal_data_cback (libnfc-nci nfc_main.cc). An incoming HAL data packet larger than the fixed NFC_NCI_POOL_ID GKI buffer capacity is now logged and dropped instead of being placed in a pool buffer that is too small.

Root cause

In nfc_main_hal_data_cback, when the build takes the #else branch, the receive message buffer comes from GKI_getpoolbuf(NFC_NCI_POOL_ID), which returns a fixed-size buffer from that pool. The incoming data_len from the HAL was never compared against the pool buffer size minus sizeof(NFC_HDR) and NFC_RECEIVE_MSGS_OFFSET. According to the commit message, a packet longer than that remaining capacity could therefore overflow the pool buffer. The sibling #if branch allocates with GKI_getbuf(sizeof(NFC_HDR) + NFC_RECEIVE_MSGS_OFFSET + data_len), which sizes the buffer from data_len, and the fix does not change it.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to October 2026 · Findings