GHSA-GG3G-2Q75-6V65

Vulnerability from github – Published: 2025-12-24 15:30 – Updated: 2026-08-04 12:34
VLAI
Details

In the Linux kernel, the following vulnerability has been resolved:

fs/ntfs3: Fix memory leak if ntfs_read_mft failed

Label ATTR_ROOT in ntfs_read_mft() sets is_root = true and ni->ni_flags |= NI_FLAG_DIR, then next attr will goto label ATTR_ALLOC and alloc ni->dir.alloc_run. However two states are not always consistent and can make memory leak.

1) attr_name in ATTR_ROOT does not fit the condition it will set is_root = true but NI_FLAG_DIR is not set. 2) next attr_name in ATTR_ALLOC fits the condition and alloc ni->dir.alloc_run 3) in cleanup function ni_clear(), when NI_FLAG_DIR is set, it frees ni->dir.alloc_run, otherwise it frees ni->file.run 4) because NI_FLAG_DIR is not set in this case, ni->dir.alloc_run is leaked as kmemleak reported:

unreferenced object 0xffff888003bc5480 (size 64): backtrace: [<000000003d42e6b0>] __kmalloc_node+0x4e/0x1c0 [<00000000d8e19b8a>] kvmalloc_node+0x39/0x1f0 [<00000000fc3eb5b8>] run_add_entry+0x18a/0xa40 [ntfs3] [<0000000011c9f978>] run_unpack+0x75d/0x8e0 [ntfs3] [<00000000e7cf1819>] run_unpack_ex+0xbc/0x500 [ntfs3] [<00000000bbf0a43d>] ntfs_iget5+0xb25/0x2dd0 [ntfs3] [<00000000a6e50693>] ntfs_fill_super+0x218d/0x3580 [ntfs3] [<00000000b9170608>] get_tree_bdev+0x3fb/0x710 [<000000004833798a>] vfs_get_tree+0x8e/0x280 [<000000006e20b8e6>] path_mount+0xf3c/0x1930 [<000000007bf15a5f>] do_mount+0xf3/0x110 ...

Fix this by always setting is_root and NI_FLAG_DIR together.

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2023-54077"
  ],
  "database_specific": {
    "cwe_ids": [],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2025-12-24T13:16:09Z",
    "severity": "HIGH"
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nfs/ntfs3: Fix memory leak if ntfs_read_mft failed\n\nLabel ATTR_ROOT in ntfs_read_mft() sets is_root = true and\nni-\u003eni_flags |= NI_FLAG_DIR, then next attr will goto label ATTR_ALLOC\nand alloc ni-\u003edir.alloc_run. However two states are not always\nconsistent and can make memory leak.\n\n 1) attr_name in ATTR_ROOT does not fit the condition it will set\n is_root = true but NI_FLAG_DIR is not set.\n 2) next attr_name in ATTR_ALLOC fits the condition and alloc\n ni-\u003edir.alloc_run\n 3) in cleanup function ni_clear(), when NI_FLAG_DIR is set, it frees\n ni-\u003edir.alloc_run, otherwise it frees ni-\u003efile.run\n 4) because NI_FLAG_DIR is not set in this case, ni-\u003edir.alloc_run is\n leaked as kmemleak reported:\n\nunreferenced object 0xffff888003bc5480 (size 64):\n  backtrace:\n    [\u003c000000003d42e6b0\u003e] __kmalloc_node+0x4e/0x1c0\n    [\u003c00000000d8e19b8a\u003e] kvmalloc_node+0x39/0x1f0\n    [\u003c00000000fc3eb5b8\u003e] run_add_entry+0x18a/0xa40 [ntfs3]\n    [\u003c0000000011c9f978\u003e] run_unpack+0x75d/0x8e0 [ntfs3]\n    [\u003c00000000e7cf1819\u003e] run_unpack_ex+0xbc/0x500 [ntfs3]\n    [\u003c00000000bbf0a43d\u003e] ntfs_iget5+0xb25/0x2dd0 [ntfs3]\n    [\u003c00000000a6e50693\u003e] ntfs_fill_super+0x218d/0x3580 [ntfs3]\n    [\u003c00000000b9170608\u003e] get_tree_bdev+0x3fb/0x710\n    [\u003c000000004833798a\u003e] vfs_get_tree+0x8e/0x280\n    [\u003c000000006e20b8e6\u003e] path_mount+0xf3c/0x1930\n    [\u003c000000007bf15a5f\u003e] do_mount+0xf3/0x110\n    ...\n\nFix this by always setting is_root and NI_FLAG_DIR together.",
  "id": "GHSA-gg3g-2q75-6v65",
  "modified": "2026-08-04T12:34:44Z",
  "published": "2025-12-24T15:30:37Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2023-54077"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/1bc6bb657dfb0ab3b94ef6d477ca241bf7b6ec06"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/3030f2b9b3329db3948c1a145a5493ca6f617d50"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/3bb0d3eb475f01744ce6d6e998dfbd80220852a1"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/93bf79f989688852deade1550fb478b0a4d8daa8"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/bfa434c60157c9793e9b12c9b68ade02aff9f803"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
      "type": "CVSS_V3"
    }
  ]
}



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…

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…