memcg: fix possible use-after-free in memcg_write_event_control() (Linux Linux)

CVE-2022-48988
HIGH 7.8

En bref

Source
NVD
EPSS
EPSS 0.24 % · centile 16 ()
État
PUBLISHED
Publiée
Mise à jour
Attribuée par
Linux
Statut NVD
Modified

Description

In the Linux kernel, the following vulnerability has been resolved: memcg: fix possible use-after-free in memcg_write_event_control() memcg_write_event_control() accesses the dentry->d_name of the specified control fd to route the write call. As a cgroup interface file can't be renamed, it's safe to access d_name as long as the specified file is a regular cgroup file. Also, as these cgroup interface files can't be removed before the directory, it's safe to access the parent too. Prior to 347c4a874710 ("memcg: remove cgroup_event->cft"), there was a call to __file_cft() which verified that the specified file is a regular cgroupfs file before further accesses. The cftype pointer returned from __file_cft() was no longer necessary and the commit inadvertently dropped the file type check with it allowing any file to slip through. With the invarients broken, the d_name and parent accesses can now race against renames and removals of arbitrary files and cause use-after-free's. Fix the bug by resurrecting the file type check in __file_cft(). Now that cgroupfs is implemented through kernfs, checking the file operations needs to go through a layer of indirection. Instead, let's check the superblock and dentry type.

Faiblesses (CWE)

  • CWE-416 — Utilisation après libération

Références

Scores

VersionScoreVecteurÉvalué par
CVSS 3.1HIGH 7.8CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux
CVSS 3.1HIGH 7.8CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HNVD · 416baaa9-dc9f-4396-8d5f-8c081fb06d67 (Secondary)
CVSS 3.1HIGH 7.0CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:HNVD · nvd@nist.gov (Primary)

Références européennes

Avis du CERT-FR

Configurations affectées (CPE NVD)

Produits affectés

ProduitVersions
Linux · Linuxaffected 347c4a8747104a945ecced358944e42879176ca5 < b77600e26fd48727a95ffd50ba1e937efb548125 ; affected 347c4a8747104a945ecced358944e42879176ca5 < e1ae97624ecf400ea56c238bff23e5cd139df0b8 ; affected 347c4a8747104a945ecced358944e42879176ca5 < 35963b31821920908e397146502066f6b032c917 ; affected 347c4a8747104a945ecced358944e42879176ca5 < f1f7f36cf682fa59db15e2089039a2eeb58ff2ad ; affected 347c4a8747104a945ecced358944e42879176ca5 < aad8bbd17a1d586005feb9226c2e9cfce1432e13 ; affected 347c4a8747104a945ecced358944e42879176ca5 < 0ed074317b835caa6c03bcfa8f133365324673dc
Linux · Linuxaffected 3.14 ; unaffected 0 < 3.14 ; unaffected 4.14.302 ≤ 4.14.* ; unaffected 4.19.269 ≤ 4.19.* ; unaffected 5.4.227 ≤ 5.4.* ; unaffected 5.10.159 ≤ 5.10.*

Sources

SourceLicence
CVE List (CVEProject cvelistV5)CVE Program Terms of Use
EPSS (FIRST.org)FIRST — attribution requested
ENISA EUVDENISA — reproduction authorised, source acknowledged
CERT-FR (ANSSI)Licence Ouverte / Etalab 2.0
NVD (NIST) via fkie-cad/nvd-json-data-feedsPublic domain — this product uses data from the NVD API but is not endorsed or certified by the NVD