Android security tags, read closely by Lightrion

CVE-2025-48609 AI-generated analysis

platform/packages/providers/TelephonyProvider, MmsProvider (mms content provider, part/drm row deletion)

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

MmsProvider.deleteDataRows now verifies that the file path read from a part/drm row's _data column canonically resolves under the provider's "parts" directory before calling File.delete(), reusing the same check openFile already performed.

Root cause

In src/com/android/providers/telephony/MmsProvider.java, deleteDataRows(db, table, selection, selectionArgs) queried the _data column of the part (TABLE_PART) or drm (TABLE_DRM) table and, for every non-null value, executed new File(path).delete() with no check on where the path pointed. The _data value was treated as trusted even though openFile already contained a comment noting that callers may have inserted or updated the _data column with disallowed paths (including via SQL injection) and guarded against it with a canonical-path prefix check. The delete path had no such guard, so a row whose _data pointed outside the parts directory caused the provider to delete that file when the row was deleted (via deleteParts/deleteTempDrmData, or indirectly via deleteMessages which calls deleteParts for each pdu). The bulletin classifies this as High severity DoS.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to March 2026 · Findings