CVE-2022-48735 (GCVE-0-2022-48735)

Vulnerability from cvelistv5 – Published: 2024-06-20 11:13 – Updated: 2026-08-05 08:52
VLAI
Title
ALSA: hda: Fix UAF of leds class devs at unbinding
Summary
In the Linux kernel, the following vulnerability has been resolved: ALSA: hda: Fix UAF of leds class devs at unbinding The LED class devices that are created by HD-audio codec drivers are registered via devm_led_classdev_register() and associated with the HD-audio codec device. Unfortunately, it turned out that the devres release doesn't work for this case; namely, since the codec resource release happens before the devm call chain, it triggers a NULL dereference or a UAF for a stale set_brightness_delay callback. For fixing the bug, this patch changes the LED class device register and unregister in a manual manner without devres, keeping the instances in hda_gen_spec.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2024-09-10 17:10 UTC
Impacted products
Vendor Product Version
Linux Linux Affected: 15509b6344726de22bdbfff88b65341dd0dd33af , < a7de1002135cf94367748ffc695a29812d7633b5 (git)
Affected: 15509b6344726de22bdbfff88b65341dd0dd33af , < 0e629052f013eeb61494d4df2f1f647c2a9aef47 (git)
Affected: 15509b6344726de22bdbfff88b65341dd0dd33af , < 813e9f3e06d22e29872d4fd51b54992d89cf66c8 (git)
Affected: 15509b6344726de22bdbfff88b65341dd0dd33af , < 549f8ffc7b2f7561bea7f90930b6c5104318e87b (git)
Create a notification for this product.
Linux Linux Affected: 5.9
Unaffected: 0 , < 5.9 (semver)
Unaffected: 5.10.99 , ≤ 5.10.* (semver)
Unaffected: 5.15.22 , ≤ 5.15.* (semver)
Unaffected: 5.16.8 , ≤ 5.16.* (semver)
Unaffected: 5.17 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-03T15:25:00.531Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/a7de1002135cf94367748ffc695a29812d7633b5"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/0e629052f013eeb61494d4df2f1f647c2a9aef47"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/813e9f3e06d22e29872d4fd51b54992d89cf66c8"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/549f8ffc7b2f7561bea7f90930b6c5104318e87b"
          }
        ],
        "title": "CVE Program Container"
      },
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2022-48735",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T17:10:50.919175Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-11T17:34:48.755Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "sound/pci/hda/hda_generic.c",
            "sound/pci/hda/hda_generic.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "a7de1002135cf94367748ffc695a29812d7633b5",
              "status": "affected",
              "version": "15509b6344726de22bdbfff88b65341dd0dd33af",
              "versionType": "git"
            },
            {
              "lessThan": "0e629052f013eeb61494d4df2f1f647c2a9aef47",
              "status": "affected",
              "version": "15509b6344726de22bdbfff88b65341dd0dd33af",
              "versionType": "git"
            },
            {
              "lessThan": "813e9f3e06d22e29872d4fd51b54992d89cf66c8",
              "status": "affected",
              "version": "15509b6344726de22bdbfff88b65341dd0dd33af",
              "versionType": "git"
            },
            {
              "lessThan": "549f8ffc7b2f7561bea7f90930b6c5104318e87b",
              "status": "affected",
              "version": "15509b6344726de22bdbfff88b65341dd0dd33af",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "sound/pci/hda/hda_generic.c",
            "sound/pci/hda/hda_generic.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.9"
            },
            {
              "lessThan": "5.9",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.99",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.22",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.16.*",
              "status": "unaffected",
              "version": "5.16.8",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "5.17",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.99",
                  "versionStartIncluding": "5.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.22",
                  "versionStartIncluding": "5.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.16.8",
                  "versionStartIncluding": "5.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.17",
                  "versionStartIncluding": "5.9",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: hda: Fix UAF of leds class devs at unbinding\n\nThe LED class devices that are created by HD-audio codec drivers are\nregistered via devm_led_classdev_register() and associated with the\nHD-audio codec device.  Unfortunately, it turned out that the devres\nrelease doesn\u0027t work for this case; namely, since the codec resource\nrelease happens before the devm call chain, it triggers a NULL\ndereference or a UAF for a stale set_brightness_delay callback.\n\nFor fixing the bug, this patch changes the LED class device register\nand unregister in a manual manner without devres, keeping the\ninstances in hda_gen_spec."
        }
      ],
      "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"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The bug is reached only through local HD-audio codec teardown (sysfs reconfig/clear, driver unbind, or module unload) and local LED/ALSA mute paths; it is not reachable from network packets or adjacent wireless frames.\nAC:L - On systems with HDA mute/micmute LED classdevs, unbinding deterministically frees codec-\u003espec before delayed LED unregister/set_brightness work runs, and an attacker who can toggle mute LEDs controls the concurrent UAF side with no external timing dependency.\nPR:L - ALSA mixer and LED brightness interfaces used in the UAF window are commonly available to ordinary local audio/input-group users; while sysfs reconfig/unbind is root-owned, the highest-severity local scenario treats this as low privilege rather than init-namespace-only root, preferring the more severe PR value under uncertainty.\nUI:N - No separate victim action such as opening a file or mounting media is required; the attacker drives LED/mute activity and codec teardown from local userspace without tricking another user.\nS:U - Impact is confined to the host kernel\u2019s own authority (crash or memory corruption for local privilege escalation); there is no VM, IOMMU, or sandbox boundary crossing.\nC:H - The commit documents a use-after-free of LED classdev/set_brightness_delayed state over freed codec spec objects, which can be reclaimed and leveraged for arbitrary kernel memory disclosure.\nI:H - A UAF on the freed hda_gen_spec/LED callback path enables heap spray and corruption of adjacent kernel objects, yielding arbitrary write / control-flow hijack primitives.\nA:H - Even without full exploitation, the teardown path NULL-dereferences or UAFs in LED brightness callbacks and causes a kernel oops/panic, fully impacting availability."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:52:02.428Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/a7de1002135cf94367748ffc695a29812d7633b5"
        },
        {
          "url": "https://git.kernel.org/stable/c/0e629052f013eeb61494d4df2f1f647c2a9aef47"
        },
        {
          "url": "https://git.kernel.org/stable/c/813e9f3e06d22e29872d4fd51b54992d89cf66c8"
        },
        {
          "url": "https://git.kernel.org/stable/c/549f8ffc7b2f7561bea7f90930b6c5104318e87b"
        }
      ],
      "title": "ALSA: hda: Fix UAF of leds class devs at unbinding",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-48735",
    "datePublished": "2024-06-20T11:13:22.065Z",
    "dateReserved": "2024-06-20T11:09:39.053Z",
    "dateUpdated": "2026-08-05T08:52:02.428Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2022-48735",
      "date": "2026-10-03",
      "epss": "0.00234",
      "percentile": "0.13008"
    },
    "vulnrichment": {
      "containers": {
        "adp": [
          {
            "providerMetadata": {
              "dateUpdated": "2024-08-03T15:25:00.531Z",
              "orgId": "af854a3a-2127-422b-91ae-364da2661108",
              "shortName": "CVE"
            },
            "references": [
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://git.kernel.org/stable/c/a7de1002135cf94367748ffc695a29812d7633b5"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://git.kernel.org/stable/c/0e629052f013eeb61494d4df2f1f647c2a9aef47"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://git.kernel.org/stable/c/813e9f3e06d22e29872d4fd51b54992d89cf66c8"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://git.kernel.org/stable/c/549f8ffc7b2f7561bea7f90930b6c5104318e87b"
              }
            ],
            "title": "CVE Program Container"
          },
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2022-48735",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2024-09-10T17:10:50.919175Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2024-09-11T12:42:26.058Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "Linux",
              "programFiles": [
                "sound/pci/hda/hda_generic.c",
                "sound/pci/hda/hda_generic.h"
              ],
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "vendor": "Linux",
              "versions": [
                {
                  "lessThan": "a7de1002135cf94367748ffc695a29812d7633b5",
                  "status": "affected",
                  "version": "15509b6344726de22bdbfff88b65341dd0dd33af",
                  "versionType": "git"
                },
                {
                  "lessThan": "0e629052f013eeb61494d4df2f1f647c2a9aef47",
                  "status": "affected",
                  "version": "15509b6344726de22bdbfff88b65341dd0dd33af",
                  "versionType": "git"
                },
                {
                  "lessThan": "813e9f3e06d22e29872d4fd51b54992d89cf66c8",
                  "status": "affected",
                  "version": "15509b6344726de22bdbfff88b65341dd0dd33af",
                  "versionType": "git"
                },
                {
                  "lessThan": "549f8ffc7b2f7561bea7f90930b6c5104318e87b",
                  "status": "affected",
                  "version": "15509b6344726de22bdbfff88b65341dd0dd33af",
                  "versionType": "git"
                }
              ]
            },
            {
              "defaultStatus": "affected",
              "product": "Linux",
              "programFiles": [
                "sound/pci/hda/hda_generic.c",
                "sound/pci/hda/hda_generic.h"
              ],
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "vendor": "Linux",
              "versions": [
                {
                  "status": "affected",
                  "version": "5.9"
                },
                {
                  "lessThan": "5.9",
                  "status": "unaffected",
                  "version": "0",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "5.10.*",
                  "status": "unaffected",
                  "version": "5.10.99",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "5.15.*",
                  "status": "unaffected",
                  "version": "5.15.22",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "5.16.*",
                  "status": "unaffected",
                  "version": "5.16.8",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "*",
                  "status": "unaffected",
                  "version": "5.17",
                  "versionType": "original_commit_for_fix"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "5.10.99",
                      "versionStartIncluding": "5.9",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "5.15.22",
                      "versionStartIncluding": "5.9",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "5.16.8",
                      "versionStartIncluding": "5.9",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "5.17",
                      "versionStartIncluding": "5.9",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: hda: Fix UAF of leds class devs at unbinding\n\nThe LED class devices that are created by HD-audio codec drivers are\nregistered via devm_led_classdev_register() and associated with the\nHD-audio codec device.  Unfortunately, it turned out that the devres\nrelease doesn\u0027t work for this case; namely, since the codec resource\nrelease happens before the devm call chain, it triggers a NULL\ndereference or a UAF for a stale set_brightness_delay callback.\n\nFor fixing the bug, this patch changes the LED class device register\nand unregister in a manual manner without devres, keeping the\ninstances in hda_gen_spec."
            }
          ],
          "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"
              },
              "scenarios": [
                {
                  "lang": "en",
                  "value": "AV:L - The bug is reached only through local HD-audio codec teardown (sysfs reconfig/clear, driver unbind, or module unload) and local LED/ALSA mute paths; it is not reachable from network packets or adjacent wireless frames.\nAC:L - On systems with HDA mute/micmute LED classdevs, unbinding deterministically frees codec-\u003espec before delayed LED unregister/set_brightness work runs, and an attacker who can toggle mute LEDs controls the concurrent UAF side with no external timing dependency.\nPR:L - ALSA mixer and LED brightness interfaces used in the UAF window are commonly available to ordinary local audio/input-group users; while sysfs reconfig/unbind is root-owned, the highest-severity local scenario treats this as low privilege rather than init-namespace-only root, preferring the more severe PR value under uncertainty.\nUI:N - No separate victim action such as opening a file or mounting media is required; the attacker drives LED/mute activity and codec teardown from local userspace without tricking another user.\nS:U - Impact is confined to the host kernel\u2019s own authority (crash or memory corruption for local privilege escalation); there is no VM, IOMMU, or sandbox boundary crossing.\nC:H - The commit documents a use-after-free of LED classdev/set_brightness_delayed state over freed codec spec objects, which can be reclaimed and leveraged for arbitrary kernel memory disclosure.\nI:H - A UAF on the freed hda_gen_spec/LED callback path enables heap spray and corruption of adjacent kernel objects, yielding arbitrary write / control-flow hijack primitives.\nA:H - Even without full exploitation, the teardown path NULL-dereferences or UAFs in LED brightness callbacks and causes a kernel oops/panic, fully impacting availability."
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-05T08:52:02.428Z",
            "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "shortName": "Linux"
          },
          "references": [
            {
              "url": "https://git.kernel.org/stable/c/a7de1002135cf94367748ffc695a29812d7633b5"
            },
            {
              "url": "https://git.kernel.org/stable/c/0e629052f013eeb61494d4df2f1f647c2a9aef47"
            },
            {
              "url": "https://git.kernel.org/stable/c/813e9f3e06d22e29872d4fd51b54992d89cf66c8"
            },
            {
              "url": "https://git.kernel.org/stable/c/549f8ffc7b2f7561bea7f90930b6c5104318e87b"
            }
          ],
          "title": "ALSA: hda: Fix UAF of leds class devs at unbinding",
          "x_generator": {
            "engine": "bippy-1.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "assignerShortName": "Linux",
        "cveId": "CVE-2022-48735",
        "datePublished": "2024-06-20T11:13:22.065Z",
        "dateReserved": "2024-06-20T11:09:39.053Z",
        "dateUpdated": "2026-08-05T08:52:02.428Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…