Android security tags, read closely by Lightrion

CVE-2026-49913 AI-generated analysis

platform/hardware/interfaces, cas/aidl/default (default AIDL CAS HAL, IDescrambler implementation)

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.

In the default AIDL CAS HAL, DescramblerImpl::descramble now compares the mmap() result for the client-supplied source SharedBuffer against MAP_FAILED instead of NULL, and installs a ScopeGuard that munmap()s the mapping on every exit path after the check.

Root cause

In cas/aidl/default/DescramblerImpl.cpp, DescramblerImpl::descramble tested the mmap() result for the source buffer with `if (srcPtr == NULL)`. mmap() returns MAP_FAILED, not NULL, on failure, so a failed mapping passed the check and execution continued with MAP_FAILED as the source pointer. The commit describes this as leading to an arbitrary-address memory access. The comment above the check notes that the offset and size in the SharedBuffer are client-controlled. The commit also adds munmap() cleanup 'to prevent memory leaks' of the mapping.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to September 2026 · Findings