CVE-2021-47427 (GCVE-0-2021-47427)
Vulnerability from cvelistv5
Published
2024-05-21 15:04
Modified
2026-08-05 08:47
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: scsi: iscsi: Fix iscsi_task use after free Commit d39df158518c ("scsi: iscsi: Have abort handler get ref to conn") added iscsi_get_conn()/iscsi_put_conn() calls during abort handling but then also changed the handling of the case where we detect an already completed task where we now end up doing a goto to the common put/cleanup code. This results in a iscsi_task use after free, because the common cleanup code will do a put on the iscsi_task. This reverts the goto and moves the iscsi_get_conn() to after we've checked if the iscsi_task is valid.
Impacted products
Vendor Product Version
Linux Linux Version: d39df158518ccc3bf24ee18082b5e100c8f014aa
Version: d39df158518ccc3bf24ee18082b5e100c8f014aa
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-04T05:39:59.381Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/1642f51ac0d4f2b55d5748094c49ff8f7191b93c"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/258aad75c62146453d03028a44f2f1590d58e1f6"
          }
        ],
        "title": "CVE Program Container"
      },
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2021-47427",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T15:37:44.486165Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-11T17:33:37.669Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/scsi/libiscsi.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "1642f51ac0d4f2b55d5748094c49ff8f7191b93c",
              "status": "affected",
              "version": "d39df158518ccc3bf24ee18082b5e100c8f014aa",
              "versionType": "git"
            },
            {
              "lessThan": "258aad75c62146453d03028a44f2f1590d58e1f6",
              "status": "affected",
              "version": "d39df158518ccc3bf24ee18082b5e100c8f014aa",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/scsi/libiscsi.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.14.*",
              "status": "unaffected",
              "version": "5.14.12",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "5.15",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.14.12",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: iscsi: Fix iscsi_task use after free\n\nCommit d39df158518c (\"scsi: iscsi: Have abort handler get ref to conn\")\nadded iscsi_get_conn()/iscsi_put_conn() calls during abort handling but\nthen also changed the handling of the case where we detect an already\ncompleted task where we now end up doing a goto to the common put/cleanup\ncode. This results in a iscsi_task use after free, because the common\ncleanup code will do a put on the iscsi_task.\n\nThis reverts the goto and moves the iscsi_get_conn() to after we\u0027ve checked\nif the iscsi_task is valid."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 9.8,
            "baseSeverity": "CRITICAL",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - This is the iSCSI initiator path; a remote target peer can induce SCSI command timeouts and then send completions over TCP so the abort handler hits the buggy early-completion path, making the flaw reachable via the network protocol.\nAC:L - The attacker controlling the iSCSI target controls both sides of the race by withholding responses to force EH abort and then completing the task while abort runs, so success does not depend on conditions outside their influence.\nPR:N - A malicious or compromised iSCSI target needs no privileges on the victim host; once a logged-in session exists (typical SAN/cloud block deployment), the peer can trigger the UAF without local credentials.\nUI:N - No additional user action is required beyond an already-established iSCSI session with in-flight I/O, which is normal for persistent SAN and iSCSI-rooted systems.\nS:U - The UAF corrupts initiator kernel memory in the same host kernel authority and does not cross a VM, IOMMU, or other security boundary.\nC:H - Use-after-free of iscsi_task enables reclaim and controlled reuse of the freed object, which can be leveraged for arbitrary kernel memory disclosure.\nI:H - The same iscsi_task UAF enables heap spray and corruption of adjacent kernel objects, providing write/control-flow primitives suitable for integrity compromise and code execution.\nA:H - The extra put can free the task while still in use or take a NULL task path, causing kernel oops/panic and full availability loss."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:47:46.574Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/1642f51ac0d4f2b55d5748094c49ff8f7191b93c"
        },
        {
          "url": "https://git.kernel.org/stable/c/258aad75c62146453d03028a44f2f1590d58e1f6"
        }
      ],
      "title": "scsi: iscsi: Fix iscsi_task use after free",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2021-47427",
    "datePublished": "2024-05-21T15:04:13.244Z",
    "dateReserved": "2024-05-21T14:58:30.828Z",
    "dateUpdated": "2026-08-05T08:47:46.574Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/1642f51ac0d4f2b55d5748094c49ff8f7191b93c\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/258aad75c62146453d03028a44f2f1590d58e1f6\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-04T05:39:59.381Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2021-47427\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-09-10T15:37:44.486165Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-11T12:42:17.732Z\"}}], \"cna\": {\"title\": \"scsi: iscsi: Fix iscsi_task use after free\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.1\", \"baseScore\": 9.8, \"baseSeverity\": \"CRITICAL\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:N - This is the iSCSI initiator path; a remote target peer can induce SCSI command timeouts and then send completions over TCP so the abort handler hits the buggy early-completion path, making the flaw reachable via the network protocol.\\nAC:L - The attacker controlling the iSCSI target controls both sides of the race by withholding responses to force EH abort and then completing the task while abort runs, so success does not depend on conditions outside their influence.\\nPR:N - A malicious or compromised iSCSI target needs no privileges on the victim host; once a logged-in session exists (typical SAN/cloud block deployment), the peer can trigger the UAF without local credentials.\\nUI:N - No additional user action is required beyond an already-established iSCSI session with in-flight I/O, which is normal for persistent SAN and iSCSI-rooted systems.\\nS:U - The UAF corrupts initiator kernel memory in the same host kernel authority and does not cross a VM, IOMMU, or other security boundary.\\nC:H - Use-after-free of iscsi_task enables reclaim and controlled reuse of the freed object, which can be leveraged for arbitrary kernel memory disclosure.\\nI:H - The same iscsi_task UAF enables heap spray and corruption of adjacent kernel objects, providing write/control-flow primitives suitable for integrity compromise and code execution.\\nA:H - The extra put can free the task while still in use or take a NULL task path, causing kernel oops/panic and full availability loss.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"d39df158518ccc3bf24ee18082b5e100c8f014aa\", \"lessThan\": \"1642f51ac0d4f2b55d5748094c49ff8f7191b93c\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"d39df158518ccc3bf24ee18082b5e100c8f014aa\", \"lessThan\": \"258aad75c62146453d03028a44f2f1590d58e1f6\", \"versionType\": \"git\"}], \"programFiles\": [\"drivers/scsi/libiscsi.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"5.14\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.14\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.14.12\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.14.*\"}, {\"status\": \"unaffected\", \"version\": \"5.15\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"drivers/scsi/libiscsi.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/1642f51ac0d4f2b55d5748094c49ff8f7191b93c\"}, {\"url\": \"https://git.kernel.org/stable/c/258aad75c62146453d03028a44f2f1590d58e1f6\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nscsi: iscsi: Fix iscsi_task use after free\\n\\nCommit d39df158518c (\\\"scsi: iscsi: Have abort handler get ref to conn\\\")\\nadded iscsi_get_conn()/iscsi_put_conn() calls during abort handling but\\nthen also changed the handling of the case where we detect an already\\ncompleted task where we now end up doing a goto to the common put/cleanup\\ncode. This results in a iscsi_task use after free, because the common\\ncleanup code will do a put on the iscsi_task.\\n\\nThis reverts the goto and moves the iscsi_get_conn() to after we\u0027ve checked\\nif the iscsi_task is valid.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.14.12\", \"versionStartIncluding\": \"5.14\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15\", \"versionStartIncluding\": \"5.14\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T08:47:46.574Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2021-47427\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T08:47:46.574Z\", \"dateReserved\": \"2024-05-21T14:58:30.828Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-05-21T15:04:13.244Z\", \"assignerShortName\": \"Linux\"}",
      "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…