Skip to content
Heist/ feed
Back to feed
UnratedFix available

btrfs: fix deadlock in wait_current_trans() due to ignored transaction type

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: btrfs: fix deadlock in wait_current_trans() due to ignored transaction type When wait_current_trans() is called during start_transaction(), it currently waits for a blocked transaction without considering whether the given transaction type actually needs to wait for that particular transaction state. The btrfs_blocked_trans_types[] array already defines which transaction types should wait for which transaction states, but this check was missing in wait_current_trans(). This can lead to a deadlock scenario involving two transactions and pending ordered extents: 1. Transaction A is in TRANS_STATE_COMMIT_DOING state 2. A worker processing an ordered extent calls start_transaction() with TRANS_JOIN 3. join_transaction() returns -EBUSY because Transaction A is in TRANS_STATE_COMMIT_DOING 4. Transaction A moves to TRANS_STATE_UNBLOCKED and completes 5. A new Transaction B is created (TRANS_STATE_RUNNING) 6. The ordered extent from step 2 is added to Transaction B's pending ordered extents 7. Transaction B immediately starts commit by another task and enters TRANS_STATE_COMMIT_START 8. The worker finally reaches wait_current_trans(), sees Transaction B in TRANS_STATE_COMMIT_START (a blocked state), and waits unconditionally 9. However, TRANS_JOIN should NOT wait for TRANS_STATE_COMMIT_START according to btrfs_blocked_trans_types[] 10. Transaction B is waiting for pending ordered extents to complete 11. Deadlock: Tra

Products
Kernel
Affected versions
Not specified
Fixed versions
5.10.249, 5.15.199, 6.1.162, 6.12.67, 6.18.7, 6.6.122
CVEs
CVE-2025-71194
Confirmed fixed CVEs
Not specified
Updated in this feed
6 Nov 2026, 01:30 UTC · Revision 1

Source evidence

btrfs: fix deadlock in wait_current_trans() due to ignored transaction type

core-osv · Original source

Published 4 Feb 2026, 16:04 UTC

In the Linux kernel, the following vulnerability has been resolved: btrfs: fix deadlock in wait_current_trans() due to ignored transaction type When wait_current_trans() is called during start_transaction(), it currently waits for a blocked transaction without considering whether the given transaction type actually needs to wait for that particular transaction state. The btrfs_blocked_trans_types[] array already defines which transaction types should wait for which transaction states, but this check was missing in wait_current_trans(). This can lead to a deadlock scenario involving two transactions and pending ordered extents: 1. Transaction A is in TRANS_STATE_COMMIT_DOING state 2. A worker processing an ordered extent calls start_transaction() with TRANS_JOIN 3. join_transaction() returns -EBUSY because Transaction A is in TRANS_STATE_COMMIT_DOING 4. Transaction A moves to TRANS_STATE_UNBLOCKED and completes 5. A new Transaction B is created (TRANS_STATE_RUNNING) 6. The ordered extent from step 2 is added to Transaction B's pending ordered extents 7. Transaction B immediately starts commit by another task and enters TRANS_STATE_COMMIT_START 8. The worker finally reaches wait_current_trans(), sees Transaction B in TRANS_STATE_COMMIT_START (a blocked state), and waits unconditionally 9. However, TRANS_JOIN should NOT wait for TRANS_STATE_COMMIT_START according to btrfs_blocked_trans_types[] 10. Transaction B is waiting for pending ordered extents to complete 11. Deadlock: Tra

osv:CVE-2025-71194

Kernel

Fixed versions: 5.10.249, 5.15.199, 6.1.162, 6.6.122, 6.12.67, 6.18.7

Complete source record
{
  "id": "a700494a465f8d04a82b2065eec7b2dc747c5fdb90b9400d0632bea7bdc57761",
  "url": "https://osv.dev/vulnerability/CVE-2025-71194",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "btrfs: fix deadlock in wait_current_trans() due to ignored transaction type",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: btrfs: fix deadlock in wait_current_trans() due to ignored transaction type When wait_current_trans() is called during start_transaction(), it currently waits for a blocked transaction without considering whether the given transaction type actually needs to wait for that particular transaction state. The btrfs_blocked_trans_types[] array already defines which transaction types should wait for which transaction states, but this check was missing in wait_current_trans(). This can lead to a deadlock scenario involving two transactions and pending ordered extents: 1. Transaction A is in TRANS_STATE_COMMIT_DOING state 2. A worker processing an ordered extent calls start_transaction() with TRANS_JOIN 3. join_transaction() returns -EBUSY because Transaction A is in TRANS_STATE_COMMIT_DOING 4. Transaction A moves to TRANS_STATE_UNBLOCKED and completes 5. A new Transaction B is created (TRANS_STATE_RUNNING) 6. The ordered extent from step 2 is added to Transaction B's pending ordered extents 7. Transaction B immediately starts commit by another task and enters TRANS_STATE_COMMIT_START 8. The worker finally reaches wait_current_trans(), sees Transaction B in TRANS_STATE_COMMIT_START (a blocked state), and waits unconditionally 9. However, TRANS_JOIN should NOT wait for TRANS_STATE_COMMIT_START according to btrfs_blocked_trans_types[] 10. Transaction B is waiting for pending ordered extents to complete 11. Deadlock: Tra",
    "evidence": "osv:CVE-2025-71194",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "5.10.249",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.15.199",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.1.162",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.122",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.67",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.7",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2025-71194",
      "aliases": [
        "CVE-2025-71194"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "4a9d8bdee368de78ace8b36da4eb2186afea162d"
                },
                {
                  "fixed": "e563f59395981fcd69d130761290929806e728d6"
                },
                {
                  "fixed": "dc84036c173cff6a432d9ab926298850b1d2a659"
                },
                {
                  "fixed": "d7b04b40ac8e6d814e35202a0e1568809b818295"
                },
                {
                  "fixed": "99da896614d17e8a84aeb2b2d464ac046cc8633d"
                },
                {
                  "fixed": "8b0bb145d3bc264360f525c9717653be3522e528"
                },
                {
                  "fixed": "9ac63333d600732a56b35ee1fa46836da671eb50"
                },
                {
                  "fixed": "5037b342825df7094a4906d1e2a9674baab50cb2"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-71194.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "3.11.0"
                },
                {
                  "fixed": "5.10.249"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.11.0"
                },
                {
                  "fixed": "5.15.199"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "6.1.162"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.122"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.67"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.7"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-71194.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:45.680494131Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/5037b342825df7094a4906d1e2a9674baab50cb2",
        "https://git.kernel.org/stable/c/8b0bb145d3bc264360f525c9717653be3522e528",
        "https://git.kernel.org/stable/c/99da896614d17e8a84aeb2b2d464ac046cc8633d",
        "https://git.kernel.org/stable/c/9ac63333d600732a56b35ee1fa46836da671eb50",
        "https://git.kernel.org/stable/c/d7b04b40ac8e6d814e35202a0e1568809b818295",
        "https://git.kernel.org/stable/c/dc84036c173cff6a432d9ab926298850b1d2a659",
        "https://git.kernel.org/stable/c/e563f59395981fcd69d130761290929806e728d6",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/71xxx/CVE-2025-71194.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2025-71194",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/71xxx/CVE-2025-71194.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2025-71194",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 513872,
  "published_at": "2026-02-04T16:04:15.389+00:00"
}