GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2026-74270 (GCVE-0-2026-74270)

Vulnerability from cvelistv5 – Published: 2026-08-15 05:57 – Updated: 2026-08-17 05:45
VLAI
Title
handshake: Require admin permission for DONE command
Summary
In the Linux kernel, the following vulnerability has been resolved: handshake: Require admin permission for DONE command ACCEPT and DONE are the two downcalls of the handshake genl family, both intended for use by the trusted handshake agent (tlshd). ACCEPT already requires GENL_ADMIN_PERM; DONE has no privilege check at all. The fd-lookup in handshake_nl_done_doit() only confirms that some pending handshake request exists for the supplied sockfd; it does not authenticate the sender. An unprivileged process that guesses or observes a valid sockfd can therefore submit a DONE with HANDSHAKE_A_DONE_STATUS == 0, leaving the kernel consumer to proceed as if the handshake succeeded. A non-zero status on a forged DONE tears down a legitimate in-flight handshake before tlshd can report its real result.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 3b3009ea8abb713b022d94fba95ec270cf6e7eae , < 25fb53e43ec006ac69b9e825a7e8a11d63a6083e (git)
Affected: 3b3009ea8abb713b022d94fba95ec270cf6e7eae , < b6557f912509abe8e70223373dd7a44d1d4a0d6c (git)
Affected: 3b3009ea8abb713b022d94fba95ec270cf6e7eae , < 67cec2f1eb9e58719d622e92e2278ceda72dbd85 (git)
Affected: 3b3009ea8abb713b022d94fba95ec270cf6e7eae , < 4dafc411948469277b276724c3b2b4408c02c04c (git)
Affected: 3b3009ea8abb713b022d94fba95ec270cf6e7eae , < 81246a65303d9635266b1334490142caaf86a11f (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.4
Unaffected: 0 , < 6.4 (semver)
Unaffected: 6.6.145 , ≤ 6.6.* (semver)
Unaffected: 6.12.97 , ≤ 6.12.* (semver)
Unaffected: 6.18.40 , ≤ 6.18.* (semver)
Unaffected: 7.1.5 , ≤ 7.1.* (semver)
Unaffected: 7.2 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "Documentation/netlink/specs/handshake.yaml",
            "net/handshake/genl.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "25fb53e43ec006ac69b9e825a7e8a11d63a6083e",
              "status": "affected",
              "version": "3b3009ea8abb713b022d94fba95ec270cf6e7eae",
              "versionType": "git"
            },
            {
              "lessThan": "b6557f912509abe8e70223373dd7a44d1d4a0d6c",
              "status": "affected",
              "version": "3b3009ea8abb713b022d94fba95ec270cf6e7eae",
              "versionType": "git"
            },
            {
              "lessThan": "67cec2f1eb9e58719d622e92e2278ceda72dbd85",
              "status": "affected",
              "version": "3b3009ea8abb713b022d94fba95ec270cf6e7eae",
              "versionType": "git"
            },
            {
              "lessThan": "4dafc411948469277b276724c3b2b4408c02c04c",
              "status": "affected",
              "version": "3b3009ea8abb713b022d94fba95ec270cf6e7eae",
              "versionType": "git"
            },
            {
              "lessThan": "81246a65303d9635266b1334490142caaf86a11f",
              "status": "affected",
              "version": "3b3009ea8abb713b022d94fba95ec270cf6e7eae",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "Documentation/netlink/specs/handshake.yaml",
            "net/handshake/genl.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.4"
            },
            {
              "lessThan": "6.4",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.145",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.97",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.40",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.145",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.97",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.40",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.5",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nhandshake: Require admin permission for DONE command\n\nACCEPT and DONE are the two downcalls of the handshake genl\nfamily, both intended for use by the trusted handshake agent\n(tlshd). ACCEPT already requires GENL_ADMIN_PERM; DONE has\nno privilege check at all.\n\nThe fd-lookup in handshake_nl_done_doit() only confirms that\nsome pending handshake request exists for the supplied sockfd;\nit does not authenticate the sender. An unprivileged process\nthat guesses or observes a valid sockfd can therefore submit\na DONE with HANDSHAKE_A_DONE_STATUS == 0, leaving the kernel\nconsumer to proceed as if the handshake succeeded. A non-zero\nstatus on a forged DONE tears down a legitimate in-flight\nhandshake before tlshd can report its real result."
        }
      ],
      "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 - Exploitation requires sending a HANDSHAKE_CMD_DONE generic-netlink message via a local netlink socket to handshake_nl_done_doit(); although nfsd and nvmet-tcp are network-facing, the vulnerable control-plane downcall is not reachable from remote packets.\nAC:L - Once a process holds a sockfd for a socket with a pending handshake request, forging DONE with status 0 or a failure status is a single deterministic netlink operation; the commit describes sockfd guessing/observation as sufficient and no special timing beyond normal concurrency is required.\nPR:L - Before the fix, HANDSHAKE_CMD_DONE lacked GENL_ADMIN_PERM while ACCEPT required it, so any unprivileged local user with netlink access could invoke the handler without CAP_NET_ADMIN in the initial user namespace or any other elevated capability.\nUI:N - Exploitation does not require victim interaction such as opening files or mounting filesystems; the attacker sends a forged DONE netlink message directly to complete or abort an in-flight kernel handshake.\nS:U - Impact is confined to kernel TLS handshake state for local socket consumers (NFS RPC-over-TLS, NVMe-oF TCP TLS); it does not cross a VM, container, or IOMMU security boundary into a different authority.\nC:H - A forged DONE with HANDSHAKE_A_DONE_STATUS==0 makes kernel consumers proceed as if tlshd completed TLS successfully, bypassing X.509/PSK peer verification on NFS and NVMe-oF TCP sessions and undermining confidentiality of protected network storage traffic.\nI:H - The attacker can supply arbitrary HANDSHAKE_A_DONE_REMOTE_AUTH peer-identity values with a forged success, causing nfsd/nvmet to mark connections as TLS-authenticated and continue I/O under false security assumptions, corrupting integrity of access-control decisions.\nA:H - A forged DONE with non-zero status calls handshake_complete() with an error, tearing down legitimate in-flight handshakes before tlshd reports the real result and denying or disrupting TLS session establishment on NFS/NVMe-oF TCP services."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:45:16.772Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/25fb53e43ec006ac69b9e825a7e8a11d63a6083e"
        },
        {
          "url": "https://git.kernel.org/stable/c/b6557f912509abe8e70223373dd7a44d1d4a0d6c"
        },
        {
          "url": "https://git.kernel.org/stable/c/67cec2f1eb9e58719d622e92e2278ceda72dbd85"
        },
        {
          "url": "https://git.kernel.org/stable/c/4dafc411948469277b276724c3b2b4408c02c04c"
        },
        {
          "url": "https://git.kernel.org/stable/c/81246a65303d9635266b1334490142caaf86a11f"
        }
      ],
      "title": "handshake: Require admin permission for DONE command",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74270",
    "datePublished": "2026-08-15T05:57:44.195Z",
    "dateReserved": "2026-08-15T05:44:03.879Z",
    "dateUpdated": "2026-08-17T05:45:16.772Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-74270",
      "date": "2026-09-05",
      "epss": "0.00128",
      "percentile": "0.02789"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-74270\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-08-15T06:22:26.390\",\"lastModified\":\"2026-08-17T06:19:20.713\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nhandshake: Require admin permission for DONE command\\n\\nACCEPT and DONE are the two downcalls of the handshake genl\\nfamily, both intended for use by the trusted handshake agent\\n(tlshd). ACCEPT already requires GENL_ADMIN_PERM; DONE has\\nno privilege check at all.\\n\\nThe fd-lookup in handshake_nl_done_doit() only confirms that\\nsome pending handshake request exists for the supplied sockfd;\\nit does not authenticate the sender. An unprivileged process\\nthat guesses or observes a valid sockfd can therefore submit\\na DONE with HANDSHAKE_A_DONE_STATUS == 0, leaving the kernel\\nconsumer to proceed as if the handshake succeeded. A non-zero\\nstatus on a forged DONE tears down a legitimate in-flight\\nhandshake before tlshd can report its real result.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"Documentation/netlink/specs/handshake.yaml\",\"net/handshake/genl.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"3b3009ea8abb713b022d94fba95ec270cf6e7eae\",\"lessThan\":\"25fb53e43ec006ac69b9e825a7e8a11d63a6083e\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"3b3009ea8abb713b022d94fba95ec270cf6e7eae\",\"lessThan\":\"b6557f912509abe8e70223373dd7a44d1d4a0d6c\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"3b3009ea8abb713b022d94fba95ec270cf6e7eae\",\"lessThan\":\"67cec2f1eb9e58719d622e92e2278ceda72dbd85\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"3b3009ea8abb713b022d94fba95ec270cf6e7eae\",\"lessThan\":\"4dafc411948469277b276724c3b2b4408c02c04c\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"3b3009ea8abb713b022d94fba95ec270cf6e7eae\",\"lessThan\":\"81246a65303d9635266b1334490142caaf86a11f\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"Documentation/netlink/specs/handshake.yaml\",\"net/handshake/genl.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.4\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.4\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.145\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.97\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.40\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1.5\",\"lessThanOrEqual\":\"7.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/25fb53e43ec006ac69b9e825a7e8a11d63a6083e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/4dafc411948469277b276724c3b2b4408c02c04c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/67cec2f1eb9e58719d622e92e2278ceda72dbd85\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/81246a65303d9635266b1334490142caaf86a11f\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/b6557f912509abe8e70223373dd7a44d1d4a0d6c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Important",
      "current_release_date": "2026-08-19T12:44:15+00:00",
      "cve": "CVE-2026-74270",
      "id": "CVE-2026-74270",
      "initial_release_date": "2026-08-15T00:00:00+00:00",
      "product_status:known_affected": "184",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: handshake: Require admin permission for DONE command",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74270.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…

Loading…