{"api_version":"1","generated_at":"2026-10-01T14:24:10+00:00","cve":"CVE-2022-48988","urls":{"html":"https://cve.report/CVE-2022-48988","api":"https://cve.report/api/cve/CVE-2022-48988.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2022-48988","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2022-48988"},"summary":{"title":"memcg: fix possible use-after-free in memcg_write_event_control()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nmemcg: fix possible use-after-free in memcg_write_event_control()\n\nmemcg_write_event_control() accesses the dentry->d_name of the specified\ncontrol fd to route the write call.  As a cgroup interface file can't be\nrenamed, it's safe to access d_name as long as the specified file is a\nregular cgroup file.  Also, as these cgroup interface files can't be\nremoved before the directory, it's safe to access the parent too.\n\nPrior to 347c4a874710 (\"memcg: remove cgroup_event->cft\"), there was a\ncall to __file_cft() which verified that the specified file is a regular\ncgroupfs file before further accesses.  The cftype pointer returned from\n__file_cft() was no longer necessary and the commit inadvertently dropped\nthe file type check with it allowing any file to slip through.  With the\ninvarients broken, the d_name and parent accesses can now race against\nrenames and removals of arbitrary files and cause use-after-free's.\n\nFix the bug by resurrecting the file type check in __file_cft().  Now that\ncgroupfs is implemented through kernfs, checking the file operations needs\nto go through a layer of indirection.  Instead, let's check the superblock\nand dentry type.","state":"PUBLISHED","assigner":"Linux","published_at":"2024-10-21 20:15:10","updated_at":"2026-08-04 10:17:29"},"problem_types":["CWE-416"],"metrics":[{"version":"3.1","source":"nvd@nist.gov","type":"Primary","score":"7","severity":"HIGH","vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7,"baseSeverity":"HIGH","attackVector":"LOCAL","attackComplexity":"HIGH","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"}},{"version":"3.1","source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","type":"Secondary","score":"7.8","severity":"HIGH","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","data":{"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","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"7.8","severity":"HIGH","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","data":{"baseScore":7.8,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","version":"3.1"}}],"references":[{"url":"https://git.kernel.org/stable/c/b77600e26fd48727a95ffd50ba1e937efb548125","name":"https://git.kernel.org/stable/c/b77600e26fd48727a95ffd50ba1e937efb548125","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/0ed074317b835caa6c03bcfa8f133365324673dc","name":"https://git.kernel.org/stable/c/0ed074317b835caa6c03bcfa8f133365324673dc","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/4a7ba45b1a435e7097ca0f79a847d0949d0eb088","name":"https://git.kernel.org/stable/c/4a7ba45b1a435e7097ca0f79a847d0949d0eb088","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/35963b31821920908e397146502066f6b032c917","name":"https://git.kernel.org/stable/c/35963b31821920908e397146502066f6b032c917","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/f1f7f36cf682fa59db15e2089039a2eeb58ff2ad","name":"https://git.kernel.org/stable/c/f1f7f36cf682fa59db15e2089039a2eeb58ff2ad","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/aad8bbd17a1d586005feb9226c2e9cfce1432e13","name":"https://git.kernel.org/stable/c/aad8bbd17a1d586005feb9226c2e9cfce1432e13","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/e1ae97624ecf400ea56c238bff23e5cd139df0b8","name":"https://git.kernel.org/stable/c/e1ae97624ecf400ea56c238bff23e5cd139df0b8","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2022-48988","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-48988","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 347c4a8747104a945ecced358944e42879176ca5 b77600e26fd48727a95ffd50ba1e937efb548125 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 347c4a8747104a945ecced358944e42879176ca5 e1ae97624ecf400ea56c238bff23e5cd139df0b8 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 347c4a8747104a945ecced358944e42879176ca5 35963b31821920908e397146502066f6b032c917 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 347c4a8747104a945ecced358944e42879176ca5 f1f7f36cf682fa59db15e2089039a2eeb58ff2ad git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 347c4a8747104a945ecced358944e42879176ca5 aad8bbd17a1d586005feb9226c2e9cfce1432e13 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 347c4a8747104a945ecced358944e42879176ca5 0ed074317b835caa6c03bcfa8f133365324673dc git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 347c4a8747104a945ecced358944e42879176ca5 4a7ba45b1a435e7097ca0f79a847d0949d0eb088 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 3.14","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 3.14 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 4.14.302 4.14.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 4.19.269 4.19.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.4.227 5.4.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.10.159 5.10.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.15.83 5.15.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.0.13 6.0.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.1 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2022","cve_id":"48988","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"o","cpe4":"linux","cpe5":"linux_kernel","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"adp":[{"metrics":[{"other":{"content":{"id":"CVE-2022-48988","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","timestamp":"2024-10-22T13:16:57.577077Z","version":"2.0.3"},"type":"ssvc"}}],"providerMetadata":{"dateUpdated":"2024-10-22T13:18:42.631Z","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP"},"title":"CISA ADP Vulnrichment"}],"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["include/linux/cgroup.h","kernel/cgroup/cgroup-internal.h","mm/memcontrol.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"b77600e26fd48727a95ffd50ba1e937efb548125","status":"affected","version":"347c4a8747104a945ecced358944e42879176ca5","versionType":"git"},{"lessThan":"e1ae97624ecf400ea56c238bff23e5cd139df0b8","status":"affected","version":"347c4a8747104a945ecced358944e42879176ca5","versionType":"git"},{"lessThan":"35963b31821920908e397146502066f6b032c917","status":"affected","version":"347c4a8747104a945ecced358944e42879176ca5","versionType":"git"},{"lessThan":"f1f7f36cf682fa59db15e2089039a2eeb58ff2ad","status":"affected","version":"347c4a8747104a945ecced358944e42879176ca5","versionType":"git"},{"lessThan":"aad8bbd17a1d586005feb9226c2e9cfce1432e13","status":"affected","version":"347c4a8747104a945ecced358944e42879176ca5","versionType":"git"},{"lessThan":"0ed074317b835caa6c03bcfa8f133365324673dc","status":"affected","version":"347c4a8747104a945ecced358944e42879176ca5","versionType":"git"},{"lessThan":"4a7ba45b1a435e7097ca0f79a847d0949d0eb088","status":"affected","version":"347c4a8747104a945ecced358944e42879176ca5","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["include/linux/cgroup.h","kernel/cgroup/cgroup-internal.h","mm/memcontrol.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"3.14"},{"lessThan":"3.14","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"4.14.*","status":"unaffected","version":"4.14.302","versionType":"semver"},{"lessThanOrEqual":"4.19.*","status":"unaffected","version":"4.19.269","versionType":"semver"},{"lessThanOrEqual":"5.4.*","status":"unaffected","version":"5.4.227","versionType":"semver"},{"lessThanOrEqual":"5.10.*","status":"unaffected","version":"5.10.159","versionType":"semver"},{"lessThanOrEqual":"5.15.*","status":"unaffected","version":"5.15.83","versionType":"semver"},{"lessThanOrEqual":"6.0.*","status":"unaffected","version":"6.0.13","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"6.1","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"4.14.302","versionStartIncluding":"3.14","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"4.19.269","versionStartIncluding":"3.14","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.4.227","versionStartIncluding":"3.14","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.10.159","versionStartIncluding":"3.14","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.15.83","versionStartIncluding":"3.14","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.0.13","versionStartIncluding":"3.14","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.1","versionStartIncluding":"3.14","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nmemcg: fix possible use-after-free in memcg_write_event_control()\n\nmemcg_write_event_control() accesses the dentry->d_name of the specified\ncontrol fd to route the write call.  As a cgroup interface file can't be\nrenamed, it's safe to access d_name as long as the specified file is a\nregular cgroup file.  Also, as these cgroup interface files can't be\nremoved before the directory, it's safe to access the parent too.\n\nPrior to 347c4a874710 (\"memcg: remove cgroup_event->cft\"), there was a\ncall to __file_cft() which verified that the specified file is a regular\ncgroupfs file before further accesses.  The cftype pointer returned from\n__file_cft() was no longer necessary and the commit inadvertently dropped\nthe file type check with it allowing any file to slip through.  With the\ninvarients broken, the d_name and parent accesses can now race against\nrenames and removals of arbitrary files and cause use-after-free's.\n\nFix the bug by resurrecting the file type check in __file_cft().  Now that\ncgroupfs is implemented through kernfs, checking the file operations needs\nto go through a layer of indirection.  Instead, let's check the superblock\nand dentry type."}],"metrics":[{"cvssV3_1":{"baseScore":7.8,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","version":"3.1"}}],"providerMetadata":{"dateUpdated":"2026-08-04T09:03:31.536Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/b77600e26fd48727a95ffd50ba1e937efb548125"},{"url":"https://git.kernel.org/stable/c/e1ae97624ecf400ea56c238bff23e5cd139df0b8"},{"url":"https://git.kernel.org/stable/c/35963b31821920908e397146502066f6b032c917"},{"url":"https://git.kernel.org/stable/c/f1f7f36cf682fa59db15e2089039a2eeb58ff2ad"},{"url":"https://git.kernel.org/stable/c/aad8bbd17a1d586005feb9226c2e9cfce1432e13"},{"url":"https://git.kernel.org/stable/c/0ed074317b835caa6c03bcfa8f133365324673dc"},{"url":"https://git.kernel.org/stable/c/4a7ba45b1a435e7097ca0f79a847d0949d0eb088"}],"title":"memcg: fix possible use-after-free in memcg_write_event_control()","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2022-48988","datePublished":"2024-10-21T20:06:04.601Z","dateReserved":"2024-08-22T01:27:53.634Z","dateUpdated":"2026-08-04T09:03:31.536Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2024-10-21 20:15:10","lastModifiedDate":"2026-08-04 10:17:29","problem_types":["CWE-416"],"metrics":{"cvssMetricV31":[{"source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","type":"Secondary","cvssData":{"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","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"},"exploitabilityScore":1.8,"impactScore":5.9},{"source":"nvd@nist.gov","type":"Primary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7,"baseSeverity":"HIGH","attackVector":"LOCAL","attackComplexity":"HIGH","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"},"exploitabilityScore":1,"impactScore":5.9}],"ssvcV203":[{"source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","ssvcData":{"timestamp":"2024-10-22T13:16:57.577077Z","id":"CVE-2022-48988","options":[{"exploitation":"none"},{"automatable":"no"},{"technicalImpact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}]},"configurations":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.14","versionEndExcluding":"4.14.302","matchCriteriaId":"E107E1CA-F309-4B44-AB1F-DC3086D3F588"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.15","versionEndExcluding":"4.19.269","matchCriteriaId":"1185B8E3-712E-4BFB-BD01-78D47F7EF1F2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.20","versionEndExcluding":"5.4.227","matchCriteriaId":"8C752145-904B-474A-A7F2-E9F29353B0FE"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.5","versionEndExcluding":"5.10.159","matchCriteriaId":"7318B597-DFFD-4BBC-A947-539D6E30D82A"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.11","versionEndExcluding":"5.15.83","matchCriteriaId":"90897BD1-104D-4CFF-94F5-29F9041217FB"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.16","versionEndExcluding":"6.0.13","matchCriteriaId":"389392A7-81C4-4C26-884B-8C7CF0F53DA4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:6.1:rc1:*:*:*:*:*:*","matchCriteriaId":"E7E331DA-1FB0-4DEC-91AC-7DA69D461C11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:6.1:rc2:*:*:*:*:*:*","matchCriteriaId":"17F0B248-42CF-4AE6-A469-BB1BAE7F4705"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:6.1:rc3:*:*:*:*:*:*","matchCriteriaId":"E2422816-0C14-4B5E-A1E6-A9D776E5C49B"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:6.1:rc4:*:*:*:*:*:*","matchCriteriaId":"1C6E00FE-5FB9-4D20-A1A1-5A32128F9B76"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:6.1:rc5:*:*:*:*:*:*","matchCriteriaId":"35B26BE4-43A6-4A36-A7F6-5B3F572D9186"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:6.1:rc6:*:*:*:*:*:*","matchCriteriaId":"3FFFB0B3-930D-408A-91E2-BAE0C2715D80"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:6.1:rc7:*:*:*:*:*:*","matchCriteriaId":"8535320E-A0DB-4277-800E-D0CE5BBA59E8"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:6.1:rc8:*:*:*:*:*:*","matchCriteriaId":"21718AA4-4056-40F2-968E-BDAA465A7872"}]}]}]},"legacy_mitre":{"record":{"CveYear":"2022","CveId":"48988","Ordinal":"1","Title":"memcg: fix possible use-after-free in memcg_write_event_control(","CVE":"CVE-2022-48988","Year":"2022"},"notes":[{"CveYear":"2022","CveId":"48988","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nmemcg: fix possible use-after-free in memcg_write_event_control()\n\nmemcg_write_event_control() accesses the dentry->d_name of the specified\ncontrol fd to route the write call.  As a cgroup interface file can't be\nrenamed, it's safe to access d_name as long as the specified file is a\nregular cgroup file.  Also, as these cgroup interface files can't be\nremoved before the directory, it's safe to access the parent too.\n\nPrior to 347c4a874710 (\"memcg: remove cgroup_event->cft\"), there was a\ncall to __file_cft() which verified that the specified file is a regular\ncgroupfs file before further accesses.  The cftype pointer returned from\n__file_cft() was no longer necessary and the commit inadvertently dropped\nthe file type check with it allowing any file to slip through.  With the\ninvarients broken, the d_name and parent accesses can now race against\nrenames and removals of arbitrary files and cause use-after-free's.\n\nFix the bug by resurrecting the file type check in __file_cft().  Now that\ncgroupfs is implemented through kernfs, checking the file operations needs\nto go through a layer of indirection.  Instead, let's check the superblock\nand dentry type.","Type":"Description","Title":"memcg: fix possible use-after-free in memcg_write_event_control("}]}}}