In the Linux kernel, the following vulnerability has been resolved:
net: wwan: t7xx: Fix FSM command timeout issue
When driver processes the internal state change command, it use an asynchronous thread to process the command operation. If the main thread detects that the task has timed out, the asynchronous thread will panic when executing the completion notification because the main thread completion object has been released.
BUG: unable to handle page fault for address: fffffffffffffff8 PGD 1f283a067 P4D 1f283a067 PUD 1f283c067 PMD 0 Oops: 0000 [#1] PREEMPT SMP NOPTI RIP: 0010:completeall+0x3e/0xa0 [...] Call Trace: <TASK> ? _diebody+0x68/0xb0 ? pagefaultoops+0x379/0x3e0 ? excpagefault+0x69/0xa0 ? asmexcpagefault+0x22/0x30 ? completeall+0x3e/0xa0 fsmmainthread+0xa3/0x9c0 [mtkt7xx (HASH:1400 5)] ? _pfxautoremovewakefunction+0x10/0x10 kthread+0xd8/0x110 ? _pfxfsmmainthread+0x10/0x10 [mtkt7xx (HASH:1400 5)] ? _pfxkthread+0x10/0x10 retfromfork+0x38/0x50 ? _pfxkthread+0x10/0x10 retfromforkasm+0x1b/0x30 </TASK> [...] CR2: fffffffffffffff8 ---[ end trace 0000000000000000 ]---
Use the reference counter to ensure safe release as Sergey suggests: https://lore.kernel.org/all/da90f64c-260a-4329-87bf-1f9ff20a5951@gmail.com/
{ "vanir_signatures": [ { "signature_type": "Line", "target": { "file": "drivers/net/wwan/t7xx/t7xx_state_monitor.c" }, "deprecated": false, "digest": { "threshold": 0.9, "line_hashes": [ "318878422731639434853151692169798136349", "24928455856362085303525360273408125119", "79871449163773765474427942812099965668", "107060296569062919540956789937360926566", "333584355238647517939006279223272727072", "302510801065256098572476420807419468032", "106885254388713394126500614898577814354", "108208361314357370816487724782321784600", "262340749201318448724991432847018810510", "313988630517410424143459578287159579521", "193452692385226515364755919293597791032", "298567390220092232710177235369616522200", "312203994311487295671073779343988221080", "52739394310350730089928332684394925234", "292290168518407527876503478810649503978", "317411899209563368242550594975855205510", "57373380411466560578433630122485862288", "15457542416987362838608922459224745382", "276788086779079869659994312248547611966", "91605762888895292719831803010305539650", "35288778478266262269053752812344559592", "24448203910439646453288874996380297054", "31003891473725904201589747367376541647", "222162488563171107083586502219104476607", "314427498471173219856468820027641851984", "321193893169323206152886843831783067669", "42702428463183016530648632324942131865", "166172765094681368300261916952314065125", "69365517127302277753536378448169388791" ] }, "id": "CVE-2024-39282-02a0d881", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b8ab9bd0c8855cd5a6f4e0265083576257ff3fc5", "signature_version": "v1" }, { "signature_type": "Function", "target": { "file": "drivers/net/wwan/t7xx/t7xx_state_monitor.c", "function": "fsm_finish_command" }, "deprecated": false, "digest": { "function_hash": "200671102411212542855087093900368562198", "length": 208.0 }, "id": "CVE-2024-39282-5db0a852", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4f619d518db9cd1a933c3a095a5f95d0c1584ae8", "signature_version": "v1" }, { "signature_type": "Function", "target": { "file": "drivers/net/wwan/t7xx/t7xx_state_monitor.c", "function": "fsm_finish_command" }, "deprecated": false, "digest": { "function_hash": "200671102411212542855087093900368562198", "length": 208.0 }, "id": "CVE-2024-39282-67ca8018", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b8ab9bd0c8855cd5a6f4e0265083576257ff3fc5", "signature_version": "v1" }, { "signature_type": "Function", "target": { "file": "drivers/net/wwan/t7xx/t7xx_state_monitor.c", "function": "t7xx_fsm_append_cmd" }, "deprecated": false, "digest": { "function_hash": "38625162394030045454043321179171966979", "length": 820.0 }, "id": "CVE-2024-39282-6e894cbc", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4f619d518db9cd1a933c3a095a5f95d0c1584ae8", "signature_version": "v1" }, { "signature_type": "Line", "target": { "file": "drivers/net/wwan/t7xx/t7xx_state_monitor.c" }, "deprecated": false, "digest": { "threshold": 0.9, "line_hashes": [ "318878422731639434853151692169798136349", "24928455856362085303525360273408125119", "79871449163773765474427942812099965668", "107060296569062919540956789937360926566", "333584355238647517939006279223272727072", "302510801065256098572476420807419468032", "106885254388713394126500614898577814354", "108208361314357370816487724782321784600", "262340749201318448724991432847018810510", "313988630517410424143459578287159579521", "193452692385226515364755919293597791032", "298567390220092232710177235369616522200", "312203994311487295671073779343988221080", "52739394310350730089928332684394925234", "292290168518407527876503478810649503978", "317411899209563368242550594975855205510", "57373380411466560578433630122485862288", "15457542416987362838608922459224745382", "276788086779079869659994312248547611966", "91605762888895292719831803010305539650", "35288778478266262269053752812344559592", "24448203910439646453288874996380297054", "31003891473725904201589747367376541647", "222162488563171107083586502219104476607", "314427498471173219856468820027641851984", "321193893169323206152886843831783067669", "42702428463183016530648632324942131865", "166172765094681368300261916952314065125", "69365517127302277753536378448169388791" ] }, "id": "CVE-2024-39282-8b5665b4", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4f619d518db9cd1a933c3a095a5f95d0c1584ae8", "signature_version": "v1" }, { "signature_type": "Function", "target": { "file": "drivers/net/wwan/t7xx/t7xx_state_monitor.c", "function": "t7xx_fsm_append_cmd" }, "deprecated": false, "digest": { "function_hash": "38625162394030045454043321179171966979", "length": 820.0 }, "id": "CVE-2024-39282-98f8d12c", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b8ab9bd0c8855cd5a6f4e0265083576257ff3fc5", "signature_version": "v1" }, { "signature_type": "Line", "target": { "file": "drivers/net/wwan/t7xx/t7xx_state_monitor.h" }, "deprecated": false, "digest": { "threshold": 0.9, "line_hashes": [ "59173523958508895905560823501136119202", "292742240816479137144736120663885735525", "31168365849148355718853660988523145146", "326677014587395012999263042730087367881", "182642654669853727337536343706961758716" ] }, "id": "CVE-2024-39282-b4bb943e", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4f619d518db9cd1a933c3a095a5f95d0c1584ae8", "signature_version": "v1" }, { "signature_type": "Line", "target": { "file": "drivers/net/wwan/t7xx/t7xx_state_monitor.h" }, "deprecated": false, "digest": { "threshold": 0.9, "line_hashes": [ "59173523958508895905560823501136119202", "292742240816479137144736120663885735525", "31168365849148355718853660988523145146", "326677014587395012999263042730087367881", "182642654669853727337536343706961758716" ] }, "id": "CVE-2024-39282-ff5dc44e", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b8ab9bd0c8855cd5a6f4e0265083576257ff3fc5", "signature_version": "v1" } ] }