Android security tags, read closely by Lightrion

CVE-2025-48644 AI-generated analysis

platform/frameworks/base, input method framework (android.view.inputmethod.InputMethodInfo, com.android.internal.inputmethod, InputMethodManagerService)

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

Caps the cumulative size of resolved InputMethodInfo metadata attributes at MAX_METADATA_SIZE_BYTES via a TypedArrayWrapper/MetadataReadBytesTracker in the InputMethodInfo constructor, and moves the IInputMethodManager list-returning IPCs (getInputMethodList, getEnabledInputMethodList, getEnabledInputMethodSubtypeList) to blob-backed InputMethodInfoSafeList/InputMethodSubtypeSafeList parcelables to avoid oversized Binder transactions.

Root cause

The InputMethodInfo constructor parses an IME's <input-method> XML metadata with res.obtainAttributes() and TypedArray.getString()/getBoolean()/getInt()/getResourceId(). The only size checks were a validation of the raw XML file size (the InputStream.skip() loop) and a 1000-char COMPONENT_NAME_MAX_LENGTH check on si.name and settingsActivity. String attributes may be resource references (e.g. @string/...) whose resolved value is much larger than the XML file. Per the commit messages, this can lead to OOM during parsing or to large Binder transactions (TransactionTooLargeException) when List<InputMethodInfo> / List<InputMethodSubtype> are returned over IPC. Subtype string attributes had no length limit in the old code.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to March 2026 · Findings