{
   "containers": {
      "cna": {
         "providerMetadata": {
            "orgId": "f4215fc3-5b6b-47ff-a258-f7189bd81038"
         },
         "descriptions": [
            {
               "lang": "en",
               "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nconfigfs: fix a race in configfs_{,un}register_subsystem()\n\nWhen configfs_register_subsystem() or configfs_unregister_subsystem()\nis executing link_group() or unlink_group(),\nit is possible that two processes add or delete list concurrently.\nSome unfortunate interleavings of them can cause kernel panic.\n\nOne of cases is:\nA --> B --> C --> D\nA <-- B <-- C <-- D\n\n     delete list_head *B        |      delete list_head *C\n--------------------------------|-----------------------------------\nconfigfs_unregister_subsystem   |   configfs_unregister_subsystem\n  unlink_group                  |     unlink_group\n    unlink_obj                  |       unlink_obj\n      list_del_init             |         list_del_init\n        __list_del_entry        |           __list_del_entry\n          __list_del            |             __list_del\n            // next == C        |\n            next->prev = prev   |\n                                |               next->prev = prev\n            prev->next = next   |\n                                |                 // prev == B\n                                |                 prev->next = next\n\nFix this by adding mutex when calling link_group() or unlink_group(),\nbut parent configfs_subsystem is NULL when config_item is root.\nSo I create a mutex configfs_subsystem_mutex."
            }
         ],
         "affected": [
            {
               "product": "Linux",
               "vendor": "Linux",
               "defaultStatus": "unaffected",
               "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
               "programFiles": [
                  "fs/configfs/dir.c"
               ],
               "versions": [
                  {
                     "version": "7063fbf22611",
                     "lessThan": "40805099af11",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "7063fbf22611",
                     "lessThan": "d1654de19d42",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "7063fbf22611",
                     "lessThan": "a37024f7757c",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "7063fbf22611",
                     "lessThan": "b7e2b91fcb5c",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "7063fbf22611",
                     "lessThan": "a7ab53d3c27d",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "7063fbf22611",
                     "lessThan": "e7a66dd26877",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "7063fbf22611",
                     "lessThan": "3aadfd46858b",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "7063fbf22611",
                     "lessThan": "84ec758fb2da",
                     "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/configfs/dir.c"
               ],
               "versions": [
                  {
                     "version": "2.6.16",
                     "status": "affected"
                  },
                  {
                     "version": "0",
                     "lessThan": "2.6.16",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "4.9.304",
                     "lessThanOrEqual": "4.9.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "4.14.269",
                     "lessThanOrEqual": "4.14.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "4.19.232",
                     "lessThanOrEqual": "4.19.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "5.4.182",
                     "lessThanOrEqual": "5.4.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "5.10.103",
                     "lessThanOrEqual": "5.10.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "5.15.26",
                     "lessThanOrEqual": "5.15.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "5.16.12",
                     "lessThanOrEqual": "5.16.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "5.17",
                     "lessThanOrEqual": "*",
                     "status": "unaffected",
                     "versionType": "original_commit_for_fix"
                  }
               ]
            }
         ],
         "references": [
            {
               "url": "https://git.kernel.org/stable/c/40805099af11f68c5ca7dbcfacf455da8f99f622"
            },
            {
               "url": "https://git.kernel.org/stable/c/d1654de19d42f513b6cfe955cc77e7f427e05a77"
            },
            {
               "url": "https://git.kernel.org/stable/c/a37024f7757c25550accdebf49e497ad6ae239fe"
            },
            {
               "url": "https://git.kernel.org/stable/c/b7e2b91fcb5c78c414e33dc8d50642e307ca0c5a"
            },
            {
               "url": "https://git.kernel.org/stable/c/a7ab53d3c27dfe83bb594456b9f38a37796ec39b"
            },
            {
               "url": "https://git.kernel.org/stable/c/e7a66dd2687758718eddd79b542a95cf3aa488cc"
            },
            {
               "url": "https://git.kernel.org/stable/c/3aadfd46858b1f64d4d6a0654b863e21aabff975"
            },
            {
               "url": "https://git.kernel.org/stable/c/84ec758fb2daa236026506868c8796b0500c047d"
            }
         ],
         "title": "configfs: fix a race in configfs_{,un}register_subsystem()",
         "x_generator": {
            "engine": "bippy-c9c4e1df01b2"
         }
      }
   },
   "cveMetadata": {
      "assignerOrgId": "f4215fc3-5b6b-47ff-a258-f7189bd81038",
      "cveID": "CVE-2022-48931",
      "requesterUserId": "gregkh@kernel.org",
      "serial": "1",
      "state": "PUBLISHED"
   },
   "dataType": "CVE_RECORD",
   "dataVersion": "5.0"
}
