← Back to CVE Explorer

CVE-2025-39999

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: blk-mq: fix blk_mq_tags double free while nr_requests grown In the case user trigger tags grow by queue sysfs attribute nr_requests, hctx->sched_tags will be freed directly and replaced with a new allocated tags, see blk_mq_tag_update_depth(). The problem is that hctx->sched_tags is from elevator->et->tags, while et->tags is still the freed tags, hence later elevator exit will try to free the tags again, causing kernel panic. Fix this problem by replacing et->tags with new allocated tags as well. Noted there are still some long term problems that will require some refactor to be fixed thoroughly[1]. [1] https://lore.kernel.org/all/[email protected]/

Severity
Not scored
CVSS score
Not available
Vulnerability status
Deferred
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2025-10-15 08:15:38.210000
Last modified
2026-10-19 21:10:00.160000
View original CVE JSON
{
  "id": "CVE-2025-39999",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2025-10-15T08:15:38.210",
  "lastModified": "2026-10-19T21:10:00.160",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nblk-mq: fix blk_mq_tags double free while nr_requests grown\n\nIn the case user trigger tags grow by queue sysfs attribute nr_requests,\nhctx->sched_tags will be freed directly and replaced with a new\nallocated tags, see blk_mq_tag_update_depth().\n\nThe problem is that hctx->sched_tags is from elevator->et->tags, while\net->tags is still the freed tags, hence later elevator exit will try to\nfree the tags again, causing kernel panic.\n\nFix this problem by replacing et->tags with new allocated tags as well.\n\nNoted there are still some long term problems that will require some\nrefactor to be fixed thoroughly[1].\n\n[1] https://lore.kernel.org/all/[email protected]/"
    },
    {
      "lang": "es",
      "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nblk-mq: corrección de la doble liberación de blk_mq_tags mientras nr_requests crecía\n\nEn el caso de que el usuario active el crecimiento de las etiquetas mediante el atributo sysfs de la cola nr_requests, hctx->sched_tags se liberará directamente y se reemplazará con nuevas etiquetas asignadas, véase blk_mq_tag_update_depth().\n\nEl problema es que hctx->sched_tags proviene de elevator->et->tags, mientras que et->tags sigue siendo las etiquetas liberadas, por lo tanto, una salida posterior del elevador intentará liberar las etiquetas de nuevo, causando un pánico del kernel.\n\nSoluciona este problema reemplazando et->tags también con nuevas etiquetas asignadas.\n\nSe ha observado que todavía existen algunos problemas a largo plazo que requerirán una refactorización para ser solucionados completamente[1].\n\n[1] https://lore.kernel.org/all/[email protected]/"
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "block/blk-mq-tag.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "58567d8e95c096ad234963df90a2ca518901f4b6",
              "lessThan": "8faee580d63bc2a54a59dcdb7f9ce4de29384fec",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "f5a6604f7a4405450e4a1f54e5430f47290c500f",
              "lessThan": "392b1d64911f4de8887fe8b68299fa8bd6e5b923",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "f5a6604f7a4405450e4a1f54e5430f47290c500f",
              "lessThan": "ba28afbd9eff2a6370f23ef4e6a036ab0cfda409",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "6.16.4",
              "lessThan": "6.16.11",
              "versionType": "semver",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "block/blk-mq-tag.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "6.17",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "6.17",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.16.11",
              "lessThanOrEqual": "6.16.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.17.1",
              "lessThanOrEqual": "6.17.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/392b1d64911f4de8887fe8b68299fa8bd6e5b923",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/8faee580d63bc2a54a59dcdb7f9ce4de29384fec",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/ba28afbd9eff2a6370f23ef4e6a036ab0cfda409",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}