<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-05T05:59:35.954459+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/cve-2026-80827</id>
    <title>CVE-2026-80827 — USB: serial: option: fix slab OOB read in interrupt URB callback</title>
    <updated>2026-10-05T05:59:35.972518+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Linux</p>
<p>In the Linux kernel, the following vulnerability has been resolved:</p>
<p>USB: serial: option: fix slab OOB read in interrupt URB callback</p>
<p>The interrupt URB buffer is allocated in setup_port_interrupt_in() based
on the endpoint's wMaxPacketSize:</p>
<p>buffer_size = usb_endpoint_maxp(epd);
    port-&gt;interrupt_in_buffer = kmalloc(buffer_size, GFP_KERNEL);</p>
<p>When a USB device declares wMaxPacketSize = 8 on its interrupt IN
endpoint, the buffer is allocated from kmalloc-8 cache (exactly
8 bytes).</p>
<p>If the device sends a short packet (actual_length &lt; wMaxPacketSize),
the URB completes with status == 0 and the callback proceeds to read:</p>
<p>data[sizeof(struct usb_ctrlrequest)]</p>
<p>which evaluates to data[8], accessing 1 byte beyond the allocated 8-byte
buffer. This results in a slab out-of-bounds read.</p>
<p>Fix this by adding the missing bounds check: first verify that the
actual length is large enough to contain the struct usb_ctrlrequest
header before accessing req_pkt-&gt;bRequestType and req_pkt-&gt;bRequest,
and then verify that there is an additional byte for the modem signal
state before reading data[sizeof(struct usb_ctrlrequest)] inside the
conditional.  Use sizeof(*req_pkt) instead of sizeof(struct
usb_ctrlrequest) for consistency.</p>
<p>[ johan: use dev_err(); split signals declaration and initialisation ]</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2026-80827"/>
  </entry>
</feed>
