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

s390/crypto: Fix wrong return code to engine in asynch callbacks

When crypto_finalize_hash_request() or
crypto_finalize_skcipher_request() explicitly completes a request, the
do_one_request callback must return 0 to indicate successful
handling. Returning a negative error code causes the crypto engine to
assume the driver failed to take ownership and triggers a second
completion via crypto_request_complete(), resulting in a double
completion. This pattern occurs in paes_s390.c 4 times and once in
phmac_s390.c.

Fixed in phmac_do_one_request() and all four paes do_one_request
callbacks (ecb, cbc, ctr, xts) by returning 0 after explicit
finalization instead of propagating the error code.
Published: 2026-09-25
Score: 7 High
EPSS: < 1% Very Low
KEV: No
Impact: Double completion of cryptographic requests may cause erroneous behavior or potential denial of service in the Linux kernel’s s390 crypto subsystem
Action: Apply patch
AI Analysis

Impact

Based on the description, it is inferred that the flaw occurs when a cryptographic callback in s390/crypto returns a negative error code after having explicitly completed a request. The crypto engine mistakenly interprets this as a failure to take ownership and issues a second completion call to crypto_request_complete, thereby double‑completing a request. This double completion can corrupt subsequent data processing or produce inconsistent results, potentially leading to a denial of service for services that rely on the kernel’s cryptographic subsystem.

Affected Systems

The issue affects all Linux kernel builds that include the s390/crypto subsystem, specifically the modules paes_s390.c (four callbacks for ecb, cbc, ctr, xts) and phmac_s390.c (one callback). No specific version range is supplied, and the patch applies to all current builds that contain these modules.

Risk and Exploitability

Based on the description, it is inferred that the attack vector would require local or privileged execution that can trigger cryptographic requests targeting the affected kernel. The CVSS score of 7 indicates moderate severity. The EPSS score of <1% shows a very low likelihood of exploitation, and the vulnerability is not listed in the CISA KEV catalog. No publicly documented exploit evidence is available, so the risk is considered moderate for systems running the s390 architecture that rely on the crypto engine.

Generated by OpenCVE AI on October 1, 2026 at 08:28 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the kernel patch that replaces the erroneous error code with 0 for phmac_do_one_request and the four paes_s390 callbacks
  • If the kernel cannot be patched immediately, disable or replace the affected s390/crypto modules with alternative cryptographic engines
  • Enable kernel logging to capture double‑completion events and regularly review dmesg for crypto‑related errors

Generated by OpenCVE AI on October 1, 2026 at 08:28 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 29 Sep 2026 13:15:00 +0000


Fri, 25 Sep 2026 22:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362
CWE-391

Fri, 25 Sep 2026 15:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Fri, 25 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: s390/crypto: Fix wrong return code to engine in asynch callbacks When crypto_finalize_hash_request() or crypto_finalize_skcipher_request() explicitly completes a request, the do_one_request callback must return 0 to indicate successful handling. Returning a negative error code causes the crypto engine to assume the driver failed to take ownership and triggers a second completion via crypto_request_complete(), resulting in a double completion. This pattern occurs in paes_s390.c 4 times and once in phmac_s390.c. Fixed in phmac_do_one_request() and all four paes do_one_request callbacks (ecb, cbc, ctr, xts) by returning 0 after explicit finalization instead of propagating the error code.
Title s390/crypto: Fix wrong return code to engine in asynch callbacks
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-25T14:41:26.725Z

Reserved: 2026-09-24T16:01:01.157Z

Link: CVE-2026-97589

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:10.103

Modified: 2026-09-25T15:18:00.547

Link: CVE-2026-97589

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-25T00:00:00Z

Links: CVE-2026-97589 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-01T08:30:05Z

Weaknesses
  • CWE-362

    Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

  • CWE-391

    Unchecked Error Condition

  • CWE-393

    Return of Wrong Status Code