Android security tags, read closely by Lightrion

CVE-2026-45516 AI-generated analysis

platform/external/freetype, TrueType GX/OpenType variation parsing (src/truetype/ttgxvar.c)

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.

Adds an unsigned-multiplication wraparound check on per_region_size * item_count in tt_var_load_item_variation_store (src/truetype/ttgxvar.c) before varData->deltaSet is allocated. When the product wraps, the function now returns Array_Too_Large.

Root cause

In tt_var_load_item_variation_store, the size of each varData delta set array was computed as per_region_size * item_count in FT_UInt arithmetic with no overflow check. item_count, word_delta_count and region_idx_count are read from the font with FT_READ_USHORT. per_region_size is doubled when long_words is set. The product could wrap, and the wrapped value went straight to FT_NEW_ARRAY( varData->deltaSet, ... ), giving an allocation smaller than per_region_size * item_count.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to October 2026 · Findings