Linux Kernel Pegasus Notetaker Driver Out-of-Bounds Access Vulnerability

Vulnerability

A vulnerability has been identified in the Linux kernel's Pegasus Notetaker driver, specifically in the pegasus_probe() function. This function allocates a USB Request Block (URB) transfer buffer based on the wMaxPacketSize value from the endpoint descriptor. An attacker can exploit this by using a malicious USB descriptor to force the allocation of an inadequately small buffer. If the device then sends an interrupt packet with a certain pattern—such as a byte value of 0x80 or 0x42—the pegasus_parse_packet() function will parse the packet without verifying the size of the allocated buffer. This oversight results in an out-of-bounds memory access, potentially leading to memory corruption or other unintended behavior.

Impact

Exploitation of this vulnerability causes an out-of-bounds memory access, which can lead to memory corruption or other unintended behaviors.

Reproduction

To reproduce this vulnerability, load the Pegasus Notetaker driver and connect a device that can send a malicious USB descriptor. The device should be configured to allocate a very small buffer in the driver. Once the driver has allocated the buffer, the device can send an interrupt packet with a specific pattern, such as a byte value of 0x80 or 0x42. The pegasus_parse_packet() function will then parse the packet without checking the buffer size, causing an out-of-bounds access.

Remediation

Users can update to the latest version of the Linux kernel where this vulnerability has been fixed. Instructions for updating the kernel can be found in the official Linux documentation.

Added: Dec 16, 2025, 4:22 PM
Updated: Dec 16, 2025, 4:22 PM

Vulnerability Rating

Custom Algorithm
spread
9.0
impact
2.5
exploitability
4.3
remediation
7.7
relevance
1.4
threat
4.8
urgency
2.9
incentive
1.7

Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.