{"id":25499,"date":"2026-09-18T04:31:28","date_gmt":"2026-09-17T20:31:28","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90090"},"modified":"2026-09-18T04:31:28","modified_gmt":"2026-09-17T20:31:28","slug":"cve-2026-90090","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90090","title":{"rendered":"CVE-2026-90090 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: btmtksdio:"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>Bluetooth: btmtksdio: Fix out-of-bounds DMA read in the TX path<\/p>\n<p>btmtksdio_tx_packet() rounds the transfer size up to the SDIO block size<br \/>\nof 256 bytes, but hands the host controller the SKB buffer as is:<\/p>\n<p>\terr = sdio_writesb(bdev-&gt;func, MTK_REG_CTDR, skb-&gt;data,<br \/>\n\t\t\t   round_up(skb-&gt;len, MTK_SDIO_BLOCK_SIZE));<\/p>\n<p>Only skb-&gt;len bytes hold packet data, so the controller reads up to 255<br \/>\nbytes of uninitialised memory and sends it to the device over the SDIO<br \/>\nbus. Depending on how much tailroom slack the SKB allocation happens to<br \/>\ncarry, that read can also extend past the end of the buffer.<\/p>\n<p>Compute the padded length up front, ensure the SKB has tailroom for it,<br \/>\nand zero-fill the padding with skb_put_zero(). skb-&gt;len then covers the<br \/>\npadding, so sdio_writesb() no longer needs to round up. byte_tx keeps<br \/>\ncounting the header and the payload only, and the error path restores the<br \/>\nSKB so that the caller can requeue it.<\/p>\n<p>Writing behind skb-&gt;tail is only safe because the driver owns the buffer,<br \/>\nwhich &#8220;Bluetooth: btmtksdio: Take exclusive ownership of the SKB before<br \/>\nTX&#8221; ensures.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>Bluetooth: btmtksdio: Fix out-of-bounds DMA read in the TX path<\/p>\n<p>btmtksdio_tx_packet() rounds the transfer size up to the SDIO bloc<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25499","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25499","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=25499"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25499"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25499"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}