{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2024-49966", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2024-10-21T12:17:06.050Z", "datePublished": "2024-10-21T18:02:17.076Z", "dateUpdated": "2026-08-05T11:40:45.084Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T11:40:45.084Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nocfs2: cancel dqi_sync_work before freeing oinfo\n\nocfs2_global_read_info() will initialize and schedule dqi_sync_work at the\nend, if error occurs after successfully reading global quota, it will\ntrigger the following warning with CONFIG_DEBUG_OBJECTS_* enabled:\n\nODEBUG: free active (active state 0) object: 00000000d8b0ce28 object type: timer_list hint: qsync_work_fn+0x0/0x16c\n\nThis reports that there is an active delayed work when freeing oinfo in\nerror handling, so cancel dqi_sync_work first. BTW, return status instead\nof -1 when .read_file_info fails." } ], "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 path is entered only through `ocfs2_enable_quotas()`/`ocfs2_remount()` when an ocfs2 image is mounted locally, so the attacker needs local access to present the crafted block device or image file. There is no remote or adjacent-network data path into `ocfs2_local_read_info()`.\nAC:L - The attacker authors the on-disk image and therefore controls both the failure trigger (unvalidated `dqi_chunks`/quota-block ECC guaranteeing an error after `ocfs2_global_read_info()` succeeds) and `dqi_syncms`, which sets the exact delay before the freed timer fires — giving a deterministic, repeatable free-then-spray-then-fire window. No condition outside the attacker's influence is required.\nPR:L - In the realistic worst case a low-privileged local user supplies the crafted image on removable media or via a delegated/`user` fstab mount and a privileged automounter (udisks2/systemd) performs the mount, so the attacker themself holds only unprivileged credentials. Per the uncertainty rule the lower privilege tier is taken over requiring real CAP_SYS_ADMIN.\nUI:N - On desktop, kiosk and shared-workstation deployments the mount is performed automatically by the automount daemon on media insertion — an action the attacker performs — so no separate victim interaction is needed.\nS:U - The freed object, the timer wheel and the work handler all live within the kernel's own security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - This is a slab use-after-free: the attacker can reallocate the freed `ocfs2_mem_dqinfo` and have `qsync_work_fn()` dereference an attacker-chosen `dqi_gqinode`/`i_sb`, and `dquot_scan_active()` then walks structures at attacker-influenced addresses, yielding an arbitrary-read primitive.\nI:H - `expire_timers()` reads `timer->function` from the freed object and calls it while `detach_timer()` writes back into it, so a successful heap spray gives a controlled indirect call and write primitive — full control-flow hijack, not merely state corruption.\nA:H - Even unexploited the dangling timer causes a wild function-pointer call or NULL/garbage dereference in softirq context, producing a kernel oops or panic; with debug objects enabled it trips the ODEBUG \"free active object\" report." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "fs/ocfs2/quota_local.c" ], "versions": [ { "version": "171bf93ce11f4c9929fdce6ce63df8da2f3c4475", "lessThan": "fc5cc716dfbdc5fd5f373ff3b51358174cf88bfc", "status": "affected", "versionType": "git" }, { "version": "171bf93ce11f4c9929fdce6ce63df8da2f3c4475", "lessThan": "89043e7ed63c7fc141e68ea5a79758ed24b6c699", "status": "affected", "versionType": "git" }, { "version": "171bf93ce11f4c9929fdce6ce63df8da2f3c4475", "lessThan": "14114d8148db07e7946fb06b56a50cfa425e26c7", "status": "affected", "versionType": "git" }, { "version": "171bf93ce11f4c9929fdce6ce63df8da2f3c4475", "lessThan": "4173d1277c00baeedaaca76783e98b8fd0e3c08d", "status": "affected", "versionType": "git" }, { "version": "171bf93ce11f4c9929fdce6ce63df8da2f3c4475", "lessThan": "bbf41277df8b33fbedf4750a9300c147e8f104eb", "status": "affected", "versionType": "git" }, { "version": "171bf93ce11f4c9929fdce6ce63df8da2f3c4475", "lessThan": "ef768020366f47d23f39c4f57bcb03af6d1e24b3", "status": "affected", "versionType": "git" }, { "version": "171bf93ce11f4c9929fdce6ce63df8da2f3c4475", "lessThan": "a4346c04d055bf7e184c18a73dbd23b6a9811118", "status": "affected", "versionType": "git" }, { "version": "171bf93ce11f4c9929fdce6ce63df8da2f3c4475", "lessThan": "0d707a33c84b371cb66120e198eed3374726ddd8", "status": "affected", "versionType": "git" }, { "version": "171bf93ce11f4c9929fdce6ce63df8da2f3c4475", "lessThan": "35fccce29feb3706f649726d410122dd81b92c18", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "fs/ocfs2/quota_local.c" ], "versions": [ { "version": "2.6.29", "status": "affected" }, { "version": "0", "lessThan": "2.6.29", "status": "unaffected", "versionType": "semver" }, { "version": "4.19.323", "lessThanOrEqual": "4.19.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.4.285", "lessThanOrEqual": "5.4.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.10.227", "lessThanOrEqual": "5.10.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.168", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.113", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.55", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.10.14", "lessThanOrEqual": "6.10.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.11.3", "lessThanOrEqual": "6.11.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12", "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": "2.6.29", "versionEndExcluding": "4.19.323" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.29", "versionEndExcluding": "5.4.285" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.29", "versionEndExcluding": "5.10.227" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.29", "versionEndExcluding": "5.15.168" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.29", "versionEndExcluding": "6.1.113" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.29", "versionEndExcluding": "6.6.55" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.29", "versionEndExcluding": "6.10.14" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.29", "versionEndExcluding": "6.11.3" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.29", "versionEndExcluding": "6.12" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/fc5cc716dfbdc5fd5f373ff3b51358174cf88bfc" }, { "url": "https://git.kernel.org/stable/c/89043e7ed63c7fc141e68ea5a79758ed24b6c699" }, { "url": "https://git.kernel.org/stable/c/14114d8148db07e7946fb06b56a50cfa425e26c7" }, { "url": "https://git.kernel.org/stable/c/4173d1277c00baeedaaca76783e98b8fd0e3c08d" }, { "url": "https://git.kernel.org/stable/c/bbf41277df8b33fbedf4750a9300c147e8f104eb" }, { "url": "https://git.kernel.org/stable/c/ef768020366f47d23f39c4f57bcb03af6d1e24b3" }, { "url": "https://git.kernel.org/stable/c/a4346c04d055bf7e184c18a73dbd23b6a9811118" }, { "url": "https://git.kernel.org/stable/c/0d707a33c84b371cb66120e198eed3374726ddd8" }, { "url": "https://git.kernel.org/stable/c/35fccce29feb3706f649726d410122dd81b92c18" } ], "title": "ocfs2: cancel dqi_sync_work before freeing oinfo", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "metrics": [ { "other": { "type": "ssvc", "content": { "id": "CVE-2024-49966", "role": "CISA Coordinator", "options": [ { "Exploitation": "none" }, { "Automatable": "no" }, { "Technical Impact": "partial" } ], "version": "2.0.3", "timestamp": "2024-10-22T13:34:26.104655Z" } } } ], "title": "CISA ADP Vulnrichment", "providerMetadata": { "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP", "dateUpdated": "2024-10-22T13:38:46.962Z" } }, { "title": "CVE Program Container", "references": [ { "url": "https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html" }, { "url": "https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html" } ], "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2025-11-03T22:23:48.460Z" } } ] } }