CVE-2018-9417 is a high severity use-after-free caused by improper locking in the kernel USB HID gadget driver (f_hidg_read and hidg_disable in f_hid.c). NVD scores it 7.8. Google fixes it at security patch level 2018-07-05 or later. Install the device update that reaches that level.
What's affected
- Product: Android, in the kernel USB HID gadget driver (f_hidg_read and hidg_disable in f_hid.c).
- Releases listed by the bulletin: listed by kernel component (USB driver) rather than by Android version. The NVD product list shows only some Android releases, so treat the bulletin as the fuller list.
- Fixed in: security patch level 2018-07-05 or later, according to the Android Security Bulletin for July 2018.
- Impact in the record: local escalation of privilege with no extra privileges and no user interaction.
- Severity: NVD scores it 7.8 High (vector AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H). The bulletin lists it as High, type EoP. The two ratings agree.
- Weakness classes: CWE-416 (Use After Free).
How to check if you're exposed
- On the device, open Settings and find the Android security patch level, usually under About phone. The exact path varies by manufacturer. A date earlier than 2018-07-05 means the fix is not present.
- With a USB debugging connection, run
adb shell getprop ro.build.version.security_patch. It prints the patch level as a date. You need 2018-07-05 or later. - For a fleet, export the patch level from your mobile device management console and filter for dates earlier than 2018-07-05.
- Match each device against the release list above. Devices on releases outside it are not named for this CVE, but check them against the other entries in the same bulletin.
What to do now
- Identify every Android device in scope and record its current security patch level.
- Roll out the manufacturer or carrier update that reaches 2018-07-05 or later. Google publishes the fixes, but each device maker decides when its devices receive them.
- For devices that no longer receive updates, plan replacement or limit what they can reach, such as corporate mail and internal apps.
- Write the update policy down, with a maximum patch age, and report exceptions.
Why it matters
The July bulletin files this under kernel components and notes an upstream kernel fix, so the affected scope is a kernel driver rather than an Android framework version. The record lists Android with no version, so check your device vendor kernel and patch level rather than the Android release number.
The cause is improper locking. When two code paths touch the same object without coordination, one can free it while the other still holds a pointer. The later access then lands on memory that may have been reused, which is the classic use-after-free. The record's KEV flag is false, so CISA does not list it as exploited. The bulletin says Google had no reports of active customer exploitation or abuse of the newly reported issues in it. That is the absence of a report in the sources read, not proof that no one has tried.
Quick check
Why does the record list no Android version?
The NVD entry names Android without a version, and the bulletin lists this fix under kernel components. Use the security patch level of 2018-07-05 or later as the test instead of the Android release number.
Which patch level should I look for?
The Android Security Bulletin for July 2018 places this fix at 2018-07-05. Any date at or after 2018-07-05 includes it. Some makers ship it under a different update name, so check the date.
Sources
- Android Security Bulletin for July 2018: Affected releases, severity, type and the patch level that carries the fix.
Last reviewed: 19 October 2026.