FKIE_CVE-2025-40130

Vulnerability from fkie_nvd - Published: 2025-11-12 11:15 - Updated: 2026-10-21 13:18
Severity
Summary
In the Linux kernel, the following vulnerability has been resolved: scsi: ufs: core: Fix data race in CPU latency PM QoS request handling The cpu_latency_qos_add/remove/update_request interfaces lack internal synchronization by design, requiring the caller to ensure thread safety. The current implementation relies on the 'pm_qos_enabled' flag, which is insufficient to prevent concurrent access and cannot serve as a proper synchronization mechanism. This has led to data races and list corruption issues. A typical race condition call trace is: [Thread A] ufshcd_pm_qos_exit() --> cpu_latency_qos_remove_request() --> cpu_latency_qos_apply(); --> pm_qos_update_target() --> plist_del <--(1) delete plist node --> memset(req, 0, sizeof(*req)); --> hba->pm_qos_enabled = false; [Thread B] ufshcd_devfreq_target --> ufshcd_devfreq_scale --> ufshcd_scale_clks --> ufshcd_pm_qos_update <--(2) pm_qos_enabled is true --> cpu_latency_qos_update_request --> pm_qos_update_target --> plist_del <--(3) plist node use-after-free Introduces a dedicated mutex to serialize PM QoS operations, preventing data races and ensuring safe access to PM QoS resources, including sysfs interface reads.
Impacted products
Vendor Product Version

{
  "affected": [
    {
      "affectedData": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/ufs/core/ufs-sysfs.c",
            "drivers/ufs/core/ufshcd.c",
            "include/ufs/ufshcd.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "eee1b13526b8f1e6a2402973d95f9fa854771f57",
              "status": "affected",
              "version": "2777e73fc154e2e87233bdcc0e2402b33815198e",
              "versionType": "git"
            },
            {
              "lessThan": "d9df61afb8d23c475f1be3c714da2c34c156ab01",
              "status": "affected",
              "version": "2777e73fc154e2e87233bdcc0e2402b33815198e",
              "versionType": "git"
            },
            {
              "lessThan": "79dde5f7dc7c038eec903745dc1550cd4139980e",
              "status": "affected",
              "version": "2777e73fc154e2e87233bdcc0e2402b33815198e",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/ufs/core/ufs-sysfs.c",
            "drivers/ufs/core/ufshcd.c",
            "include/ufs/ufshcd.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.9"
            },
            {
              "lessThan": "6.9",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.114",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.17.*",
              "status": "unaffected",
              "version": "6.17.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.18",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: ufs: core: Fix data race in CPU latency PM QoS request handling\n\nThe cpu_latency_qos_add/remove/update_request interfaces lack internal\nsynchronization by design, requiring the caller to ensure thread safety.\nThe current implementation relies on the \u0027pm_qos_enabled\u0027 flag, which is\ninsufficient to prevent concurrent access and cannot serve as a proper\nsynchronization mechanism. This has led to data races and list\ncorruption issues.\n\nA typical race condition call trace is:\n\n[Thread A]\nufshcd_pm_qos_exit()\n  --\u003e cpu_latency_qos_remove_request()\n    --\u003e cpu_latency_qos_apply();\n      --\u003e pm_qos_update_target()\n        --\u003e plist_del              \u003c--(1) delete plist node\n    --\u003e memset(req, 0, sizeof(*req));\n  --\u003e hba-\u003epm_qos_enabled = false;\n\n[Thread B]\nufshcd_devfreq_target\n  --\u003e ufshcd_devfreq_scale\n    --\u003e ufshcd_scale_clks\n      --\u003e ufshcd_pm_qos_update     \u003c--(2) pm_qos_enabled is true\n        --\u003e cpu_latency_qos_update_request\n          --\u003e pm_qos_update_target\n            --\u003e plist_del          \u003c--(3) plist node use-after-free\n\nIntroduces a dedicated mutex to serialize PM QoS operations, preventing\ndata races and ensuring safe access to PM QoS resources, including sysfs\ninterface reads."
    },
    {
      "lang": "es",
      "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nscsi: ufs: core: Soluciona condici\u00f3n de carrera de datos en el manejo de solicitudes de QoS de PM de latencia de CPU\n\nLas interfaces cpu_latency_qos_add/remove/update_request carecen de sincronizaci\u00f3n interna por dise\u00f1o, lo que requiere que el llamador garantice la seguridad de los hilos. La implementaci\u00f3n actual se basa en el indicador \u0027pm_qos_enabled\u0027, el cual es insuficiente para prevenir el acceso concurrente y no puede servir como un mecanismo de sincronizaci\u00f3n adecuado. Esto ha llevado a condiciones de carrera de datos y problemas de corrupci\u00f3n de listas.\n\nUna traza de llamada de condici\u00f3n de carrera t\u00edpica es:\n\n[Hilo A]\nufshcd_pm_qos_exit()\n  --\u003e cpu_latency_qos_remove_request()\n    --\u003e cpu_latency_qos_apply();\n      --\u003e pm_qos_update_target()\n        --\u003e plist_del              \u003c--(1) eliminar nodo plist\n    --\u003e memset(req, 0, sizeof(*req));\n  --\u003e hba-\u003epm_qos_enabled = false;\n\n[Hilo B]\nufshcd_devfreq_target\n  --\u003e ufshcd_devfreq_scale\n    --\u003e ufshcd_scale_clks\n      --\u003e ufshcd_pm_qos_update     \u003c--(2) pm_qos_enabled es verdadero\n        --\u003e cpu_latency_qos_update_request\n          --\u003e pm_qos_update_target\n            --\u003e plist_del          \u003c--(3) uso despu\u00e9s de liberaci\u00f3n de nodo plist\n\nIntroduce un mutex dedicado para serializar las operaciones de PM QoS, previniendo condiciones de carrera de datos y asegurando el acceso seguro a los recursos de PM QoS, incluyendo las lecturas de la interfaz sysfs."
    }
  ],
  "id": "CVE-2025-40130",
  "lastModified": "2026-10-21T13:18:19.067",
  "metrics": {},
  "published": "2025-11-12T11:15:42.637",
  "references": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/79dde5f7dc7c038eec903745dc1550cd4139980e"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/d9df61afb8d23c475f1be3c714da2c34c156ab01"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/eee1b13526b8f1e6a2402973d95f9fa854771f57"
    }
  ],
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "vulnStatus": "Deferred"
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.

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.
Vulnerability timeline

Sightings and recorded dates, grouped by day · UTC

JSON
Events included in the timeline

Loading timeline…


    Loading…

    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.