Android security tags, read closely by Lightrion

CVE-2026-49937 AI-generated analysis

platform/system/libfmq, MessageQueueBase (fast message queue read path, include/fmq/MessageQueueBase.h)

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.

Adds bounds validation in libfmq's MessageQueueBase for kSynchronizedReadWrite queues. availableToReadBytes() now rejects a write/read pointer pair that claims more available bytes than the queue size, and beginRead() now rejects up front any read request larger than the queue's quantum count.

Root cause

availableToReadBytes() loads mWritePtr and mReadPtr and rejected only the case writePtr < readPtr. If writePtr - readPtr exceeded the queue size (mDesc->getSize()), the function returned that oversized value unchanged. beginRead() also had no early check that nMessages fits in the queue (getQuantumCount()). The commit is a reapply of an earlier change. Per its message, the beginRead() check was fixed to apply only to kSynchronizedReadWrite, because the unsync flavor is expected to overflow when readers lag the writer. In the diff, both new checks are guarded by the flavor.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to October 2026 · Findings