Android security tags, read closely by Lightrion

CVE-2024-49738 AI-generated analysis

platform/frameworks/native, libbinder (libs/binder/Parcel.cpp)

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

In libbinder Parcel.cpp, writeInplace(), writeObject() and writeAligned() now call validateReadData() on the end offset of the write before storing into mData+mDataPos, and refuse the write if it fails.

Root cause

The in-place write paths of Parcel (writeInplace, writeObject, writeAligned) checked only that mDataPos plus the write length fits within mDataCapacity (writeObject also checks object capacity). They then wrote directly at mData+mDataPos without calling validateReadData() on the target range. The commit message says this validation is required to prevent memory corruption. What exactly validateReadData() guards against is not shown in the material.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to January 2025 · Findings