{"id":5337,"date":"2026-09-04T18:47:45","date_gmt":"2026-09-04T10:47:45","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-68124"},"modified":"2026-09-04T18:47:45","modified_gmt":"2026-09-04T10:47:45","slug":"cve-2026-68124","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-68124","title":{"rendered":"CVE-2026-68124 [CRITICAL] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nmctp: serial: handle"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>mctp: serial: handle zero-length frames to prevent rx buffer overflow<\/p>\n<p>The MCTP serial receive state machine reads a frame length byte in<br \/>\nmctp_serial_push_header() case 2 and validates it upper-bound-only:<\/p>\n<p>\tif (c &gt; MCTP_SERIAL_FRAME_MTU) {<br \/>\n\t\tdev-&gt;rxstate = STATE_ERR;<br \/>\n\t} else {<br \/>\n\t\tdev-&gt;rxlen = c;<br \/>\n\t\tdev-&gt;rxpos = 0;<br \/>\n\t\tdev-&gt;rxstate = STATE_DATA;<br \/>\n\t\t&#8230;<br \/>\n\t}<\/p>\n<p>A length of zero passes this check, so rxlen is set to 0 and the state<br \/>\nmachine advances to STATE_DATA. In mctp_serial_push() STATE_DATA, the<br \/>\nincoming byte is stored and rxpos incremented before the terminator is<\/p>\n<p>\tdev-&gt;rxbuf[dev-&gt;rxpos] = c;<br \/>\n\tdev-&gt;rxpos++;<br \/>\n\tdev-&gt;rxstate = STATE_DATA;<br \/>\n\tif (dev-&gt;rxpos == dev-&gt;rxlen) {<br \/>\n\t\tdev-&gt;rxpos = 0;<br \/>\n\t\tdev-&gt;rxstate = STATE_TRAILER;<br \/>\n\t}<\/p>\n<p>With rxlen == 0 the &#8220;rxpos == rxlen&#8221; terminator can never fire (rxpos is<br \/>\nalready 1 on the first data byte), so subsequent bytes are written past<br \/>\nthe end of the fixed 74-byte rxbuf, which is the last member of the<br \/>\nnetdev private area. Every following data byte is an attacker-controlled<br \/>\n1-byte out-of-bounds heap write, and the overflow continues until a<br \/>\nframe (0x7e) or escape byte resets the parser &#8212; effectively unbounded.<\/p>\n<p>Reaching this requires CAP_NET_ADMIN to attach the N_MCTP line<br \/>\ndiscipline and bring the resulting mctpserialN netdev up, after which<br \/>\nthe bytes arrive via the tty receive path.<\/p>\n<p>Route a zero-length frame straight to STATE_TRAILER instead of<br \/>\nSTATE_DATA. The trailer\/framing bytes are still consumed, and the frame<br \/>\nresolves to a zero-length skb that the MCTP core rejects; the parser<br \/>\nnever enters STATE_DATA with rxlen == 0, so the out-of-bounds write can<br \/>\nno longer occur.<\/p>\n<p>KASAN, on a frame of 0x7e 0x01 0x00 followed by data bytes (before this<br \/>\nchange):<\/p>\n<p>  UBSAN: array-index-out-of-bounds in drivers\/net\/mctp\/mctp-serial.c:370<br \/>\n  index 74 is out of range for type &#8216;u8 [74]&#8217;<br \/>\n  BUG: KASAN: slab-out-of-bounds in mctp_serial_tty_receive_buf<br \/>\n  Write of size 1 at addr &#8230; by task kworker\/u16:0<br \/>\n   mctp_serial_tty_receive_buf<br \/>\n   tty_ldisc_receive_buf<br \/>\n   flush_to_ldisc<br \/>\n  Allocated by task 152:<br \/>\n   alloc_netdev_mqs<br \/>\n   mctp_serial_open<\/p>\n<p>v2: route zero-length frames to STATE_TRAILER instead of STATE_ERR so<br \/>\n    the trailer\/framing bytes are still consumed (Jeremy Kerr).<\/p>\n<p>Found by 0sec automated security-research tooling (https:\/\/0sec.ai).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>mctp: serial: handle zero-length frames to prevent rx buffer overflow<\/p>\n<p>The MCTP serial receive state machine reads a frame length b<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-5337","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/5337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}