CVE-2025-22027: media: streamzap: fix race between device disconnection and urb callback
In the Linux kernel, the following vulnerability has been resolved:
media: streamzap: fix race between device disconnection and urb callback
Syzkaller has reported a general protection fault at function
ir_raw_event_store_with_filter(). This crash is caused by a NULL pointer
dereference of dev->raw pointer, even though it is checked for NULL in
the same function, which means there is a race condition. It occurs due
to the incorrect order of actions in the streamzap_disconnect() function:
rc_unregister_device() is called before usb_kill_urb(). The dev->raw
pointer is freed and set to NULL in rc_unregister_device(), and only
after that usb_kill_urb() waits for in-progress requests to finish.
If rc_unregister_device() is called while streamzap_callback() handler is
not finished, this can lead to accessing freed resources. Thus
rc_unregister_device() should be called after usb_kill_urb().
Found by Linux Verification Center (linuxtesting.org) with Syzkaller.
Security readout for executives and security teams
Plain-English summary
CVE-2025-22027 is a Linux kernel flaw in the Streamzap media/USB remote driver. A race during device disconnect can crash the kernel path handling infrared events. The documented impact is availability, not data theft or tampering, and exploitation would require local low-privileged access under difficult timing conditions.
Executive priority
Treat this as routine-to-moderate kernel maintenance, not an emergency internet-exposed crisis. Prioritize multi-user Linux hosts, workstations, and systems with local device access. Patch through normal kernel update channels and verify coverage in vulnerability management reporting.
Technical view
The streamzap_disconnect() cleanup order allowed rc_unregister_device() to free and clear dev->raw before usb_kill_urb() waited for in-flight URB callbacks. If streamzap_callback() was still running, ir_raw_event_store_with_filter() could dereference invalid state. The fix reorders cleanup so URBs are killed before unregistering the rc device.
Likely exposure
Exposure is most relevant to Linux systems running affected kernel versions with the Streamzap media driver path present or reachable. The CVE record lists Linux kernel ranges from 2.6.36 through several stable series before fixed releases. Default status is unaffected except listed affected versions.
Exploitation context
The CVSS vector is local, high-complexity, low-privilege, no user interaction, with high availability impact only. The source bundle marks KEV false and provides no evidence of active exploitation or a public exploit. The bug was found by Syzkaller via Linux Verification Center testing.
Researcher notes
Evidence supports a race-triggered kernel availability issue in the Streamzap driver. The record does not establish confidentiality or integrity impact. Avoid assuming broad exploitability: CVSS indicates local access and high attack complexity, and the provided sources do not show exploitation in the wild.
Mitigation direction
Apply Linux kernel updates that include the referenced stable fixes.
For Debian LTS systems, review and apply the cited Debian security updates.
Prioritize systems where local users can access relevant media or USB device paths.
If patching is delayed, follow vendor guidance for temporary exposure reduction.
Validation and detection
Inventory running Linux kernel versions against the affected and fixed version ranges.
Confirm whether the Streamzap media driver is built, loaded, or operationally needed.
Check vendor kernel changelogs for inclusion of the referenced stable commits.
Review Debian LTS advisory applicability for Debian-based assets.
Retest scanners after patching to confirm CVE closure.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-476: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-476 · source CWE mapping
NULL Pointer Dereference
NULL Pointer Dereference represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.