GHSA-RCHW-WQ4W-XPMH

Vulnerability from github – Published: 2026-06-24 18:32 – Updated: 2026-06-28 09:31
VLAI
Details

In the Linux kernel, the following vulnerability has been resolved:

ksmbd: fix use-after-free from async crypto on Qualcomm crypto engine

ksmbd_crypt_message() sets a NULL completion callback on AEAD requests and does not handle the -EINPROGRESS return code from async hardware crypto engines like the Qualcomm Crypto Engine (QCE). When QCE returns -EINPROGRESS, ksmbd treats it as an error and immediately frees the request while the hardware DMA operation is still in flight. The DMA completion callback then dereferences freed memory, causing a NULL pointer crash:

pc : qce_skcipher_done+0x24/0x174 lr : vchan_complete+0x230/0x27c ... el1h_64_irq+0x68/0x6c ksmbd_free_work_struct+0x20/0x118 [ksmbd] ksmbd_exit_file_cache+0x694/0xa4c [ksmbd]

Use the standard crypto_wait_req() pattern with crypto_req_done() as the completion callback, matching the approach used by the SMB client in fs/smb/client/smb2ops.c. This properly handles both synchronous engines (immediate return) and async engines (-EINPROGRESS followed by callback notification).

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2026-53046"
  ],
  "database_specific": {
    "cwe_ids": [],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2026-06-24T17:17:16Z",
    "severity": "CRITICAL"
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: fix use-after-free from async crypto on Qualcomm crypto engine\n\nksmbd_crypt_message() sets a NULL completion callback on AEAD requests\nand does not handle the -EINPROGRESS return code from async hardware\ncrypto engines like the Qualcomm Crypto Engine (QCE). When QCE returns\n-EINPROGRESS, ksmbd treats it as an error and immediately frees the\nrequest while the hardware DMA operation is still in flight. The DMA\ncompletion callback then dereferences freed memory, causing a NULL\npointer crash:\n\n  pc : qce_skcipher_done+0x24/0x174\n  lr : vchan_complete+0x230/0x27c\n  ...\n  el1h_64_irq+0x68/0x6c\n  ksmbd_free_work_struct+0x20/0x118 [ksmbd]\n  ksmbd_exit_file_cache+0x694/0xa4c [ksmbd]\n\nUse the standard crypto_wait_req() pattern with crypto_req_done() as\nthe completion callback, matching the approach used by the SMB client\nin fs/smb/client/smb2ops.c. This properly handles both synchronous\nengines (immediate return) and async engines (-EINPROGRESS followed\nby callback notification).",
  "id": "GHSA-rchw-wq4w-xpmh",
  "modified": "2026-06-28T09:31:40Z",
  "published": "2026-06-24T18:32:45Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-53046"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/3e298897f41c61450c2e7a4f457e8b2485eb35b3"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/57b47231055b431ed0a1a55f33cac32981564405"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/7164b3953cefd540e7ebca828c793bc6869cfbc4"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/8ef183216feaa24b66b940510d8b68f680eb56e9"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/8fcefe840fa8c14ce667768e5b043286ac3bbcbe"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/b46aa129fa2807bfe1545fe74d9295d53c51520b"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/cc2da381875d4a67026e4c8feb3dba51a2a2d1bc"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
      "type": "CVSS_V3"
    }
  ]
}


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…