In the Linux kernel, the following vulnerability has been resolved:
cachestat: do not flush stats in recency check
syzbot detects that cachestat() is flushing stats, which can sleep, in its RCU read section (see [1]). This is done in the workingsettestrecent() step (which checks if the folio's eviction is recent).
Move the stat flushing step to before the RCU read section of cachestat, and skip stat flushing during the recency check.
{ "vanir_signatures": [ { "id": "CVE-2024-41033-17d886d5", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1d1ba14e00d290b1ed616ed78c8c49bf897ce390", "deprecated": false, "signature_version": "v1", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "68355418437558734201174920460929422633", "109035222938614516387822392133200250324", "309504913944000104485341507920856598015", "191969598850755088449181595221670999178", "273108610351956680011751042912122195760", "10877200940396305921344596011252451662", "179367770087247309533704651164114603674" ] }, "target": { "file": "mm/filemap.c" } }, { "id": "CVE-2024-41033-24201e93", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5a4d8944d6b1e1aaaa83ea42c116b520b4ed0394", "deprecated": false, "signature_version": "v1", "signature_type": "Function", "digest": { "length": 695.0, "function_hash": "106433157153541399521479561113645179322" }, "target": { "file": "mm/workingset.c", "function": "workingset_refault" } }, { "id": "CVE-2024-41033-25b56ccf", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1d1ba14e00d290b1ed616ed78c8c49bf897ce390", "deprecated": false, "signature_version": "v1", "signature_type": "Function", "digest": { "length": 1181.0, "function_hash": "91291085173096601236198446538432066474" }, "target": { "file": "mm/filemap.c", "function": "filemap_cachestat" } }, { "id": "CVE-2024-41033-2d97fe2b", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5a4d8944d6b1e1aaaa83ea42c116b520b4ed0394", "deprecated": false, "signature_version": "v1", "signature_type": "Function", "digest": { "length": 959.0, "function_hash": "129925435732369598456160346567422058052" }, "target": { "file": "mm/workingset.c", "function": "workingset_test_recent" } }, { "id": "CVE-2024-41033-3d16cd42", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5a4d8944d6b1e1aaaa83ea42c116b520b4ed0394", "deprecated": false, "signature_version": "v1", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "263112196865975570428967563465295001863", "32112980518803155247763880164970608469", "112135754430349557140731695389975777808", "245277995472849319687358957887099416784" ] }, "target": { "file": "include/linux/swap.h" } }, { "id": "CVE-2024-41033-66bc1f14", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5a4d8944d6b1e1aaaa83ea42c116b520b4ed0394", "deprecated": false, "signature_version": "v1", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "68355418437558734201174920460929422633", "109035222938614516387822392133200250324", "309504913944000104485341507920856598015", "191969598850755088449181595221670999178", "273108610351956680011751042912122195760", "10877200940396305921344596011252451662", "179367770087247309533704651164114603674" ] }, "target": { "file": "mm/filemap.c" } }, { "id": "CVE-2024-41033-68223d9b", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5a4d8944d6b1e1aaaa83ea42c116b520b4ed0394", "deprecated": false, "signature_version": "v1", "signature_type": "Function", "digest": { "length": 1181.0, "function_hash": "91291085173096601236198446538432066474" }, "target": { "file": "mm/filemap.c", "function": "filemap_cachestat" } }, { "id": "CVE-2024-41033-821325c0", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1d1ba14e00d290b1ed616ed78c8c49bf897ce390", "deprecated": false, "signature_version": "v1", "signature_type": "Function", "digest": { "length": 695.0, "function_hash": "106433157153541399521479561113645179322" }, "target": { "file": "mm/workingset.c", "function": "workingset_refault" } }, { "id": "CVE-2024-41033-9928e73f", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1d1ba14e00d290b1ed616ed78c8c49bf897ce390", "deprecated": false, "signature_version": "v1", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "250475259685655701899033680724241191962", "150050991433702779397224400718929411401", "143879647046089371356954193043630055535", "142606950589751445254017409019804660548", "125867994721776810593608927286439547699", "43615425754828228369581962314001216348", "79761092759794361837466411661208019012", "190898036453173377799767427154380848631", "30701280616498046215637828013716711682", "299799306643347874375345793252665186800", "245841405720006825574869565033403221813", "302749071818715915891824801550143929059" ] }, "target": { "file": "mm/workingset.c" } }, { "id": "CVE-2024-41033-eedd57f9", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5a4d8944d6b1e1aaaa83ea42c116b520b4ed0394", "deprecated": false, "signature_version": "v1", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "250475259685655701899033680724241191962", "150050991433702779397224400718929411401", "143879647046089371356954193043630055535", "142606950589751445254017409019804660548", "125867994721776810593608927286439547699", "43615425754828228369581962314001216348", "79761092759794361837466411661208019012", "190898036453173377799767427154380848631", "30701280616498046215637828013716711682", "299799306643347874375345793252665186800", "245841405720006825574869565033403221813", "302749071818715915891824801550143929059" ] }, "target": { "file": "mm/workingset.c" } }, { "id": "CVE-2024-41033-f5ea2d33", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1d1ba14e00d290b1ed616ed78c8c49bf897ce390", "deprecated": false, "signature_version": "v1", "signature_type": "Function", "digest": { "length": 959.0, "function_hash": "129925435732369598456160346567422058052" }, "target": { "file": "mm/workingset.c", "function": "workingset_test_recent" } }, { "id": "CVE-2024-41033-f61b32e1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1d1ba14e00d290b1ed616ed78c8c49bf897ce390", "deprecated": false, "signature_version": "v1", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "263112196865975570428967563465295001863", "32112980518803155247763880164970608469", "112135754430349557140731695389975777808", "245277995472849319687358957887099416784" ] }, "target": { "file": "include/linux/swap.h" } } ] }