cve-2024-35795
Vulnerability from cvelistv5
Published
2024-05-17 13:23
Modified
2024-09-11 17:33
Severity
Summary
drm/amdgpu: fix deadlock while reading mqd from debugfs
Impacted products
VendorProduct
LinuxLinux
LinuxLinux
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-02T03:21:47.574Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/197f6d6987c55860f6eea1c93e4f800c59078874"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/8b03556da6e576c62664b6cd01809e4a09d53b5b"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/4687e3c6ee877ee25e57b984eca00be53b9a8db5"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/8678b1060ae2b75feb60b87e5b75e17374e3c1c5"
          }
        ],
        "title": "CVE Program Container"
      },
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-35795",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T15:42:44.762412Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-11T17:33:22.417Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "197f6d6987c5",
              "status": "affected",
              "version": "445d85e3c1df",
              "versionType": "git"
            },
            {
              "lessThan": "8b03556da6e5",
              "status": "affected",
              "version": "445d85e3c1df",
              "versionType": "git"
            },
            {
              "lessThan": "4687e3c6ee87",
              "status": "affected",
              "version": "445d85e3c1df",
              "versionType": "git"
            },
            {
              "lessThan": "8678b1060ae2",
              "status": "affected",
              "version": "445d85e3c1df",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.5"
            },
            {
              "lessThan": "6.5",
              "status": "unaffected",
              "version": "0",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.24",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "6.7.*",
              "status": "unaffected",
              "version": "6.7.12",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "6.8.*",
              "status": "unaffected",
              "version": "6.8.3",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.9",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdgpu: fix deadlock while reading mqd from debugfs\n\nAn errant disk backup on my desktop got into debugfs and triggered the\nfollowing deadlock scenario in the amdgpu debugfs files. The machine\nalso hard-resets immediately after those lines are printed (although I\nwasn\u0027t able to reproduce that part when reading by hand):\n\n[ 1318.016074][ T1082] ======================================================\n[ 1318.016607][ T1082] WARNING: possible circular locking dependency detected\n[ 1318.017107][ T1082] 6.8.0-rc7-00015-ge0c8221b72c0 #17 Not tainted\n[ 1318.017598][ T1082] ------------------------------------------------------\n[ 1318.018096][ T1082] tar/1082 is trying to acquire lock:\n[ 1318.018585][ T1082] ffff98c44175d6a0 (\u0026mm-\u003emmap_lock){++++}-{3:3}, at: __might_fault+0x40/0x80\n[ 1318.019084][ T1082]\n[ 1318.019084][ T1082] but task is already holding lock:\n[ 1318.020052][ T1082] ffff98c4c13f55f8 (reservation_ww_class_mutex){+.+.}-{3:3}, at: amdgpu_debugfs_mqd_read+0x6a/0x250 [amdgpu]\n[ 1318.020607][ T1082]\n[ 1318.020607][ T1082] which lock already depends on the new lock.\n[ 1318.020607][ T1082]\n[ 1318.022081][ T1082]\n[ 1318.022081][ T1082] the existing dependency chain (in reverse order) is:\n[ 1318.023083][ T1082]\n[ 1318.023083][ T1082] -\u003e #2 (reservation_ww_class_mutex){+.+.}-{3:3}:\n[ 1318.024114][ T1082]        __ww_mutex_lock.constprop.0+0xe0/0x12f0\n[ 1318.024639][ T1082]        ww_mutex_lock+0x32/0x90\n[ 1318.025161][ T1082]        dma_resv_lockdep+0x18a/0x330\n[ 1318.025683][ T1082]        do_one_initcall+0x6a/0x350\n[ 1318.026210][ T1082]        kernel_init_freeable+0x1a3/0x310\n[ 1318.026728][ T1082]        kernel_init+0x15/0x1a0\n[ 1318.027242][ T1082]        ret_from_fork+0x2c/0x40\n[ 1318.027759][ T1082]        ret_from_fork_asm+0x11/0x20\n[ 1318.028281][ T1082]\n[ 1318.028281][ T1082] -\u003e #1 (reservation_ww_class_acquire){+.+.}-{0:0}:\n[ 1318.029297][ T1082]        dma_resv_lockdep+0x16c/0x330\n[ 1318.029790][ T1082]        do_one_initcall+0x6a/0x350\n[ 1318.030263][ T1082]        kernel_init_freeable+0x1a3/0x310\n[ 1318.030722][ T1082]        kernel_init+0x15/0x1a0\n[ 1318.031168][ T1082]        ret_from_fork+0x2c/0x40\n[ 1318.031598][ T1082]        ret_from_fork_asm+0x11/0x20\n[ 1318.032011][ T1082]\n[ 1318.032011][ T1082] -\u003e #0 (\u0026mm-\u003emmap_lock){++++}-{3:3}:\n[ 1318.032778][ T1082]        __lock_acquire+0x14bf/0x2680\n[ 1318.033141][ T1082]        lock_acquire+0xcd/0x2c0\n[ 1318.033487][ T1082]        __might_fault+0x58/0x80\n[ 1318.033814][ T1082]        amdgpu_debugfs_mqd_read+0x103/0x250 [amdgpu]\n[ 1318.034181][ T1082]        full_proxy_read+0x55/0x80\n[ 1318.034487][ T1082]        vfs_read+0xa7/0x360\n[ 1318.034788][ T1082]        ksys_read+0x70/0xf0\n[ 1318.035085][ T1082]        do_syscall_64+0x94/0x180\n[ 1318.035375][ T1082]        entry_SYSCALL_64_after_hwframe+0x46/0x4e\n[ 1318.035664][ T1082]\n[ 1318.035664][ T1082] other info that might help us debug this:\n[ 1318.035664][ T1082]\n[ 1318.036487][ T1082] Chain exists of:\n[ 1318.036487][ T1082]   \u0026mm-\u003emmap_lock --\u003e reservation_ww_class_acquire --\u003e reservation_ww_class_mutex\n[ 1318.036487][ T1082]\n[ 1318.037310][ T1082]  Possible unsafe locking scenario:\n[ 1318.037310][ T1082]\n[ 1318.037838][ T1082]        CPU0                    CPU1\n[ 1318.038101][ T1082]        ----                    ----\n[ 1318.038350][ T1082]   lock(reservation_ww_class_mutex);\n[ 1318.038590][ T1082]                                lock(reservation_ww_class_acquire);\n[ 1318.038839][ T1082]                                lock(reservation_ww_class_mutex);\n[ 1318.039083][ T1082]   rlock(\u0026mm-\u003emmap_lock);\n[ 1318.039328][ T1082]\n[ 1318.039328][ T1082]  *** DEADLOCK ***\n[ 1318.039328][ T1082]\n[ 1318.040029][ T1082] 1 lock held by tar/1082:\n[ 1318.040259][ T1082]  #0: ffff98c4c13f55f8 (reservation_ww_class_mutex){+.+.}-{3:3}, at: amdgpu_debugfs_mqd_read+0x6a/0x250 [amdgpu]\n[ 1318.040560][ T1082]\n[ 1318.040560][ T1082] stack backtrace:\n[\n---truncated---"
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2024-05-29T05:29:06.543Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/197f6d6987c55860f6eea1c93e4f800c59078874"
        },
        {
          "url": "https://git.kernel.org/stable/c/8b03556da6e576c62664b6cd01809e4a09d53b5b"
        },
        {
          "url": "https://git.kernel.org/stable/c/4687e3c6ee877ee25e57b984eca00be53b9a8db5"
        },
        {
          "url": "https://git.kernel.org/stable/c/8678b1060ae2b75feb60b87e5b75e17374e3c1c5"
        }
      ],
      "title": "drm/amdgpu: fix deadlock while reading mqd from debugfs",
      "x_generator": {
        "engine": "bippy-a5840b7849dd"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-35795",
    "datePublished": "2024-05-17T13:23:06.900Z",
    "dateReserved": "2024-05-17T12:19:12.339Z",
    "dateUpdated": "2024-09-11T17:33:22.417Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-35795\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-05-17T14:15:11.440\",\"lastModified\":\"2024-05-17T18:35:35.070\",\"vulnStatus\":\"Awaiting Analysis\",\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ndrm/amdgpu: fix deadlock while reading mqd from debugfs\\n\\nAn errant disk backup on my desktop got into debugfs and triggered the\\nfollowing deadlock scenario in the amdgpu debugfs files. The machine\\nalso hard-resets immediately after those lines are printed (although I\\nwasn\u0027t able to reproduce that part when reading by hand):\\n\\n[ 1318.016074][ T1082] ======================================================\\n[ 1318.016607][ T1082] WARNING: possible circular locking dependency detected\\n[ 1318.017107][ T1082] 6.8.0-rc7-00015-ge0c8221b72c0 #17 Not tainted\\n[ 1318.017598][ T1082] ------------------------------------------------------\\n[ 1318.018096][ T1082] tar/1082 is trying to acquire lock:\\n[ 1318.018585][ T1082] ffff98c44175d6a0 (\u0026mm-\u003emmap_lock){++++}-{3:3}, at: __might_fault+0x40/0x80\\n[ 1318.019084][ T1082]\\n[ 1318.019084][ T1082] but task is already holding lock:\\n[ 1318.020052][ T1082] ffff98c4c13f55f8 (reservation_ww_class_mutex){+.+.}-{3:3}, at: amdgpu_debugfs_mqd_read+0x6a/0x250 [amdgpu]\\n[ 1318.020607][ T1082]\\n[ 1318.020607][ T1082] which lock already depends on the new lock.\\n[ 1318.020607][ T1082]\\n[ 1318.022081][ T1082]\\n[ 1318.022081][ T1082] the existing dependency chain (in reverse order) is:\\n[ 1318.023083][ T1082]\\n[ 1318.023083][ T1082] -\u003e #2 (reservation_ww_class_mutex){+.+.}-{3:3}:\\n[ 1318.024114][ T1082]        __ww_mutex_lock.constprop.0+0xe0/0x12f0\\n[ 1318.024639][ T1082]        ww_mutex_lock+0x32/0x90\\n[ 1318.025161][ T1082]        dma_resv_lockdep+0x18a/0x330\\n[ 1318.025683][ T1082]        do_one_initcall+0x6a/0x350\\n[ 1318.026210][ T1082]        kernel_init_freeable+0x1a3/0x310\\n[ 1318.026728][ T1082]        kernel_init+0x15/0x1a0\\n[ 1318.027242][ T1082]        ret_from_fork+0x2c/0x40\\n[ 1318.027759][ T1082]        ret_from_fork_asm+0x11/0x20\\n[ 1318.028281][ T1082]\\n[ 1318.028281][ T1082] -\u003e #1 (reservation_ww_class_acquire){+.+.}-{0:0}:\\n[ 1318.029297][ T1082]        dma_resv_lockdep+0x16c/0x330\\n[ 1318.029790][ T1082]        do_one_initcall+0x6a/0x350\\n[ 1318.030263][ T1082]        kernel_init_freeable+0x1a3/0x310\\n[ 1318.030722][ T1082]        kernel_init+0x15/0x1a0\\n[ 1318.031168][ T1082]        ret_from_fork+0x2c/0x40\\n[ 1318.031598][ T1082]        ret_from_fork_asm+0x11/0x20\\n[ 1318.032011][ T1082]\\n[ 1318.032011][ T1082] -\u003e #0 (\u0026mm-\u003emmap_lock){++++}-{3:3}:\\n[ 1318.032778][ T1082]        __lock_acquire+0x14bf/0x2680\\n[ 1318.033141][ T1082]        lock_acquire+0xcd/0x2c0\\n[ 1318.033487][ T1082]        __might_fault+0x58/0x80\\n[ 1318.033814][ T1082]        amdgpu_debugfs_mqd_read+0x103/0x250 [amdgpu]\\n[ 1318.034181][ T1082]        full_proxy_read+0x55/0x80\\n[ 1318.034487][ T1082]        vfs_read+0xa7/0x360\\n[ 1318.034788][ T1082]        ksys_read+0x70/0xf0\\n[ 1318.035085][ T1082]        do_syscall_64+0x94/0x180\\n[ 1318.035375][ T1082]        entry_SYSCALL_64_after_hwframe+0x46/0x4e\\n[ 1318.035664][ T1082]\\n[ 1318.035664][ T1082] other info that might help us debug this:\\n[ 1318.035664][ T1082]\\n[ 1318.036487][ T1082] Chain exists of:\\n[ 1318.036487][ T1082]   \u0026mm-\u003emmap_lock --\u003e reservation_ww_class_acquire --\u003e reservation_ww_class_mutex\\n[ 1318.036487][ T1082]\\n[ 1318.037310][ T1082]  Possible unsafe locking scenario:\\n[ 1318.037310][ T1082]\\n[ 1318.037838][ T1082]        CPU0                    CPU1\\n[ 1318.038101][ T1082]        ----                    ----\\n[ 1318.038350][ T1082]   lock(reservation_ww_class_mutex);\\n[ 1318.038590][ T1082]                                lock(reservation_ww_class_acquire);\\n[ 1318.038839][ T1082]                                lock(reservation_ww_class_mutex);\\n[ 1318.039083][ T1082]   rlock(\u0026mm-\u003emmap_lock);\\n[ 1318.039328][ T1082]\\n[ 1318.039328][ T1082]  *** DEADLOCK ***\\n[ 1318.039328][ T1082]\\n[ 1318.040029][ T1082] 1 lock held by tar/1082:\\n[ 1318.040259][ T1082]  #0: ffff98c4c13f55f8 (reservation_ww_class_mutex){+.+.}-{3:3}, at: amdgpu_debugfs_mqd_read+0x6a/0x250 [amdgpu]\\n[ 1318.040560][ T1082]\\n[ 1318.040560][ T1082] stack backtrace:\\n[\\n---truncated---\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se resolvi\u00f3 la siguiente vulnerabilidad: drm/amdgpu: corrige el punto muerto al leer mqd desde debugfs Una copia de seguridad de disco err\u00f3nea en mi escritorio entr\u00f3 en debugfs y desencaden\u00f3 el siguiente escenario de punto muerto en los archivos amdgpu debugfs. La m\u00e1quina tambi\u00e9n se reinicia inmediatamente despu\u00e9s de imprimir esas l\u00edneas (aunque no pude reproducir esa parte cuando le\u00ed a mano): [ 1318.016074][ T1082] =============== ======================================= [ 1318.016607][ T1082] ADVERTENCIA: posible bloqueo circular dependencia detectada [ 1318.017107][ T1082] 6.8.0-rc7-00015-ge0c8221b72c0 #17 No contaminado [ 1318.017598][ T1082] ----------------------- ------------------------------- [ 1318.018096][ T1082] tar/1082 est\u00e1 intentando adquirir el bloqueo: [ 1318.018585][ T1082] ffff98c44175d6a0 (\u0026amp;mm-\u0026gt;mmap_lock){++++}-{3:3}, en: __might_fault+0x40/0x80 [ 1318.019084][ T1082] [ 1318.019084][ T1082] pero la tarea ya mantiene el bloqueo: [ 1318.020052 ][ T1082] ffff98c4c13f55f8 (reservation_ww_class_mutex){+.+.}-{3:3}, en: amdgpu_debugfs_mqd_read+0x6a/0x250 [amdgpu] [ 1318.020607][ T1082] [ 1318.020607][ T1082] el bloqueo ya depende del nuevo cerrar con llave. [ 1318.020607][ T1082] [ 1318.022081][ T1082] [ 1318.022081][ T1082] la cadena de dependencia existente (en orden inverso) es: [ 1318.023083][ T1082] [ 1318.023083][ T1082] -\u0026gt; #2 (reservation_ww_ clase_mutex){+ .+.}-{3:3}: [ 1318.024114][ T1082] __ww_mutex_lock.constprop.0+0xe0/0x12f0 [ 1318.024639][ T1082] ww_mutex_lock+0x32/0x90 [ 1318.025161][ T1082] dep+0x18a/0x330 [ 1318.025683 ][ T1082] do_one_initcall+0x6a/0x350 [ 1318.026210][ T1082] kernel_init_freeable+0x1a3/0x310 [ 1318.026728][ T1082] kernel_init+0x15/0x1a0 [ 1318.027242][ T1082] from_fork+0x2c/0x40 [ 1318.027759][ T1082] ret_from_fork_asm+ 0x11/0x20 [ 1318.028281][ T1082] [ 1318.028281][ T1082] -\u0026gt; #1 (reservation_ww_class_acquire){+.+.}-{0:0}: [ 1318.029297][ T1082] dma_resv_lockdep+0x16c/0x330 [ 1 318.029790][ T1082] do_one_initcall+0x6a/0x350 [ 1318.030263][ T1082] kernel_init_freeable+0x1a3/0x310 [ 1318.030722][ T1082] kernel_init+0x15/0x1a0 [ 1318.031168][ T1082] bifurcaci\u00f3n+0x2c/0x40 [ 1318.031598][ T1082] ret_from_fork_asm+0x11/ 0x20 [ 1318.032011][ T1082] [ 1318.032011][ T1082] -\u0026gt; #0 (\u0026amp;mm-\u0026gt;mmap_lock){++++}-{3:3}: [ 1318.032778][ T1082] __lock_acquire+0x14bf/0x2680 [ 1318.033141 ] [ T1082] lock_acquire+0xcd/0x2c0 [ 1318.033487][ T1082] __might_fault+0x58/0x80 [ 1318.033814][ T1082] amdgpu_debugfs_mqd_read+0x103/0x250 [amdgpu] [ 1318.03418 1][T1082] lectura_proxy_completa+0x55/0x80 [1318.034487][T1082] vfs_read+0xa7/0x360 [ 1318.034788][ T1082] ksys_read+0x70/0xf0 [ 1318.035085][ T1082] do_syscall_64+0x94/0x180 [ 1318.035375][ T1082] wframe+0x46/0x4e [ 1318.035664][ T1082] [ 1318.035664][ T1082] Otra informaci\u00f3n que podr\u00eda ayudarnos a depurar esto: [1318.035664] [T1082] [1318.036487] [T1082] La cadena existe de: [1318.036487] [T1082] \u0026amp; mm-\u0026gt; mmap_lock-\u0026gt; reservation_ww_class_acquire-\u0026gt; reservaci\u00f3n_www_mutex. ] [ 1318.037310][T1082] Posible escenario de bloqueo inseguro: [ 1318.037310][ T1082] [ 1318.037838][ T1082] CPU0 CPU1 [ 1318.038101][ T1082] ---- ---- [ 1318.038350][ T1082] _class_mutex); [ 1318.038590][ T1082] bloqueo(reservation_ww_class_acquire); [ 1318.038839][ T1082] bloqueo(reservation_ww_class_mutex); [ 1318.039083][ T1082] rlock(\u0026amp;mm-\u0026gt;mmap_lock); [ 1318.039328][ T1082] [ 1318.039328][ T1082] *** DEADLOCK *** [ 1318.039328][ T1082] [ 1318.040029][ T1082] 1 bloqueo retenido por tar/1082: [ 1318.040259][ T1082] #0: ffff98c4c13f55f8 ( reserve_ww_class_mutex){+.+.}-{3:3}, en: amdgpu_debugfs_mqd_read+0x6a/0x250 [amdgpu] [ 1318.040560][ T1082] [ 1318.040560][ T1082] seguimiento de pila: [ ---truncado---\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/197f6d6987c55860f6eea1c93e4f800c59078874\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/4687e3c6ee877ee25e57b984eca00be53b9a8db5\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/8678b1060ae2b75feb60b87e5b75e17374e3c1c5\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/8b03556da6e576c62664b6cd01809e4a09d53b5b\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading...

Loading...