<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Tue, 29 Sep 2026 16:00:44 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-89894 — media: cx231xx: reject geometry changes while the VBI queue is busy</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-89894</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;media: cx231xx: reject geometry changes while the VBI queue is busy&lt;/p&gt;
&lt;p&gt;vidioc_s_fmt_vid_cap() and vidioc_s_std() change the device-wide
dev-&amp;gt;width / dev-&amp;gt;norm but only refuse the change when the *video* queue
(dev-&amp;gt;vidq) is busy. The VBI queue (dev-&amp;gt;vbiq) shares that same geometry:
cx231xx_init_vbi_isoc() latches dma_q-&amp;gt;lines_per_field from dev-&amp;gt;norm,
the VBI videobuf2 plane is sized from dev-&amp;gt;width / dev-&amp;gt;norm in
vbi_queue_setup() and vbi_buf_prepare(), and cx231xx_do_vbi_copy() then
recomputes the destination offset from the *live* dev-&amp;gt;width and the
latched lines_per_field on every URB completion:&lt;/p&gt;
&lt;p&gt;offset = lines_completed * (dev-&amp;gt;width &amp;lt;&amp;lt; 1) + ...;
	if (dma_q-&amp;gt;current_field == 2)
		offset += dev-&amp;gt;width * 2 * dma_q-&amp;gt;lines_per_field;
	memcpy(plane + offset, p_buffer, lencopy);&lt;/p&gt;
&lt;p&gt;Because the VBI node shares video_ioctl_ops with the video node, an
application can size a small VBI plane (REQBUFS/QBUF with a small width,
or with the NTSC standard), then enlarge dev-&amp;gt;width (or switch dev-&amp;gt;norm
to PAL) through the video node while the VBI stream is running -- the
change is allowed because only dev-&amp;gt;vidq is checked -- and let the device
deliver a field-2 VBI payload. cx231xx_do_vbi_copy() now computes the
offset with the larger geometry and memcpy()s past the end of the smaller
plane that was already allocated, a heap out-of-bounds write whose offset
is attacker-chosen and whose contents come from the device. The…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;media: cx231xx: reject geometry changes while the VBI queue is busy&lt;/p&gt;
&lt;p&gt;vidioc_s_fmt_vid_cap() and vidioc_s_std() change the device-wide
dev-&amp;gt;width / dev-&amp;gt;norm but only refuse the change when the *video* queue
(dev-&amp;gt;vidq) is busy. The VBI queue (dev-&amp;gt;vbiq) shares that same geometry:
cx231xx_init_vbi_isoc() latches dma_q-&amp;gt;lines_per_field from dev-&amp;gt;norm,
the VBI videobuf2 plane is sized from dev-&amp;gt;width / dev-&amp;gt;norm in
vbi_queue_setup() and vbi_buf_prepare(), and cx231xx_do_vbi_copy() then
recomputes the destination offset from the *live* dev-&amp;gt;width and the
latched lines_per_field on every URB completion:&lt;/p&gt;
&lt;p&gt;offset = lines_completed * (dev-&amp;gt;width &amp;lt;&amp;lt; 1) + ...;
	if (dma_q-&amp;gt;current_field == 2)
		offset += dev-&amp;gt;width * 2 * dma_q-&amp;gt;lines_per_field;
	memcpy(plane + offset, p_buffer, lencopy);&lt;/p&gt;
&lt;p&gt;Because the VBI node shares video_ioctl_ops with the video node, an
application can size a small VBI plane (REQBUFS/QBUF with a small width,
or with the NTSC standard), then enlarge dev-&amp;gt;width (or switch dev-&amp;gt;norm
to PAL) through the video node while the VBI stream is running -- the
change is allowed because only dev-&amp;gt;vidq is checked -- and let the device
deliver a field-2 VBI payload. cx231xx_do_vbi_copy() now computes the
offset with the larger geometry and memcpy()s past the end of the smaller
plane that was already allocated, a heap out-of-bounds write whose offset
is attacker-chosen and whose contents come from the device. The…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-89894</guid>
    </item>
  </channel>
</rss>
