{"id":"CVE-2026-98107","revision":"1afb20108bde42dd89f55e9a8a15b5c0","records":[{"revision":"1afb20108bde42dd89f55e9a8a15b5c0","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-98107","aliases":[],"title":"Bluetooth: L2CAP: fix out-of-bounds write in l2cap_ecred_connect","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: L2CAP: fix out-of-bounds write in l2cap_ecred_connect\n\nl2cap_chan_connect() tries to ensure there are no more than\nL2CAP_ECRED_CONN_SCID_MAX pending ECRED channels, so they fit in the\nsame L2CAP_ECRED_CONN_REQ that l2cap_ecred_connect() constructs.\n\nHowever, the check only counts deferred channels.  If 6 L2CAP sockets\nare connected at the same time in order DDDDND (D=deferred,\nN=non-deferred), the last can bump the total to max+1.  It results to\none __le16 written out of bounds of the scid array, and an invalid\nECRED_CONN_REQ being sent.\n\nFix by leaving room for the non-deferred pending ECRED channels in the\ncounting in l2cap_chan_connect(), so the limit can't be exceeded.\n\nMove counting under same critical section where the channel is added.\nAlthough race conditions involving this appear unreachable, it's easier\nto see.\n\nAlso add WARN_ON_ONCE check in l2cap_ecred_defer_connect() to make this\nless brittle.","state":0,"publishedAt":"2026-09-25T10:35:56.34+00:00","modifiedAt":"2026-10-21T12:54:32.791+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"net/bluetooth/l2cap_core.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"da49b602f7f75ccc91386e1274b3ef71676cd092\",\n                            \"lessThan\": \"fabc5e04f123225daf980d03f2c5a05e7f0f0a7f\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"da49b602f7f75ccc91386e1274b3ef71676cd092\",\n                            \"lessThan\": \"ce0927eb3ee2939fab5ce3f9334bfd2fafb38481\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"da49b602f7f75ccc91386e1274b3ef71676cd092\",\n                            \"lessThan\": \"6da5c0331fc3ef0c7b8df8269523fc3b2cce1e65\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"da49b602f7f75ccc91386e1274b3ef71676cd092\",\n                            \"lessThan\": \"df8c3af6132640da4788e96a02d653e642059803\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"da49b602f7f75ccc91386e1274b3ef71676cd092\",\n                            \"lessThan\": \"56c2b5831d39dc84aad2573dc3e197af1a872a05\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"net/bluetooth/l2cap_core.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"5.7\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"5.7\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.160\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.111\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.53\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.7\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[],"references":["https://git.kernel.org/stable/c/fabc5e04f123225daf980d03f2c5a05e7f0f0a7f","https://git.kernel.org/stable/c/ce0927eb3ee2939fab5ce3f9334bfd2fafb38481","https://git.kernel.org/stable/c/6da5c0331fc3ef0c7b8df8269523fc3b2cce1e65","https://git.kernel.org/stable/c/df8c3af6132640da4788e96a02d653e642059803","https://git.kernel.org/stable/c/56c2b5831d39dc84aad2573dc3e197af1a872a05"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-98107","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-98107","identifiers":["CVE-2026-98107"]},"retained":false,"historicalAffected":[]}],"coverage":[]}