{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2024-39282", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2025-01-15T13:08:59.721Z", "datePublished": "2025-01-15T13:10:21.320Z", "dateUpdated": "2026-08-05T11:33:21.093Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T11:33:21.093Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: wwan: t7xx: Fix FSM command timeout issue\n\nWhen driver processes the internal state change command, it use an\nasynchronous thread to process the command operation. If the main\nthread detects that the task has timed out, the asynchronous thread\nwill panic when executing the completion notification because the\nmain thread completion object has been released.\n\nBUG: unable to handle page fault for address: fffffffffffffff8\nPGD 1f283a067 P4D 1f283a067 PUD 1f283c067 PMD 0\nOops: 0000 [#1] PREEMPT SMP NOPTI\nRIP: 0010:complete_all+0x3e/0xa0\n[...]\nCall Trace:\n \n ? __die_body+0x68/0xb0\n ? page_fault_oops+0x379/0x3e0\n ? exc_page_fault+0x69/0xa0\n ? asm_exc_page_fault+0x22/0x30\n ? complete_all+0x3e/0xa0\n fsm_main_thread+0xa3/0x9c0 [mtk_t7xx (HASH:1400 5)]\n ? __pfx_autoremove_wake_function+0x10/0x10\n kthread+0xd8/0x110\n ? __pfx_fsm_main_thread+0x10/0x10 [mtk_t7xx (HASH:1400 5)]\n ? __pfx_kthread+0x10/0x10\n ret_from_fork+0x38/0x50\n ? __pfx_kthread+0x10/0x10\n ret_from_fork_asm+0x1b/0x30\n \n[...]\nCR2: fffffffffffffff8\n---[ end trace 0000000000000000 ]---\n\nUse the reference counter to ensure safe release as Sergey suggests:\nhttps://lore.kernel.org/all/da90f64c-260a-4329-87bf-1f9ff20a5951@gmail.com/" } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "AV:L - The vulnerable `t7xx_fsm_append_cmd()` wait is entered only through host-local operations — the root-writable `t7xx_mode` sysfs reset attribute, PCI unbind/shutdown via `t7xx_md_exit()`, and runtime/system PM resume (`__t7xx_pci_pm_resume()`) driven by local packet transmission on the WWAN netdev. No remote peer data reaches the FSM command queue; the dpmaif RX packet path never touches this code.\nAC:L - The attacker controls both sides of the race — repeatedly driving device reset/resume queues an FSM_CMD_STOP/PRE_STOP behind an FSM thread that is deterministically stalled far past the 2000 ms `FSM_CMD_TIMEOUT_MS` (20 s in `wait_for_expected_dev_stage()` during modem reboot, 10 s + 45 s in `fsm_routine_exception()`), and the attempt can be retried indefinitely.\nPR:L - An unprivileged local user reaches the vulnerable wait via runtime PM: the modem autosuspends after `PM_AUTOSUSPEND_MS`, and any packet sent over the WWAN interface makes `t7xx_dpmaif_tx_hw_push_thread()`/NAPI call `pm_runtime_resume_and_get()`, entering `__t7xx_pci_pm_resume()` which issues `t7xx_send_fsm_command(FSM_CMD_STOP)` and `t7xx_pci_reprobe_early()`. No capability check gates that path.\nUI:N - The attacker performs the triggering reset/resume and the concurrent traffic itself; no victim must mount, open, or interact with anything.\nS:U - The stale-stack write and waitqueue walk corrupt kernel memory within the same host kernel security authority, with no hypervisor, IOMMU, or sandbox boundary crossed.\nC:H - `complete_all(cmd->done)` operates on a recycled kernel stack whose contents the attacker shapes with subsequent syscalls, so a crafted `struct completion` yields a controlled `swake_up_all_locked()` list walk and `curr->task` dereference — memory corruption leverageable for arbitrary kernel reads, matching the guidance that use-after-free-class corruption is High.\nI:H - The bug gives two write primitives into freed stack memory — `*cmd->ret = result` and `x->done = UINT_MAX` plus the `list_del()` unlink inside `swake_up_all_locked()` — and a controlled `list_del` over attacker-planted `next`/`prev` pointers is a classic arbitrary-write and control-flow-hijack primitive.\nA:H - The commit message documents the concrete result: an unrecoverable page fault at `fffffffffffffff8` in `complete_all()` from `fsm_main_thread`, an oops that kills the FSM kthread and panics the kernel." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/net/wwan/t7xx/t7xx_state_monitor.c", "drivers/net/wwan/t7xx/t7xx_state_monitor.h" ], "versions": [ { "version": "13e920d93e37fcaef4a9309515798a3cae9dcf19", "lessThan": "b8ab9bd0c8855cd5a6f4e0265083576257ff3fc5", "status": "affected", "versionType": "git" }, { "version": "13e920d93e37fcaef4a9309515798a3cae9dcf19", "lessThan": "0cd3bde081cd3452c875fa1e5c55834c670d6e05", "status": "affected", "versionType": "git" }, { "version": "13e920d93e37fcaef4a9309515798a3cae9dcf19", "lessThan": "e6e6882a1590cbdaca77a31a02f4954327237e14", "status": "affected", "versionType": "git" }, { "version": "13e920d93e37fcaef4a9309515798a3cae9dcf19", "lessThan": "4f619d518db9cd1a933c3a095a5f95d0c1584ae8", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/net/wwan/t7xx/t7xx_state_monitor.c", "drivers/net/wwan/t7xx/t7xx_state_monitor.h" ], "versions": [ { "version": "5.19", "status": "affected" }, { "version": "0", "lessThan": "5.19", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.124", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.70", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.9", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.13", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.19", "versionEndExcluding": "6.1.124" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.19", "versionEndExcluding": "6.6.70" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.19", "versionEndExcluding": "6.12.9" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.19", "versionEndExcluding": "6.13" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/b8ab9bd0c8855cd5a6f4e0265083576257ff3fc5" }, { "url": "https://git.kernel.org/stable/c/0cd3bde081cd3452c875fa1e5c55834c670d6e05" }, { "url": "https://git.kernel.org/stable/c/e6e6882a1590cbdaca77a31a02f4954327237e14" }, { "url": "https://git.kernel.org/stable/c/4f619d518db9cd1a933c3a095a5f95d0c1584ae8" } ], "title": "net: wwan: t7xx: Fix FSM command timeout issue", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "title": "CVE Program Container", "references": [ { "url": "https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html" } ], "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2025-11-03T20:38:14.199Z" } } ] } }