Android security tags, read closely by Lightrion

CVE-2024-49735 AI-generated analysis

platform/frameworks/base, NotificationChannel / VibrationEffect (core/java/android/app, core/java/android/os)

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.

Caps the size of vibration data stored on a NotificationChannel by truncating vibration patterns to 500 entries, cropping non-repeating composed VibrationEffects (new VibrationEffect.cropToLengthOrNull) or dropping effects whose serialized form exceeds 32,768 characters, and no longer serializing a VibrationEffect to XML when an equivalent pattern already exists.

Root cause

NotificationChannel accepted a VibrationEffect (behind Flags.notificationChannelVibrationEffectApi) from the Parcel constructor and from setVibrationEffect() without any size limit, and setVibrationPattern() stored the raw long[] without truncating it in the setter. MAX_VIBRATION_LENGTH (1000) was not applied to the effect, and writeXml() always serialized the effect with vibrationToString() even when an equivalent vibration pattern was also written. Per the commit message, serialized vibration effects take much more space than the pattern array, so an app-supplied channel could carry a very large vibration effect into notification channel state that is written to XML.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to January 2025 · Findings