← Back to CVE List
CVE-2026-90088NVD
Vulnerability Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: RFCOMM: Validate MTU in rfcomm_apply_pn() to prevent infinite loop
rfcomm_apply_pn() accepts the MTU value from a remote PN (Parameter
Negotiation) frame without checking for zero. When the remote peer
sends an MTU of zero, d->mtu is set to 0. This causes the sendmsg
path to enter an infinite loop when fragmenting data, as each fragment
has size == min_t(size_t, len, 0) == 0, so the remaining length never
decreases. The infinite allocation of zero-length skbs exhausts all
system memory.
Fix by clamping d->mtu to RFCOMM_DEFAULT_MTU when the negotiated
value is zero, consistent with the initial value assigned in
rfcomm_dlc_alloc().
Bluetooth: RFCOMM: Validate MTU in rfcomm_apply_pn() to prevent infinite loop
rfcomm_apply_pn() accepts the MTU value from a remote PN (Parameter
Negotiation) frame without checking for zero. When the remote peer
sends an MTU of zero, d->mtu is set to 0. This causes the sendmsg
path to enter an infinite loop when fragmenting data, as each fragment
has size == min_t(size_t, len, 0) == 0, so the remaining length never
decreases. The infinite allocation of zero-length skbs exhausts all
system memory.
Fix by clamping d->mtu to RFCOMM_DEFAULT_MTU when the negotiated
value is zero, consistent with the initial value assigned in
rfcomm_dlc_alloc().
Affected & Patched Versions
- Linux Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 and < e7c0aa45ae6c5a338661b23812bfcdef50bf3e96
- Linux Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 and < cbc2962da99b6b89345267d3aa74b4b573340548
- Linux Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 and < 9b2e5f1928c99224345a9ed8c5dae5fc74964d6d
- Linux Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 and < fc4851ff8dfb505e9a19efcc286712132bbd178d
- Linux Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 and < f561e44261344adadf9d6a6dff31e3af9776d5c6
- Linux Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 and < aeee917a4878af95f0c63e18c5f22eaf6299c7b8
- Linux Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 and < 3988cbb1be501dbff909a2ee024670e3c955a66d
- Linux Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 and < 44c98fd082eafd49d55a8a4077ff488175b2fe24
- Linux Linux >= 2.6.12
- Linux Linux e7c0aa45ae6c5a338661b23812bfcdef50bf3e96
- Linux Linux cbc2962da99b6b89345267d3aa74b4b573340548
- Linux Linux 9b2e5f1928c99224345a9ed8c5dae5fc74964d6d
- Linux Linux fc4851ff8dfb505e9a19efcc286712132bbd178d
- Linux Linux f561e44261344adadf9d6a6dff31e3af9776d5c6
- Linux Linux aeee917a4878af95f0c63e18c5f22eaf6299c7b8
- Linux Linux 3988cbb1be501dbff909a2ee024670e3c955a66d
- Linux Linux 44c98fd082eafd49d55a8a4077ff488175b2fe24
External References
- https://git.kernel.org/stable/c/e7c0aa45ae6c5a338661b23812bfcdef50bf3e96
- https://git.kernel.org/stable/c/cbc2962da99b6b89345267d3aa74b4b573340548
- https://git.kernel.org/stable/c/9b2e5f1928c99224345a9ed8c5dae5fc74964d6d
- https://git.kernel.org/stable/c/fc4851ff8dfb505e9a19efcc286712132bbd178d
- https://git.kernel.org/stable/c/f561e44261344adadf9d6a6dff31e3af9776d5c6
- https://git.kernel.org/stable/c/aeee917a4878af95f0c63e18c5f22eaf6299c7b8
- https://git.kernel.org/stable/c/3988cbb1be501dbff909a2ee024670e3c955a66d
- https://git.kernel.org/stable/c/44c98fd082eafd49d55a8a4077ff488175b2fe24