CVE-2025-71237 (GCVE-0-2025-71237)

Vulnerability from cvelistv5 – Published: 2026-02-18 14:53 – Updated: 2026-02-23 03:16
VLAI?
Title
nilfs2: Fix potential block overflow that cause system hang
Summary
In the Linux kernel, the following vulnerability has been resolved: nilfs2: Fix potential block overflow that cause system hang When a user executes the FITRIM command, an underflow can occur when calculating nblocks if end_block is too small. Since nblocks is of type sector_t, which is u64, a negative nblocks value will become a very large positive integer. This ultimately leads to the block layer function __blkdev_issue_discard() taking an excessively long time to process the bio chain, and the ns_segctor_sem lock remains held for a long period. This prevents other tasks from acquiring the ns_segctor_sem lock, resulting in the hang reported by syzbot in [1]. If the ending block is too small, typically if it is smaller than 4KiB range, depending on the usage of the segment 0, it may be possible to attempt a discard request beyond the device size causing the hang. Exiting successfully and assign the discarded size (0 in this case) to range->len. Although the start and len values in the user input range are too small, a conservative strategy is adopted here to safely ignore them, which is equivalent to a no-op; it will not perform any trimming and will not throw an error. [1] task:segctord state:D stack:28968 pid:6093 tgid:6093 ppid:2 task_flags:0x200040 flags:0x00080000 Call Trace: rwbase_write_lock+0x3dd/0x750 kernel/locking/rwbase_rt.c:272 nilfs_transaction_lock+0x253/0x4c0 fs/nilfs2/segment.c:357 nilfs_segctor_thread_construct fs/nilfs2/segment.c:2569 [inline] nilfs_segctor_thread+0x6ec/0xe00 fs/nilfs2/segment.c:2684 [ryusuke: corrected part of the commit message about the consequences]
Severity ?
No CVSS data available.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 82e11e857be3ffd2a0a952c9db8aa2379e2b9e44 , < 6457d3ee41a4c15082ac49c5aa7fb933b4a043f3 (git)
Affected: 82e11e857be3ffd2a0a952c9db8aa2379e2b9e44 , < ba18e5f22f26aa4ef78bc3e81f639d1d4f3845e6 (git)
Affected: 82e11e857be3ffd2a0a952c9db8aa2379e2b9e44 , < 2438982f635e6cc2009be68ba2efb2998727d8d4 (git)
Affected: 82e11e857be3ffd2a0a952c9db8aa2379e2b9e44 , < df1e20796c9f3d541cca47fb72e4369ea135642d (git)
Affected: 82e11e857be3ffd2a0a952c9db8aa2379e2b9e44 , < ea2278657ad0d62596589fbe2caf995e189e65e7 (git)
Affected: 82e11e857be3ffd2a0a952c9db8aa2379e2b9e44 , < 4aa45f841413cca81882602b4042c53502f34cad (git)
Affected: 82e11e857be3ffd2a0a952c9db8aa2379e2b9e44 , < b8c5ee234bd54f1447c846101fdaef2cf70c2149 (git)
Affected: 82e11e857be3ffd2a0a952c9db8aa2379e2b9e44 , < ed527ef0c264e4bed6c7b2a158ddf516b17f5f66 (git)
Create a notification for this product.
    Linux Linux Affected: 3.15
