CVE-2026-74750 (GCVE-0-2026-74750)
Vulnerability from cvelistv5
Published
2026-08-26 14:36
Modified
2026-08-27 05:01
Summary
In the Linux kernel, the following vulnerability has been resolved: ovpn: defer key slot crypto freeing to workqueue Key slots are released through a kref and the existing release path frees the AEAD transforms from an RCU callback. That is not safe for all crypto implementations: crypto_free_aead can sleep, for example when an async or hardware implementation has teardown work to complete. Use queue_rcu_work for key-slot release. This keeps the RCU grace period needed by lockless key-slot readers, but runs the actual crypto teardown from workqueue context where sleeping is allowed. Once the rcu_work callback runs, pre-existing RCU readers are gone, and the final kref put already proves that no transform user remains, so the worker can release the AEAD transforms and free the slot directly. The previous patch drains ovpn_wq during module exit, so queued key-slot teardown work cannot outlive module text.
Impacted products
Vendor Product Version
Linux Linux Version: 8534731dbf2d52a539b94defd06d2a8d3514aacb
Version: 8534731dbf2d52a539b94defd06d2a8d3514aacb
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ovpn/crypto.c",
            "drivers/net/ovpn/crypto.h",
            "drivers/net/ovpn/crypto_aead.c",
            "drivers/net/ovpn/crypto_aead.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "0f77ed5ee91946ea63e29f2e0ff9dc9e722d8da3",
              "status": "affected",
              "version": "8534731dbf2d52a539b94defd06d2a8d3514aacb",
              "versionType": "git"
            },
            {
              "lessThan": "2da3dfa1ddfe55a065f484750c83660e3bd4ac00",
              "status": "affected",
              "version": "8534731dbf2d52a539b94defd06d2a8d3514aacb",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ovpn/crypto.c",
            "drivers/net/ovpn/crypto.h",
            "drivers/net/ovpn/crypto_aead.c",
            "drivers/net/ovpn/crypto_aead.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.16"
            },
            {
              "lessThan": "6.16",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.10",
              "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": "7.1.10",
                  "versionStartIncluding": "6.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.16",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\novpn: defer key slot crypto freeing to workqueue\n\nKey slots are released through a kref and the existing release path\nfrees the AEAD transforms from an RCU callback. That is not safe for all\ncrypto implementations: crypto_free_aead can sleep, for example when an\nasync or hardware implementation has teardown work to complete.\n\nUse queue_rcu_work for key-slot release. This keeps the RCU grace period\nneeded by lockless key-slot readers, but runs the actual crypto teardown\nfrom workqueue context where sleeping is allowed. Once the rcu_work\ncallback runs, pre-existing RCU readers are gone, and the final kref put\nalready proves that no transform user remains, so the worker can release\nthe AEAD transforms and free the slot directly.\n\nThe previous patch drains ovpn_wq during module exit, so queued key-slot\nteardown work cannot outlive module text."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.5,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - Key-slot teardown runs from peer removal paths reachable over the network: remote TCP RST/FIN closes ovpn_tcp_close() and keepalive expiry deletes silent VPN peers, both releasing crypto key slots whose RCU callbacks call crypto_free_aead().\nAC:L - Once an ovpn instance with peers/keys exists, a remote party can deterministically trigger teardown (silence until keepalive timeout or force TCP disconnect) without winning races or influencing memory layout; async/hardware AEAD drivers make the sleeping-in-RCU callback reliably observable.\nPR:N - Exploitation needs only network reachability to an operational OpenVPN offload tunnel (or ability to reset its transport); no local account, CAP_NET_ADMIN, or init-namespace root on the victim is required beyond normal VPN service deployment.\nUI:N - No victim user action is required after ovpn is configured; peer teardown and key-slot release are driven automatically by transport disconnect or configured keepalive expiry from remote peer behavior.\nS:U - Impact is confined to kernel networking/crypto teardown on the same host; it does not cross VM, container, or IOMMU security boundaries and is standard in-kernel denial-of-service, not privilege escalation across authorities.\nC:N - The bug is calling a potentially sleeping crypto_free_aead() from an RCU callback, not an out-of-bounds read, UAF, or disclosure primitive; teardown occurs only after RCU grace period and final kref put with no attacker-readable side channel.\nI:N - Sleeping during AEAD transform release does not grant attacker-controlled memory writes or code execution; it violates atomic-context rules and can destabilize the kernel but does not corrupt adjacent structures into exploitable write primitives.\nA:H - crypto_free_aead() may block on async/hardware teardown while running in an RCU callback, triggering BUG: sleeping function called from invalid context, RCU stall, oops, or kernel panic and enabling repeatable remote denial of service against internet-facing VPN gateways."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-27T05:01:10.597Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/0f77ed5ee91946ea63e29f2e0ff9dc9e722d8da3"
        },
        {
          "url": "https://git.kernel.org/stable/c/2da3dfa1ddfe55a065f484750c83660e3bd4ac00"
        }
      ],
      "title": "ovpn: defer key slot crypto freeing to workqueue",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74750",
    "datePublished": "2026-08-26T14:36:58.355Z",
    "dateReserved": "2026-08-15T05:44:03.931Z",
    "dateUpdated": "2026-08-27T05:01:10.597Z",
    "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…