In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: btusb: avoid NULL pointer dereference in skb_dequeue()
A NULL pointer dereference can occur in skb_dequeue() when processing a QCA firmware crash dump on WCN7851 (0489:e0f3).
[ 93.672166] Bluetooth: hci0: ACL memdump size(589824)
[ 93.672475] BUG: kernel NULL pointer dereference, address: 0000000000000008 [ 93.672517] Workqueue: hci0 hcidevcdrx [bluetooth] [ 93.672598] RIP: 0010:skb_dequeue+0x50/0x80
The issue stems from handledumppktqca() returning 0 even when a dump packet is successfully processed. This is because it incorrectly forwards the return value of hcidevcdinit() (which returns 0 on success). As a result, the caller (btusbrecvaclqca() or btusbrecvevtqca()) assumes the packet was not handled and passes it to hcirecv_frame(), leading to premature kfree() of the skb.
Later, hcidevcdrx() attempts to dequeue the same skb from the dump queue, resulting in a NULL pointer dereference.
Fix this by: 1. Making handledumppkt_qca() return 0 on success and negative errno on failure, consistent with kernel conventions. 2. Splitting dump packet detection into separate functions for ACL and event packets for better structure and readability.
This ensures dump packets are properly identified and consumed, avoiding double handling and preventing NULL pointer access.
[
{
"id": "CVE-2025-37918-02f54989",
"signature_version": "v1",
"digest": {
"length": 140.0,
"function_hash": "195716139104049459933673328512635964996"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0317b033abcd1d8dd2798f0e2de5e84543d0bd22",
"target": {
"file": "drivers/bluetooth/btusb.c",
"function": "btusb_recv_evt_qca"
}
},
{
"id": "CVE-2025-37918-0f64c8e1",
"signature_version": "v1",
"digest": {
"length": 140.0,
"function_hash": "195716139104049459933673328512635964996"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2e8d44ebaa7babdd5c5ab50ca275826e241920d6",
"target": {
"file": "drivers/bluetooth/btusb.c",
"function": "btusb_recv_acl_qca"
}
},
{
"id": "CVE-2025-37918-5757ee60",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"208217095797202932702905497971105541754",
"259839140441983613311033495265544974217",
"300642841828703662019656978660716983987",
"263715622278462315868492870766775474769",
"13681456522605890106603595213799615592",
"260824379509801002480350782988943255960",
"307075591573639277784050021625843942560",
"76447782259521743150399694983830612139",
"157429110525797002282055420168287936078",
"181160234796255154734503985266295602982",
"5083974945615017723021523027483610287",
"309840559096662590340015203055781543934",
"84715936468482238166227122119052572953",
"263484605557231754358586426161470530369",
"257339120235013747100093392281651550536",
"159401367112990225966814406367240652172",
"41809858572803126903917688573785822885",
"166704664615291638505539226045464004736",
"59194827222439391467592748457107610029",
"107368180104125196901730160571119587209",
"313118957850685380176440383104891976395",
"193515745749058540365752347350511377511",
"335275391548436945320195374821345176180",
"201531950852673311133471983210605564588",
"66790185089453511301458376372632017886",
"84996057921653726940066837412018457867",
"143606627259205835730324325509106111857",
"124010071523629056369363255852200843327",
"30563864018584499787947853539926538940",
"35369245040657703578475438561906001302",
"173498737399491005330061733419335158146",
"103059828560851906570751515060481442437",
"223042406710440513180661262557870856133",
"76007708218303332356075506805513355815",
"240625949298868092832927715774933946279",
"45011389780903189002276847201020708432",
"200022176440788757656696830375896015536",
"183326845818793720814556630485928528459",
"117490854876774673679498973218210754128",
"200343945310443823564281320995850048590",
"206174229955591360070896901703759578150",
"235652612303725544269803294112273277633",
"117662485058554003001481249551240517406",
"280909613450358621878531557042640566113",
"90176711606185140827026369991436426683",
"200343945310443823564281320995850048590",
"206174229955591360070896901703759578150",
"61990878664420843094149163844252972109"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2e8d44ebaa7babdd5c5ab50ca275826e241920d6",
"target": {
"file": "drivers/bluetooth/btusb.c"
}
},
{
"id": "CVE-2025-37918-608676ed",
"signature_version": "v1",
"digest": {
"length": 140.0,
"function_hash": "195716139104049459933673328512635964996"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0317b033abcd1d8dd2798f0e2de5e84543d0bd22",
"target": {
"file": "drivers/bluetooth/btusb.c",
"function": "btusb_recv_acl_qca"
}
},
{
"id": "CVE-2025-37918-95b90e81",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"208217095797202932702905497971105541754",
"259839140441983613311033495265544974217",
"300642841828703662019656978660716983987",
"263715622278462315868492870766775474769",
"13681456522605890106603595213799615592",
"260824379509801002480350782988943255960",
"307075591573639277784050021625843942560",
"76447782259521743150399694983830612139",
"157429110525797002282055420168287936078",
"181160234796255154734503985266295602982",
"5083974945615017723021523027483610287",
"309840559096662590340015203055781543934",
"84715936468482238166227122119052572953",
"263484605557231754358586426161470530369",
"257339120235013747100093392281651550536",
"159401367112990225966814406367240652172",
"41809858572803126903917688573785822885",
"166704664615291638505539226045464004736",
"59194827222439391467592748457107610029",
"107368180104125196901730160571119587209",
"313118957850685380176440383104891976395",
"193515745749058540365752347350511377511",
"335275391548436945320195374821345176180",
"201531950852673311133471983210605564588",
"66790185089453511301458376372632017886",
"84996057921653726940066837412018457867",
"143606627259205835730324325509106111857",
"124010071523629056369363255852200843327",
"30563864018584499787947853539926538940",
"35369245040657703578475438561906001302",
"173498737399491005330061733419335158146",
"103059828560851906570751515060481442437",
"223042406710440513180661262557870856133",
"76007708218303332356075506805513355815",
"240625949298868092832927715774933946279",
"45011389780903189002276847201020708432",
"200022176440788757656696830375896015536",
"183326845818793720814556630485928528459",
"117490854876774673679498973218210754128",
"200343945310443823564281320995850048590",
"206174229955591360070896901703759578150",
"235652612303725544269803294112273277633",
"117662485058554003001481249551240517406",
"280909613450358621878531557042640566113",
"90176711606185140827026369991436426683",
"200343945310443823564281320995850048590",
"206174229955591360070896901703759578150",
"61990878664420843094149163844252972109"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0317b033abcd1d8dd2798f0e2de5e84543d0bd22",
"target": {
"file": "drivers/bluetooth/btusb.c"
}
},
{
"id": "CVE-2025-37918-a4335a9a",
"signature_version": "v1",
"digest": {
"length": 140.0,
"function_hash": "195716139104049459933673328512635964996"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8563d9fabd8a4b726ba7acab4737c438bf11a059",
"target": {
"file": "drivers/bluetooth/btusb.c",
"function": "btusb_recv_evt_qca"
}
},
{
"id": "CVE-2025-37918-ad4b12e5",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"208217095797202932702905497971105541754",
"259839140441983613311033495265544974217",
"300642841828703662019656978660716983987",
"263715622278462315868492870766775474769",
"13681456522605890106603595213799615592",
"260824379509801002480350782988943255960",
"307075591573639277784050021625843942560",
"76447782259521743150399694983830612139",
"157429110525797002282055420168287936078",
"181160234796255154734503985266295602982",
"5083974945615017723021523027483610287",
"309840559096662590340015203055781543934",
"84715936468482238166227122119052572953",
"263484605557231754358586426161470530369",
"257339120235013747100093392281651550536",
"159401367112990225966814406367240652172",
"41809858572803126903917688573785822885",
"166704664615291638505539226045464004736",
"59194827222439391467592748457107610029",
"107368180104125196901730160571119587209",
"313118957850685380176440383104891976395",
"193515745749058540365752347350511377511",
"335275391548436945320195374821345176180",
"201531950852673311133471983210605564588",
"66790185089453511301458376372632017886",
"84996057921653726940066837412018457867",
"143606627259205835730324325509106111857",
"124010071523629056369363255852200843327",
"30563864018584499787947853539926538940",
"35369245040657703578475438561906001302",
"173498737399491005330061733419335158146",
"103059828560851906570751515060481442437",
"223042406710440513180661262557870856133",
"76007708218303332356075506805513355815",
"240625949298868092832927715774933946279",
"45011389780903189002276847201020708432",
"200022176440788757656696830375896015536",
"183326845818793720814556630485928528459",
"117490854876774673679498973218210754128",
"200343945310443823564281320995850048590",
"206174229955591360070896901703759578150",
"235652612303725544269803294112273277633",
"117662485058554003001481249551240517406",
"280909613450358621878531557042640566113",
"90176711606185140827026369991436426683",
"200343945310443823564281320995850048590",
"206174229955591360070896901703759578150",
"61990878664420843094149163844252972109"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8563d9fabd8a4b726ba7acab4737c438bf11a059",
"target": {
"file": "drivers/bluetooth/btusb.c"
}
},
{
"id": "CVE-2025-37918-adf3cee8",
"signature_version": "v1",
"digest": {
"length": 2724.0,
"function_hash": "51592609946956447498970111874452074422"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0317b033abcd1d8dd2798f0e2de5e84543d0bd22",
"target": {
"file": "drivers/bluetooth/btusb.c",
"function": "handle_dump_pkt_qca"
}
},
{
"id": "CVE-2025-37918-bd8c5aeb",
"signature_version": "v1",
"digest": {
"length": 140.0,
"function_hash": "195716139104049459933673328512635964996"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8563d9fabd8a4b726ba7acab4737c438bf11a059",
"target": {
"file": "drivers/bluetooth/btusb.c",
"function": "btusb_recv_acl_qca"
}
},
{
"id": "CVE-2025-37918-cab29d73",
"signature_version": "v1",
"digest": {
"length": 2724.0,
"function_hash": "51592609946956447498970111874452074422"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2e8d44ebaa7babdd5c5ab50ca275826e241920d6",
"target": {
"file": "drivers/bluetooth/btusb.c",
"function": "handle_dump_pkt_qca"
}
},
{
"id": "CVE-2025-37918-d7169d82",
"signature_version": "v1",
"digest": {
"length": 140.0,
"function_hash": "195716139104049459933673328512635964996"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2e8d44ebaa7babdd5c5ab50ca275826e241920d6",
"target": {
"file": "drivers/bluetooth/btusb.c",
"function": "btusb_recv_evt_qca"
}
},
{
"id": "CVE-2025-37918-f8327957",
"signature_version": "v1",
"digest": {
"length": 2724.0,
"function_hash": "51592609946956447498970111874452074422"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8563d9fabd8a4b726ba7acab4737c438bf11a059",
"target": {
"file": "drivers/bluetooth/btusb.c",
"function": "handle_dump_pkt_qca"
}
}
]