CVE-2024-56624 (GCVE-0-2024-56624)

Vulnerability from cvelistv5 – Published: 2024-12-27 14:51 – Updated: 2026-08-05 11:45
VLAI
Title
iommufd: Fix out_fput in iommufd_fault_alloc()
Summary
In the Linux kernel, the following vulnerability has been resolved: iommufd: Fix out_fput in iommufd_fault_alloc() As fput() calls the file->f_op->release op, where fault obj and ictx are getting released, there is no need to release these two after fput() one more time, which would result in imbalanced refcounts: refcount_t: decrement hit 0; leaking memory. WARNING: CPU: 48 PID: 2369 at lib/refcount.c:31 refcount_warn_saturate+0x60/0x230 Call trace: refcount_warn_saturate+0x60/0x230 (P) refcount_warn_saturate+0x60/0x230 (L) iommufd_fault_fops_release+0x9c/0xe0 [iommufd] ... VFS: Close: file count is 0 (f_op=iommufd_fops [iommufd]) WARNING: CPU: 48 PID: 2369 at fs/open.c:1507 filp_flush+0x3c/0xf0 Call trace: filp_flush+0x3c/0xf0 (P) filp_flush+0x3c/0xf0 (L) __arm64_sys_close+0x34/0x98 ... imbalanced put on file reference count WARNING: CPU: 48 PID: 2369 at fs/file.c:74 __file_ref_put+0x100/0x138 Call trace: __file_ref_put+0x100/0x138 (P) __file_ref_put+0x100/0x138 (L) __fput_sync+0x4c/0xd0 Drop those two lines to fix the warnings above.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 07838f7fd529c8a6de44b601d4b7057e6c8d36ed , < 2b3f30c8edbf9a122ce01f13f0f41fbca5f1d41d (git)
Affected: 07838f7fd529c8a6de44b601d4b7057e6c8d36ed , < af7f4780514f850322b2959032ecaa96e4b26472 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.11
Unaffected: 0 , < 6.11 (semver)
Unaffected: 6.12.5 , ≤ 6.12.* (semver)
Unaffected: 6.13 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/iommu/iommufd/fault.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "2b3f30c8edbf9a122ce01f13f0f41fbca5f1d41d",
              "status": "affected",
              "version": "07838f7fd529c8a6de44b601d4b7057e6c8d36ed",
              "versionType": "git"
            },
            {
              "lessThan": "af7f4780514f850322b2959032ecaa96e4b26472",
              "status": "affected",
              "version": "07838f7fd529c8a6de44b601d4b7057e6c8d36ed",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/iommu/iommufd/fault.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.11"
            },
            {
              "lessThan": "6.11",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.13",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.5",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.13",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\niommufd: Fix out_fput in iommufd_fault_alloc()\n\nAs fput() calls the file-\u003ef_op-\u003erelease op, where fault obj and ictx are\ngetting released, there is no need to release these two after fput() one\nmore time, which would result in imbalanced refcounts:\n  refcount_t: decrement hit 0; leaking memory.\n  WARNING: CPU: 48 PID: 2369 at lib/refcount.c:31 refcount_warn_saturate+0x60/0x230\n  Call trace:\n   refcount_warn_saturate+0x60/0x230 (P)\n   refcount_warn_saturate+0x60/0x230 (L)\n   iommufd_fault_fops_release+0x9c/0xe0 [iommufd]\n  ...\n  VFS: Close: file count is 0 (f_op=iommufd_fops [iommufd])\n  WARNING: CPU: 48 PID: 2369 at fs/open.c:1507 filp_flush+0x3c/0xf0\n  Call trace:\n   filp_flush+0x3c/0xf0 (P)\n   filp_flush+0x3c/0xf0 (L)\n   __arm64_sys_close+0x34/0x98\n  ...\n  imbalanced put on file reference count\n  WARNING: CPU: 48 PID: 2369 at fs/file.c:74 __file_ref_put+0x100/0x138\n  Call trace:\n   __file_ref_put+0x100/0x138 (P)\n   __file_ref_put+0x100/0x138 (L)\n   __fput_sync+0x4c/0xd0\n\nDrop those two lines to fix the warnings above."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - Triggered via the IOMMU_FAULT_QUEUE_ALLOC ioctl on the local device file /dev/iommu (or /dev/vfio/vfio); no network reachability.\nAC:L - The caller reliably forces the error path (e.g. exhausting RLIMIT_NOFILE so get_unused_fd_flags fails, or passing a bad user pointer to fail iommufd_ucmd_respond); no uncontrolled race or memory-layout precondition.\nPR:L - Only a basic unprivileged local user with access to the iommufd/vfio device node is needed (/dev/vfio/vfio is mode 0666 with CONFIG_IOMMUFD_VFIO_CONTAINER); no capability or root required, and no device must be attached.\nUI:N - The ioctl is issued directly by the attacker; no action by any other user is required.\nS:U - The corruption stays within the kernel\u0027s own security authority; it is a refcount/UAF bug, not an IOMMU-translation or VM boundary bypass.\nC:H - The double put underflows a struct file refcount and the fault object is freed while still referenced, a use-after-free whose freed-object contents the attacker can control to read arbitrary kernel memory.\nI:H - The use-after-free / refcount underflow on a struct file enables heap grooming and arbitrary-write primitives, potentially leading to privilege escalation.\nA:H - The imbalanced refcounts cause premature frees and warnings that reliably lead to kernel oops/panic on any triggering invocation."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:45:30.290Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/2b3f30c8edbf9a122ce01f13f0f41fbca5f1d41d"
        },
        {
          "url": "https://git.kernel.org/stable/c/af7f4780514f850322b2959032ecaa96e4b26472"
        }
      ],
      "title": "iommufd: Fix out_fput in iommufd_fault_alloc()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-56624",
    "datePublished": "2024-12-27T14:51:27.318Z",
    "dateReserved": "2024-12-27T14:03:06.017Z",
    "dateUpdated": "2026-08-05T11:45:30.290Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2024-56624",
      "date": "2026-09-21",
      "epss": "0.00187",
      "percentile": "0.08537"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/iommu/iommufd/fault.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "2b3f30c8edbf9a122ce01f13f0f41fbca5f1d41d",
                    "status": "affected",
                    "version": "07838f7fd529c8a6de44b601d4b7057e6c8d36ed",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "af7f4780514f850322b2959032ecaa96e4b26472",
                    "status": "affected",
                    "version": "07838f7fd529c8a6de44b601d4b7057e6c8d36ed",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/iommu/iommufd/fault.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.11"
                  },
                  {
                    "lessThan": "6.11",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.5",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "6.13",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "configurations": [
          {
            "nodes": [
              {
                "cpeMatch": [
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "80D95899-614A-43BE-AD21-BA14E811ACC4",
                    "versionEndExcluding": "6.12.5",
                    "versionStartIncluding": "6.11",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:6.13:rc1:*:*:*:*:*:*",
                    "matchCriteriaId": "62567B3C-6CEE-46D0-BC2E-B3717FBF7D13",
                    "vulnerable": true
                  }
                ],
                "negate": false,
                "operator": "OR"
              }
            ]
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\niommufd: Fix out_fput in iommufd_fault_alloc()\n\nAs fput() calls the file-\u003ef_op-\u003erelease op, where fault obj and ictx are\ngetting released, there is no need to release these two after fput() one\nmore time, which would result in imbalanced refcounts:\n  refcount_t: decrement hit 0; leaking memory.\n  WARNING: CPU: 48 PID: 2369 at lib/refcount.c:31 refcount_warn_saturate+0x60/0x230\n  Call trace:\n   refcount_warn_saturate+0x60/0x230 (P)\n   refcount_warn_saturate+0x60/0x230 (L)\n   iommufd_fault_fops_release+0x9c/0xe0 [iommufd]\n  ...\n  VFS: Close: file count is 0 (f_op=iommufd_fops [iommufd])\n  WARNING: CPU: 48 PID: 2369 at fs/open.c:1507 filp_flush+0x3c/0xf0\n  Call trace:\n   filp_flush+0x3c/0xf0 (P)\n   filp_flush+0x3c/0xf0 (L)\n   __arm64_sys_close+0x34/0x98\n  ...\n  imbalanced put on file reference count\n  WARNING: CPU: 48 PID: 2369 at fs/file.c:74 __file_ref_put+0x100/0x138\n  Call trace:\n   __file_ref_put+0x100/0x138 (P)\n   __file_ref_put+0x100/0x138 (L)\n   __fput_sync+0x4c/0xd0\n\nDrop those two lines to fix the warnings above."
          },
          {
            "lang": "es",
            "value": "En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: iommufd: Arreglar out_fput en iommufd_fault_alloc() Como fput() llama a la operaci\u00f3n file-\u0026gt;f_op-\u0026gt;release, donde se liberan los objetos de falla y ictx, no hay necesidad de liberar estos dos despu\u00e9s de fput() una vez m\u00e1s, lo que dar\u00eda como resultado recuentos de referencias desequilibrados: refcount_t: el decremento llega a 0; p\u00e9rdida de memoria. ADVERTENCIA: CPU: 48 PID: 2369 en lib/refcount.c:31 refcount_warn_saturate+0x60/0x230 Rastreo de llamadas: refcount_warn_saturate+0x60/0x230 (P) refcount_warn_saturate+0x60/0x230 (L) iommufd_fault_fops_release+0x9c/0xe0 [iommufd] ... VFS: Cerrar: el recuento de archivos es 0 (f_op=iommufd_fops [iommufd]) ADVERTENCIA: CPU: 48 PID: 2369 en fs/open.c:1507 filp_flush+0x3c/0xf0 Rastreo de llamadas: filp_flush+0x3c/0xf0 (P) filp_flush+0x3c/0xf0 (L) __arm64_sys_close+0x34/0x98 ... desequilibrado en el recuento de referencias de archivo ADVERTENCIA: CPU: 48 PID: 2369 en fs/file.c:74 __file_ref_put+0x100/0x138 Rastreo de llamadas: __file_ref_put+0x100/0x138 (P) __file_ref_put+0x100/0x138 (L) __fput_sync+0x4c/0xd0 Omita esas dos l\u00edneas para corregir las advertencias anteriores."
          }
        ],
        "id": "CVE-2024-56624",
        "lastModified": "2026-08-04T11:22:14.573",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            },
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 5.5,
                "baseSeverity": "MEDIUM",
                "confidentialityImpact": "NONE",
                "integrityImpact": "NONE",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 3.6,
              "source": "nvd@nist.gov",
              "type": "Primary"
            }
          ]
        },
        "published": "2024-12-27T15:15:21.933",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/2b3f30c8edbf9a122ce01f13f0f41fbca5f1d41d"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/af7f4780514f850322b2959032ecaa96e4b26472"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Modified",
        "weaknesses": [
          {
            "description": [
              {
                "lang": "en",
                "value": "CWE-401"
              }
            ],
            "source": "nvd@nist.gov",
            "type": "Primary"
          }
        ]
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Low",
      "current_release_date": "2026-08-04T22:39:26+00:00",
      "cve": "CVE-2024-56624",
      "id": "CVE-2024-56624",
      "initial_release_date": "2024-12-27T00:00:00+00:00",
      "product_status:known_affected": "108",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: iommufd: Fix out_fput in iommufd_fault_alloc()",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2024/cve-2024-56624.json",
      "version": "3"
    }
  }
}



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…

Detection rules are retrieved from Rulezet.

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…