CVE-2026-90284 (GCVE-0-2026-90284)
Vulnerability from cvelistv5
Published
2026-09-17 16:08
Modified
2026-10-19 09:01
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: firmware_loader: do not queue completed sysfs fallback requests fw_load_sysfs_fallback() calls device_add() before adding the fw_priv to pending_fw_head. device_add() publishes the fallback loading interface, so a userspace helper which discovers the device by scanning sysfs can write 0 to the loading attribute and complete the request before it is queued as pending. In that interleaving firmware_loading_store() calls fw_state_done() while pending_list still points to itself, so it cannot remove an entry from pending_fw_head. The subsequent unconditional list_add() then queues an already-completed fw_priv. Once the request is released, pending_fw_head can retain a pointer to freed memory and the next fallback request can fault while validating the list. Only in-flight fallback requests need suspend or reboot abort handling. If the request is already DONE after device_add(), return success from the fallback path without sending another uevent, waiting again, or queueing it as pending. This preserves the invariant that pending_fw_head contains only active fallback requests.
Impacted products
Vendor Product Version
Linux Linux Version: ecb739cf15a9bae040ce6b60209b78b92512d120
Version: 75d95e2e39b27f733f21e6668af1c9893a97de5e
Version: 75d95e2e39b27f733f21e6668af1c9893a97de5e
Version: 75d95e2e39b27f733f21e6668af1c9893a97de5e
Version: 75d95e2e39b27f733f21e6668af1c9893a97de5e
Version: 75d95e2e39b27f733f21e6668af1c9893a97de5e
Version: 75d95e2e39b27f733f21e6668af1c9893a97de5e
Version: 75d95e2e39b27f733f21e6668af1c9893a97de5e
Version: 67cf0fbcac0d42d4d4686cddc1e39f465bbfec37
Version: d09639528b66b5c7c20dc8f7fb8928aacabd40bb
Version: c14a54675db7131791402fa22fb0fa6da1f5fb66
Version: 5.10.58   ≤
Version: 4.19.203   ≤
Version: 5.4.140   ≤
Version: 5.13.10   ≤
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/base/firmware_loader/fallback.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "c8b97c5130f27b64fa2cfe1aa4bebb13f724c6c7",
              "status": "affected",
              "version": "ecb739cf15a9bae040ce6b60209b78b92512d120",
              "versionType": "git"
            },
            {
              "lessThan": "93a2385730540105df8524447dcc11309ad280f9",
              "status": "affected",
              "version": "75d95e2e39b27f733f21e6668af1c9893a97de5e",
              "versionType": "git"
            },
            {
              "lessThan": "ea33fac0df7fe7b49a4b27acb83e227b82317d1d",
              "status": "affected",
              "version": "75d95e2e39b27f733f21e6668af1c9893a97de5e",
              "versionType": "git"
            },
            {
              "lessThan": "5a250bff75a446374c05622973b18b4ab662b504",
              "status": "affected",
              "version": "75d95e2e39b27f733f21e6668af1c9893a97de5e",
              "versionType": "git"
            },
            {
              "lessThan": "85aeb8fc61839098ae0942ccba86e669c08e75d4",
              "status": "affected",
              "version": "75d95e2e39b27f733f21e6668af1c9893a97de5e",
              "versionType": "git"
            },
            {
              "lessThan": "6eaa632d0ed7bbb84f9cb670e5ec4e2cecf4cc7b",
              "status": "affected",
              "version": "75d95e2e39b27f733f21e6668af1c9893a97de5e",
              "versionType": "git"
            },
            {
              "lessThan": "fb4824880b0dba0e7b3a497c46c642f979630392",
              "status": "affected",
              "version": "75d95e2e39b27f733f21e6668af1c9893a97de5e",
              "versionType": "git"
            },
            {
              "lessThan": "b48373c901951fad1a26bd7c33ad91172b3945b5",
              "status": "affected",
              "version": "75d95e2e39b27f733f21e6668af1c9893a97de5e",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "67cf0fbcac0d42d4d4686cddc1e39f465bbfec37",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "d09639528b66b5c7c20dc8f7fb8928aacabd40bb",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "c14a54675db7131791402fa22fb0fa6da1f5fb66",
              "versionType": "git"
            },
            {
              "lessThan": "5.10.270",
              "status": "affected",
              "version": "5.10.58",
              "versionType": "semver"
            },
            {
              "lessThan": "4.20",
              "status": "affected",
              "version": "4.19.203",
              "versionType": "semver"
            },
            {
              "lessThan": "5.5",
              "status": "affected",
              "version": "5.4.140",
              "versionType": "semver"
            },
            {
              "lessThan": "5.14",
              "status": "affected",
              "version": "5.13.10",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/base/firmware_loader/fallback.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.14"
            },
            {
              "lessThan": "5.14",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.270",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.221",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.188",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.157",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.110",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.52",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.6",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.270",
                  "versionStartIncluding": "5.10.58",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.221",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.188",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.157",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.110",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.52",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.6",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "4.19.203",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.4.140",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.13.10",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nfirmware_loader: do not queue completed sysfs fallback requests\n\nfw_load_sysfs_fallback() calls device_add() before adding the fw_priv to\npending_fw_head. device_add() publishes the fallback loading interface, so\na userspace helper which discovers the device by scanning sysfs can write 0\nto the loading attribute and complete the request before it is queued as\npending.\n\nIn that interleaving firmware_loading_store() calls fw_state_done() while\npending_list still points to itself, so it cannot remove an entry from\npending_fw_head. The subsequent unconditional list_add() then queues an\nalready-completed fw_priv. Once the request is released, pending_fw_head\ncan retain a pointer to freed memory and the next fallback request can\nfault while validating the list.\n\nOnly in-flight fallback requests need suspend or reboot abort handling. If\nthe request is already DONE after device_add(), return success from the\nfallback path without sending another uevent, waiting again, or queueing it\nas pending. This preserves the invariant that pending_fw_head contains only\nactive fallback requests."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-19T09:01:02.825Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/c8b97c5130f27b64fa2cfe1aa4bebb13f724c6c7"
        },
        {
          "url": "https://git.kernel.org/stable/c/93a2385730540105df8524447dcc11309ad280f9"
        },
        {
          "url": "https://git.kernel.org/stable/c/ea33fac0df7fe7b49a4b27acb83e227b82317d1d"
        },
        {
          "url": "https://git.kernel.org/stable/c/5a250bff75a446374c05622973b18b4ab662b504"
        },
        {
          "url": "https://git.kernel.org/stable/c/85aeb8fc61839098ae0942ccba86e669c08e75d4"
        },
        {
          "url": "https://git.kernel.org/stable/c/6eaa632d0ed7bbb84f9cb670e5ec4e2cecf4cc7b"
        },
        {
          "url": "https://git.kernel.org/stable/c/fb4824880b0dba0e7b3a497c46c642f979630392"
        },
        {
          "url": "https://git.kernel.org/stable/c/b48373c901951fad1a26bd7c33ad91172b3945b5"
        }
      ],
      "title": "firmware_loader: do not queue completed sysfs fallback requests",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-90284",
    "datePublished": "2026-09-17T16:08:13.993Z",
    "dateReserved": "2026-09-11T19:38:34.797Z",
    "dateUpdated": "2026-10-19T09:01:02.825Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


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 seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…