PatchSiren

PatchSiren cyber security CVE debrief

CVE-2026-45950 Linux CVE debrief

A memory leak vulnerability exists in the StarFive cryptographic driver within the Linux kernel. The `starfive_aes_aead_do_one_req()` function in the crypto subsystem allocates memory for `rctx->adata` using `kzalloc()` but fails to free this allocation when either `sg_copy_to_buffer()` or `starfive_aes_hw_init()` encounters an error. This leads to a memory leak condition that could potentially degrade system performance over time through memory exhaustion. The vulnerability was identified through prototype static analysis tooling and subsequent code review. The fix ensures consistent cleanup by freeing the `rctx->adata` allocation in all error paths prior to the normal write_adata operations cleanup. The patch has been compile-tested and backported to multiple stable kernel branches.

Vendor
Linux
Product
Unknown
CVSS
MEDIUM 5.5
CISA KEV
Not listed in stored evidence
Original CVE published
2026-05-27
Original CVE updated
2026-06-16
Advisory published
2026-05-27
Advisory updated
2026-06-16

Who should care

System administrators managing Linux-based embedded systems, IoT devices, or edge computing platforms utilizing StarFive RISC-V SoCs; kernel maintainers for distributions targeting RISC-V architectures; security teams monitoring memory exhaustion conditions in long-running cryptographic workloads

Technical summary

The vulnerability exists in `drivers/crypto/starfive/starfive-crypto.c` within the AEAD (Authenticated Encryption with Associated Data) request handling path. When processing cryptographic requests, the driver allocates a temporary buffer `rctx->adata` via `kzalloc()` to hold associated data. The original implementation only freed this allocation along the success path and the primary cleanup path after write_adata operations. However, if `sg_copy_to_buffer()` fails to copy scatterlist data or if `starfive_aes_hw_init()` fails to initialize the hardware cryptographic engine, the function would return an error code without freeing the previously allocated `rctx->adata`, resulting in a memory leak. The resolution adds explicit `kfree(rctx->adata)` calls in these error paths before returning, ensuring consistent memory cleanup regardless of failure mode. This vulnerability primarily affects embedded systems and IoT devices utilizing StarFive RISC-V SoCs with hardware cryptographic acceleration enabled.

Defensive priority

medium

Recommended defensive actions

  • Review kernel configurations to identify systems utilizing the StarFive cryptographic driver (CONFIG_CRYPTO_DEV_STARFIVE)
  • Apply available stable kernel updates containing the referenced commits
  • Monitor system memory utilization on affected embedded/IoT devices using StarFive SoCs for signs of gradual memory exhaustion
  • Consider disabling the StarFive crypto driver if cryptographic acceleration is not required and patches cannot be immediately applied

Evidence notes

Vulnerability description confirms memory leak in starfive_aes_aead_do_one_req() function. Issue identified via prototype static analysis tool and code review. Fix ensures rctx->adata is freed in error paths for sg_copy_to_buffer() and starfive_aes_hw_init() failures. Multiple stable kernel branch commits provided in references indicate backporting activity.

Sources and references

Verified primary and authoritative sources

  • CVE-2026-45950 CVE Program record

    Publisher, destination, and source semantics verified

    URL: https://www.cve.org/CVERecord?id=CVE-2026-45950

    CVE Program - Official CVE Program record with source-provided CVE metadata.

  • CVE-2026-45950 NVD vulnerability detail

    Publisher, destination, and source semantics verified

    URL: https://nvd.nist.gov/vuln/detail/CVE-2026-45950

    NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.

Supplemental references

  • Source reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/38d80307decc1132626a30e2a62af734630ecca5

    416baaa9-dc9f-4396-8d5f-8c081fb06d67

  • Source reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/4869d0e4e48a5301b267d359b2561c4080791a55

    416baaa9-dc9f-4396-8d5f-8c081fb06d67

  • Source reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/5f2c964a058581e1557c32d5de651c67a80438a7

    416baaa9-dc9f-4396-8d5f-8c081fb06d67

  • Source reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/ccb679fdae2e62ed92fd9acb25ed809c0226fcc6

    416baaa9-dc9f-4396-8d5f-8c081fb06d67

Methodology and review provenance

AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.