Android December 2025 Security Bulletin: DFIR impact and fleet actions
Google published the Android Security Bulletin for December 2025 with patch levels 2025-12-01 and 2025-12-05. The most severe issue is a critical Framework vulnerability that enables remote denial of service; Google also notes two CVEs under limited, targeted exploitation. Source code patches land in AOSP within 48 hours of publication, then vendors integrate and ship updates. Verify exposure by checking each device’s reported patch level. (Android bulletin, Dec 1, 2025; Google Support: check patch level)
Intrusion Flow
- Initial effect: A crafted trigger can crash or stall Framework components, producing device unresponsiveness, ANR dialogs, or forced restarts indicative of a remote DoS. The bulletin calls out a critical Framework DoS (CVE-2025-48631) and flags CVE-2025-48633 and CVE-2025-48572 as possibly exploited in limited, targeted attacks. (Android bulletin)
- Secondary effects: Subsequent instability may surface as native crashes (tombstones) or ANR traces. Android stores ANR traces under /data/anr and records native crash “tombstones,” both captured in bugreports and written to disk. (ANR traces; Diagnose native crashes; Read bug reports)
- Patch scope: 2025-12-01 covers Framework/System and other platform fixes; 2025-12-05 adds kernel items including critical EoP in pKVM/IOMMU (for full coverage, target 12-05 fleet-wide). (Android bulletin)
Key Artifacts to Pull
- Fleet exposure evidence
- Security patch level on-device and over ADB:
The system patch level is also accessible via Build.VERSION.SECURITY_PATCH for app-side checks. The vendor patch property is defined in Android build/SEPolicy. (Build.VERSION.SECURITY_PATCH; ro.vendor.build.security_patch in build system; SEPolicy property type)
adb shell getprop ro.build.version.security_patch # e.g., 2025-12-05 adb shell getprop ro.vendor.build.security_patch # vendor partition patch
- Security patch level on-device and over ADB:
- Crash and hang evidence
- Bugreport (captures dumpsys, dumpstate, logcat, ANR/tombstones snapshots):
Then parse the zip’s top-level bugreport-*.txt for ANRs and system_server issues. (Capture & read bug reports; Read bug reports)
adb bugreport ./bugreport.zip - ANR traces (root or userdebug builds):
Newer Android uses multiple /data/anr/anr_* files; older versions keep /data/anr/traces.txt. (ANR traces)
adb root adb shell ls /data/anr adb pull /data/anr/<anr_file> - Native crash tombstones:
Tombstones are generated by debuggerd and summarized in bugreports. (Diagnose native crashes)
adb root adb shell ls /data/tombstones adb pull /data/tombstones/tombstone_* - DropBox (system crash log queue) for tags like SYSTEM_TOMBSTONE and system_server_native_crash:
DropBoxManager stores crash text under /data/system/dropbox; BootReceiver copies tombstone content into DropBox and emits the special system_server_native_crash tag. (DropBoxManager API; BootReceiver handling of tombstones and tag; SEPolicy type for /data/system/dropbox)
adb shell dumpsys dropbox | grep -i "tombstone\|system_server_native_crash"
- Bugreport (captures dumpsys, dumpstate, logcat, ANR/tombstones snapshots):
Detection Notes
- Symptom-driven: Look for spikes in ANR events and repeated system_server crashes or restarts around suspected attack times. Bugreports contain VM TRACES AT LAST ANR, logcat sections, and DropBox entries you can correlate by timestamp and PID. (Read bug reports; Keep apps responsive / ANR triggers)
- EMM/MDM compliance: Enforce a minimum Android security patch level policy so noncompliant devices can’t access corporate resources until updated. In Microsoft Intune and Graph, use minAndroidSecurityPatchLevel in Android compliance policies. (Graph v1.0 androidCompliancePolicy; Graph beta androidDeviceOwnerCompliancePolicy)
- Store protections: Google Play Protect continuously scans apps and helps flag PHAs, reducing opportunistic abuse. Verify Play Protect is enabled on GMS devices if your policy allows user apps. (Google Play Protect)
Response Guidance
- Prioritize patch deployment
- Target 2025-12-05 for complete coverage (includes kernel items) across supported devices; 2025-12-01 addresses Framework fixes including the critical DoS. (Android bulletin)
- Track fleet progress by querying patch level via EMM inventory or ADB for field audits. (Google Support: check patch level; Build.VERSION.SECURITY_PATCH)
- Suspected exploitation triage (targeted cases)
- Immediately capture a bugreport from the device before reboot cycles roll logs. Pull /data/anr and tombstones when permissible, and export relevant DropBox entries. (Capture & read bug reports; ANR traces; Diagnose native crashes; DropBoxManager API)
- Correlate crash times with user activity and inbound events (SMS/MMS/app traffic) if available. Use VM TRACES AT LAST ANR and any system_server_native_crash entries to pinpoint affected subsystems. (Read bug reports; BootReceiver tag)
- Enterprise policy
- Enforce a minimum security patch level in compliance policies (e.g., >= 2025-12-05) and block access for out-of-date devices until remediated. (Graph v1.0 androidCompliancePolicy)
- Communicate that AOSP links are posted within 48 hours after bulletin release; OEM delivery cadence varies by device and carrier. (Android bulletin; Google Support: update schedules vary)
Takeaways
- Inventory and gate: Require 2025-12-05 where possible; monitor stragglers. (Android bulletin)
- Collect early: Bugreport + /data/anr + tombstones + DropBox give the best signal for DoS/ANR patterns. (Capture & read bug reports; ANR traces; Diagnose native crashes; DropBoxManager)
- Automate compliance: Use EMM policies with minAndroidSecurityPatchLevel to prevent access from unpatched devices. (Graph v1.0 androidCompliancePolicy)
- Keep Play Protect on to reduce opportunistic app-borne abuse while you roll patches. (Google Play Protect)
Sources / References
- Android Security Bulletin—December 2025: https://source.android.com/docs/security/bulletin/2025-12-01
- Check and update your Android version (Google Support): https://support.google.com/android/answer/7680439
- Android Developers: Build.VERSION.SECURITY_PATCH: https://developer.android.com/reference/android/os/Build.VERSION
- AOSP build system: ro.vendor.build.security_patch emitted: https://android.googlesource.com/platform/build/+/851f144/core/Makefile
- AOSP SEPolicy: vendor_security_patch_level_prop: https://android.googlesource.com/platform/system/sepolicy/+/a75fa8058cee6718288cb62ab81ec7be857a01e5
- Android Developers: ANR traces (/data/anr): https://developer.android.com/topic/performance/vitals/anr
- AOSP: Diagnose native crashes (tombstones): https://source.android.com/docs/core/tests/debug/native-crash
- Android Developers: Capture and read bug reports: https://developer.android.com/studio/debug/bug-report
- AOSP: Read bug reports (structure, grep tips): https://source.android.com/docs/core/tests/debug/read-bug-reports
- Android Developers: DropBoxManager API: https://developer.android.com/reference/android/os/DropBoxManager
- AOSP BootReceiver (SYSTEM_TOMBSTONE, system_server_native_crash): https://android.googlesource.com/platform/frameworks/base/+/33f5ddd/services/core/java/com/android/server/BootReceiver.java
- AOSP SEPolicy: /data/system/dropbox type: https://android.googlesource.com/platform/system/sepolicy/+/f325a7db0691ca918741c8582e12929379f44d22
- Google Play Protect (developers overview): https://developers.google.com/android/play-protect
- Microsoft Graph: androidCompliancePolicy (minAndroidSecurityPatchLevel): https://learn.microsoft.com/en-us/graph/api/intune-deviceconfig-androidcompliancepolicy-get?view=graph-rest-1.0
- Microsoft Graph (beta): androidDeviceOwnerCompliancePolicy update: https://learn.microsoft.com/en-us/graph/api/intune-deviceconfig-androiddeviceownercompliancepolicy-update?view=graph-rest-beta