Unaffected: 0 , < 3.15 (semver)
Unaffected: 5.10.251 , ≤ 5.10.* (semver)
Unaffected: 5.15.201 , ≤ 5.15.* (semver)
Unaffected: 6.1.164 , ≤ 6.1.* (semver)
Unaffected: 6.6.125 , ≤ 6.6.* (semver)
Unaffected: 6.12.72 , ≤ 6.12.* (semver)
Unaffected: 6.18.11 , ≤ 6.18.* (semver)
Unaffected: 6.19.1 , ≤ 6.19.* (semver)
Unaffected: 7.0-rc1 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/nilfs2/sufile.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "6457d3ee41a4c15082ac49c5aa7fb933b4a043f3",
              "status": "affected",
              "version": "82e11e857be3ffd2a0a952c9db8aa2379e2b9e44",
              "versionType": "git"
            },
            {
              "lessThan": "ba18e5f22f26aa4ef78bc3e81f639d1d4f3845e6",
              "status": "affected",
              "version": "82e11e857be3ffd2a0a952c9db8aa2379e2b9e44",
              "versionType": "git"
            },
            {
              "lessThan": "2438982f635e6cc2009be68ba2efb2998727d8d4",
              "status": "affected",
              "version": "82e11e857be3ffd2a0a952c9db8aa2379e2b9e44",
              "versionType": "git"
            },
            {
              "lessThan": "df1e20796c9f3d541cca47fb72e4369ea135642d",
              "status": "affected",
              "version": "82e11e857be3ffd2a0a952c9db8aa2379e2b9e44",
              "versionType": "git"
            },
            {
              "lessThan": "ea2278657ad0d62596589fbe2caf995e189e65e7",
              "status": "affected",
              "version": "82e11e857be3ffd2a0a952c9db8aa2379e2b9e44",
              "versionType": "git"
            },
            {
              "lessThan": "4aa45f841413cca81882602b4042c53502f34cad",
              "status": "affected",
              "version": "82e11e857be3ffd2a0a952c9db8aa2379e2b9e44",
              "versionType": "git"
            },
            {
              "lessThan": "b8c5ee234bd54f1447c846101fdaef2cf70c2149",
              "status": "affected",
              "version": "82e11e857be3ffd2a0a952c9db8aa2379e2b9e44",
              "versionType": "git"
            },
            {
              "lessThan": "ed527ef0c264e4bed6c7b2a158ddf516b17f5f66",
              "status": "affected",
              "version": "82e11e857be3ffd2a0a952c9db8aa2379e2b9e44",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/nilfs2/sufile.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "3.15"
            },
            {
              "lessThan": "3.15",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.251",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.201",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.164",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.125",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.72",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.11",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.19.*",
              "status": "unaffected",
              "version": "6.19.1",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.0-rc1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.251",
                  "versionStartIncluding": "3.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.201",
                  "versionStartIncluding": "3.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.164",
                  "versionStartIncluding": "3.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.125",
                  "versionStartIncluding": "3.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.72",
                  "versionStartIncluding": "3.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.11",
                  "versionStartIncluding": "3.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.19.1",
                  "versionStartIncluding": "3.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0-rc1",
                  "versionStartIncluding": "3.15",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnilfs2: Fix potential block overflow that cause system hang\n\nWhen a user executes the FITRIM command, an underflow can occur when\ncalculating nblocks if end_block is too small. Since nblocks is of\ntype sector_t, which is u64, a negative nblocks value will become a\nvery large positive integer. This ultimately leads to the block layer\nfunction __blkdev_issue_discard() taking an excessively long time to\nprocess the bio chain, and the ns_segctor_sem lock remains held for a\nlong period. This prevents other tasks from acquiring the ns_segctor_sem\nlock, resulting in the hang reported by syzbot in [1].\n\nIf the ending block is too small, typically if it is smaller than 4KiB\nrange, depending on the usage of the segment 0, it may be possible to\nattempt a discard request beyond the device size causing the hang.\n\nExiting successfully and assign the discarded size (0 in this case)\nto range-\u003elen.\n\nAlthough the start and len values in the user input range are too small,\na conservative strategy is adopted here to safely ignore them, which is\nequivalent to a no-op; it will not perform any trimming and will not\nthrow an error.\n\n[1]\ntask:segctord state:D stack:28968 pid:6093 tgid:6093  ppid:2 task_flags:0x200040 flags:0x00080000\nCall Trace:\n rwbase_write_lock+0x3dd/0x750 kernel/locking/rwbase_rt.c:272\n nilfs_transaction_lock+0x253/0x4c0 fs/nilfs2/segment.c:357\n nilfs_segctor_thread_construct fs/nilfs2/segment.c:2569 [inline]\n nilfs_segctor_thread+0x6ec/0xe00 fs/nilfs2/segment.c:2684\n\n[ryusuke: corrected part of the commit message about the consequences]"
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-02-23T03:16:22.003Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/6457d3ee41a4c15082ac49c5aa7fb933b4a043f3"
        },
        {
          "url": "https://git.kernel.org/stable/c/ba18e5f22f26aa4ef78bc3e81f639d1d4f3845e6"
        },
        {
          "url": "https://git.kernel.org/stable/c/2438982f635e6cc2009be68ba2efb2998727d8d4"
        },
        {
          "url": "https://git.kernel.org/stable/c/df1e20796c9f3d541cca47fb72e4369ea135642d"
        },
        {
          "url": "https://git.kernel.org/stable/c/ea2278657ad0d62596589fbe2caf995e189e65e7"
        },
        {
          "url": "https://git.kernel.org/stable/c/4aa45f841413cca81882602b4042c53502f34cad"
        },
        {
          "url": "https://git.kernel.org/stable/c/b8c5ee234bd54f1447c846101fdaef2cf70c2149"
        },
        {
          "url": "https://git.kernel.org/stable/c/ed527ef0c264e4bed6c7b2a158ddf516b17f5f66"
        }
      ],
      "title": "nilfs2: Fix potential block overflow that cause system hang",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-71237",
    "datePublished": "2026-02-18T14:53:22.436Z",
    "dateReserved": "2026-02-18T14:25:13.845Z",
    "dateUpdated": "2026-02-23T03:16:22.003Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-71237\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-02-18T16:22:30.517\",\"lastModified\":\"2026-02-23T04:16:00.063\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nnilfs2: Fix potential block overflow that cause system hang\\n\\nWhen a user executes the FITRIM command, an underflow can occur when\\ncalculating nblocks if end_block is too small. Since nblocks is of\\ntype sector_t, which is u64, a negative nblocks value will become a\\nvery large positive integer. This ultimately leads to the block layer\\nfunction __blkdev_issue_discard() taking an excessively long time to\\nprocess the bio chain, and the ns_segctor_sem lock remains held for a\\nlong period. This prevents other tasks from acquiring the ns_segctor_sem\\nlock, resulting in the hang reported by syzbot in [1].\\n\\nIf the ending block is too small, typically if it is smaller than 4KiB\\nrange, depending on the usage of the segment 0, it may be possible to\\nattempt a discard request beyond the device size causing the hang.\\n\\nExiting successfully and assign the discarded size (0 in this case)\\nto range-\u003elen.\\n\\nAlthough the start and len values in the user input range are too small,\\na conservative strategy is adopted here to safely ignore them, which is\\nequivalent to a no-op; it will not perform any trimming and will not\\nthrow an error.\\n\\n[1]\\ntask:segctord state:D stack:28968 pid:6093 tgid:6093  ppid:2 task_flags:0x200040 flags:0x00080000\\nCall Trace:\\n rwbase_write_lock+0x3dd/0x750 kernel/locking/rwbase_rt.c:272\\n nilfs_transaction_lock+0x253/0x4c0 fs/nilfs2/segment.c:357\\n nilfs_segctor_thread_construct fs/nilfs2/segment.c:2569 [inline]\\n nilfs_segctor_thread+0x6ec/0xe00 fs/nilfs2/segment.c:2684\\n\\n[ryusuke: corrected part of the commit message about the consequences]\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\\n\\nnilfs2: Corrige un posible desbordamiento de bloque que causa un cuelgue del sistema\\n\\nCuando un usuario ejecuta el comando FITRIM, puede ocurrir un subdesbordamiento al calcular nblocks si end_block es demasiado peque\u00f1o. Dado que nblocks es de tipo sector_t, que es u64, un valor negativo de nblocks se convertir\u00e1 en un entero positivo muy grande. Esto finalmente lleva a que la funci\u00f3n de la capa de bloques __blkdev_issue_discard() tarde un tiempo excesivamente largo en procesar la cadena bio, y el bloqueo ns_segctor_sem permanezca retenido durante un largo per\u00edodo. Esto impide que otras tareas adquieran el bloqueo ns_segctor_sem, lo que resulta en el cuelgue reportado por syzbot en [1].\\n\\nSi el bloque final es demasiado peque\u00f1o, t\u00edpicamente si es menor que el rango de 4KiB, dependiendo del uso del segmento 0, puede ser posible intentar una solicitud de descarte m\u00e1s all\u00e1 del tama\u00f1o del dispositivo, causando el cuelgue.\\n\\nSaliendo con \u00e9xito y asignando el tama\u00f1o descartado (0 en este caso) a range-\u0026gt;len.\\n\\nAunque los valores de inicio y longitud en el rango de entrada del usuario son demasiado peque\u00f1os, se adopta aqu\u00ed una estrategia conservadora para ignorarlos de forma segura, lo cual es equivalente a una no-op; no realizar\u00e1 ning\u00fan recorte y no lanzar\u00e1 un error.\\n\\n[1]\\ntarea:segctord estado:D pila:28968 pid:6093 tgid:6093 ppid:2 flags_de_tarea:0x200040 flags:0x00080000\\nTraza de Llamada:\\n rwbase_write_lock+0x3dd/0x750 kernel/locking/rwbase_rt.c:272\\n nilfs_transaction_lock+0x253/0x4c0 fs/nilfs2/segment.c:357\\n nilfs_segctor_thread_construct fs/nilfs2/segment.c:2569 [inline]\\n nilfs_segctor_thread+0x6ec/0xe00 fs/nilfs2/segment.c:2684\\n\\n[ryusuke: corregida parte del mensaje de commit sobre las consecuencias]\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/2438982f635e6cc2009be68ba2efb2998727d8d4\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/4aa45f841413cca81882602b4042c53502f34cad\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/6457d3ee41a4c15082ac49c5aa7fb933b4a043f3\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/b8c5ee234bd54f1447c846101fdaef2cf70c2149\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/ba18e5f22f26aa4ef78bc3e81f639d1d4f3845e6\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/df1e20796c9f3d541cca47fb72e4369ea135642d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/ea2278657ad0d62596589fbe2caf995e189e65e7\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/ed527ef0c264e4bed6c7b2a158ddf516b17f5f66\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

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…