---
id: CVE-2026-64312
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  crypto: pcrypt - restore callback for non-parallel fallback

  pcrypt installs pcrypt_aead_done() on the child AEAD request before
  trying to submit it through padata
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  crypto: pcrypt - restore callback for non-parallel fallback

  pcrypt installs pcrypt_aead_done() on the child AEAD request before
  trying to submit it through padata.  If…
severity: high
cvss: 7.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'
published: '2026-07-25'
updated: '2026-07-27'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-64312'
references:
  - url: 'https://git.kernel.org/stable/c/3920c5f6edc341729d20d0507e466c6d3b11f372'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/4711ca06bd169a2cbc9cc59a6de2ed512c41a880'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/81ce16d938db9b88cdc231522c0358395ae8c6b5'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/82789a44415e3e31168229421b138278dfb16412'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/83fa1397d5853de1e27dd52ec44b068ff358ca18'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/ae93c5b3e2a2968b56d772ca1d06615927b7cc36'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/c4bd2f4c35b0e15b6040c2f7e7e7986780c066cf'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/ed459fe319376e876de433d12b6c6772e612ca36'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
epss: 0.00501
epssPercentile: 0.40261
ingestedAt: '2026-07-27T06:16:50.347Z'
---

## Overview

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

crypto: pcrypt - restore callback for non-parallel fallback

pcrypt installs pcrypt_aead_done() on the child AEAD request before
trying to submit it through padata.  If padata_do_parallel() returns
-EBUSY, pcrypt falls back to calling the child AEAD directly.

That fallback must not keep the padata completion callback.  Otherwise
an asynchronous completion runs pcrypt_aead_done() even though the
request was never enrolled in padata.

Restore the original request callback and callback data before calling
the child AEAD directly.  This keeps the fallback path aligned with a
direct AEAD request while leaving the parallel path unchanged.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
