{"api_version":"1","generated_at":"2026-06-03T06:13:11+00:00","cve":"CVE-2026-46183","urls":{"html":"https://cve.report/CVE-2026-46183","api":"https://cve.report/api/cve/CVE-2026-46183.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-46183","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-46183"},"summary":{"title":"mm/damon/sysfs-schemes: protect path kfree() with damon_sysfs_lock","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nmm/damon/sysfs-schemes: protect path kfree() with damon_sysfs_lock\n\ndamon_sysfs_quot_goal->path can be read and written by users, via DAMON\nsysfs 'path' file.  It can also be indirectly read, for the parameters\n{on,off}line committing to DAMON.  The reads for parameters committing are\nprotected by damon_sysfs_lock to avoid the sysfs files being destroyed\nwhile any of the parameters are being read.  But the user-driven direct\nreads and writes are not protected by any lock, while the write is\ndeallocating the path-pointing buffer.  As a result, the readers could\nread the already freed buffer (user-after-free).  Note that the user-reads\ndon't race when the same open file is used by the writer, due to kernfs's\nopen file locking.  Nonetheless, doing the reads and writes with separate\nopen files would be common.  Fix it by protecting both the user-direct\nreads and writes with damon_sysfs_lock.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-05-28 10:16:33","updated_at":"2026-05-28 13:44:01"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/a34ca3e33da4b924c66bcca3729bf68ec5936910","name":"https://git.kernel.org/stable/c/a34ca3e33da4b924c66bcca3729bf68ec5936910","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/cf3b71421ca00807328c6d9cd242f9de3b77a4bf","name":"https://git.kernel.org/stable/c/cf3b71421ca00807328c6d9cd242f9de3b77a4bf","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-46183","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-46183","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c41e253a411eb73a5ac651c14f40c2ea2f274ebd a34ca3e33da4b924c66bcca3729bf68ec5936910 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c41e253a411eb73a5ac651c14f40c2ea2f274ebd cf3b71421ca00807328c6d9cd242f9de3b77a4bf git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.19","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.19 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.0.7 7.0.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1-rc2 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"46183","cve":"CVE-2026-46183","epss":"0.000180000","percentile":"0.051730000","score_date":"2026-06-02","updated_at":"2026-06-03 00:08:17"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["mm/damon/sysfs-schemes.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"a34ca3e33da4b924c66bcca3729bf68ec5936910","status":"affected","version":"c41e253a411eb73a5ac651c14f40c2ea2f274ebd","versionType":"git"},{"lessThan":"cf3b71421ca00807328c6d9cd242f9de3b77a4bf","status":"affected","version":"c41e253a411eb73a5ac651c14f40c2ea2f274ebd","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["mm/damon/sysfs-schemes.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"6.19"},{"lessThan":"6.19","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"7.0.*","status":"unaffected","version":"7.0.7","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.1-rc2","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.0.7","versionStartIncluding":"6.19","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1-rc2","versionStartIncluding":"6.19","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nmm/damon/sysfs-schemes: protect path kfree() with damon_sysfs_lock\n\ndamon_sysfs_quot_goal->path can be read and written by users, via DAMON\nsysfs 'path' file.  It can also be indirectly read, for the parameters\n{on,off}line committing to DAMON.  The reads for parameters committing are\nprotected by damon_sysfs_lock to avoid the sysfs files being destroyed\nwhile any of the parameters are being read.  But the user-driven direct\nreads and writes are not protected by any lock, while the write is\ndeallocating the path-pointing buffer.  As a result, the readers could\nread the already freed buffer (user-after-free).  Note that the user-reads\ndon't race when the same open file is used by the writer, due to kernfs's\nopen file locking.  Nonetheless, doing the reads and writes with separate\nopen files would be common.  Fix it by protecting both the user-direct\nreads and writes with damon_sysfs_lock."}],"providerMetadata":{"dateUpdated":"2026-05-28T09:36:36.582Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/a34ca3e33da4b924c66bcca3729bf68ec5936910"},{"url":"https://git.kernel.org/stable/c/cf3b71421ca00807328c6d9cd242f9de3b77a4bf"}],"title":"mm/damon/sysfs-schemes: protect path kfree() with damon_sysfs_lock","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-46183","datePublished":"2026-05-28T09:36:36.582Z","dateReserved":"2026-05-13T15:03:33.103Z","dateUpdated":"2026-05-28T09:36:36.582Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-05-28 10:16:33","lastModifiedDate":"2026-05-28 13:44:01","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"46183","Ordinal":"1","Title":"mm/damon/sysfs-schemes: protect path kfree() with damon_sysfs_lo","CVE":"CVE-2026-46183","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"46183","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nmm/damon/sysfs-schemes: protect path kfree() with damon_sysfs_lock\n\ndamon_sysfs_quot_goal->path can be read and written by users, via DAMON\nsysfs 'path' file.  It can also be indirectly read, for the parameters\n{on,off}line committing to DAMON.  The reads for parameters committing are\nprotected by damon_sysfs_lock to avoid the sysfs files being destroyed\nwhile any of the parameters are being read.  But the user-driven direct\nreads and writes are not protected by any lock, while the write is\ndeallocating the path-pointing buffer.  As a result, the readers could\nread the already freed buffer (user-after-free).  Note that the user-reads\ndon't race when the same open file is used by the writer, due to kernfs's\nopen file locking.  Nonetheless, doing the reads and writes with separate\nopen files would be common.  Fix it by protecting both the user-direct\nreads and writes with damon_sysfs_lock.","Type":"Description","Title":"mm/damon/sysfs-schemes: protect path kfree() with damon_sysfs_lo"}]}}}