search menu icon-carat-right cmu-wordmark

CERT Coordination Center

SignalRGB kernel driver contains improper access control and IOCTL vulnerabilities

Vulnerability Note VU#380058

Original Release Date: 2026-06-17 | Last Revised: 2026-06-17

Overview

The SignalRGB kernel driver, SignalIo.sys, contains two vulnerabilities involving improper access control and unsafe memory handling. The device object is created with an overly permissive Discretionary Access Control List (DACL) that allows user-mode processes to access privileged hardware operations through input/output control (IOCTL) commands. Additionally, several IOCTL handlers are susceptible to NULL pointer dereference conditions, which further enables low-privilege users to trigger kernel crashes and cause Denial of Service (DoS). Version 1.3.7.0 of the SignalRGB driver remediates these vulnerabilities.

Description

SignalRGB is a Windows application used for RGB lighting control and hardware monitoring. Its kernel component, SignalIo.sys, provides the low-level interfaces required to access and interact with hardware resources.

The SignalIo.sys driver exposes privileged functionality intended for administrative or security operations, but the device object is created without a restrictive security descriptor. Specifically, the driver does not apply security best practices by using either Security Descriptor Definition Language (SDDL) or the IoCreateDeviceSecure API, thereby allowing unprivileged user-mode processes to open handles to the device and issue privileged IOCTL requests.

CVE-2026-8049 The \\.\SignalIo device object is created without an explicit SDDL security descriptor and without FILE_DEVICE_SECURE_OPEN. This results in overly permissive default access control, allowing any authenticated local user to obtain a handle to the device and issue privileged IOCTLs.

CVE-2026-8050 Seven of the sixteen IOCTL handlers dereference the SystemBuffer pointer without first verifying that it is non-NULL. Sending an IOCTL with an empty input buffer causes a NULL pointer dereference, resulting in a kernel crash.

Impact

The device's insufficient access control enables user-mode interaction with privileged IOCTL interfaces and sensitive driver functionality, including read/write access to the PCI configuration space of system devices. Additionally, an authenticated local attacker can trigger repeated kernel crashes by accessing the \\.\SignalIo device and sending NULL input buffers to any of the seven vulnerable IOCTLs.

Notably, the affected SignalRGB drivers already include custom kernel-enforced port whitelists to block I/O access to several high-risk ports, which helps to limit the scope of sensitive operations available through the IOCTL interface.

Solution

SignalRGB has remediated these vulnerabilities in the recent 1.3.7.0 driver release. Organizations should update and/or block the previous vulnerable driver version where possible and implement mitigations designed to reduce exposure to BYOVD attacks, including restricting administrative privileges, enforcing Microsoft's recommended driver block rules, and enabling protections such as Windows Defender Application Control (WDAC) or an equivalent EDR solution for your environment.

Acknowledgements

Thanks to Shravan Kumar Sheri for researching and reporting this vulnerability, and to SignalRGB for their prompt engagement and coordination efforts. This document was written by Molly Jaconski.

Vendor Information

380058
 

SignalRGB Affected

Notified:  2026-03-25 Updated: 2026-06-17

Statement Date:   April 10, 2026

CVE-2026-8049 Affected
CVE-2026-8050 Affected

Vendor Statement

Case Statement - WhirlwindFX (SignalRGB)

WhirlwindFX has investigated both reported vulnerabilities and confirmed they affect SignalRgbDriver.sys in revisions prior to 1.3.6.

VU#380058.1 - Improper Access Control

The \\.\SignalIo device object was created without an explicit security descriptor, allowing any authenticated local user to open a handle to the device and issue privileged IOCTLs. This has been remediated in driver revision 1.3.6 via a two-phase caller verification gate enforced in IRP_MJ_CREATE. Phase 1 verifies that the calling process image name matches an allowlist (SignalRgb.exe or SignalRgbService.exe). Phase 2 verifies that the calling process is Authenticode-signed with an EV certificate whose SHA-1 thumbprint matches a value compiled into the driver. Any process that fails either phase receives STATUS_ACCESS_DENIED before any I/O operation is performed.

VU#380058.2 - NULL Pointer Dereference

Seven IOCTL handlers dereferenced SystemBuffer without first validating the caller-supplied buffer sizes. With METHOD_BUFFERED, SystemBuffer is NULL when both InputBufferLength and OutputBufferLength are zero, causing an immediate kernel crash. All affected handlers in revision 1.3.6 now return STATUS_BUFFER_TOO_SMALL when the provided buffer sizes are insufficient before any pointer is accessed.

Driver revision 1.3.6 will be distributed to SignalRGB users via an application update targeted for release before May 30, 2026. Users are encouraged to update SignalRGB when the update becomes available. WhirlwindFX will recommend that Microsoft add the SHA-256 hashes of all previously shipped SignalRgbDriver.sys revisions to the vulnerable driver blocklist, so that older versions are blocked on systems with Hypervisor-Protected Code Integrity (HVCI) or Smart App Control enabled.

The use of kernel drivers to expose hardware I/O to user-mode RGB, fan control, and hardware monitoring applications is widespread across the industry. Many such drivers - including WinRing0x64.sys, inpout32, and inpoutx64 - expose equivalent or broader primitives (arbitrary port I/O, unrestricted PCI configuration access) with no equivalent caller verification, port allowlisting, or signing requirements. Some drivers in this class, notably WinRing0x64.sys, additionally expose direct physical memory read/write IOCTLs - a capability that SignalRgbDriver.sys has never included. WhirlwindFX encourages coordinated review of this driver class more broadly.


Other Information

CVE IDs: CVE-2026-8049 CVE-2026-8050
API URL: VINCE JSON | CSAF
Date Public: 2026-06-17
Date First Published: 2026-06-17
Date Last Updated: 2026-06-17 21:02 UTC
Document Revision: 1

Sponsored by CISA.