Android security tags, read closely by Lightrion

CVE-2026-0010 AI-generated analysis

platform/frameworks/av, drm/common (drmserver Binder interface IDrmManagerService)

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

In BnDrmManagerService::onTransact, the fix replaces a fixed 16-byte stack buffer that sprintf("%lu") filled with the file descriptor value by a dynamically sized String8::format("%d", fd). This removes a possible stack buffer overflow when the descriptor value is negative.

Root cause

In drm/common/IDrmManagerService.cpp, BnDrmManagerService::onTransact (hunk at line ~1001, inferred to be in the handler after the ACQUIRE_DRM_INFO case label at line 985 of the context) handled a request entry with key "FileDescriptorKey" as follows: it read data.readFileDescriptor() into an int fd, cast it to unsigned long and wrote it with sprintf(buffer, "%lu", ...) into a local char buffer[16]. If fd is negative and unsigned long is 64-bit, the cast value prints as up to 20 decimal digits plus the terminating NUL. That is more than the 16-byte stack buffer. The key and the parcel content come from the Binder caller of drmserver.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to September 2026 · Findings