crypto: af_alg - zero initialize memory allocated via sock_kmalloc (Linux Linux)

CVE-2025-71113
MEDIUM 5.5

At a glance

Source
NVD
EPSS
EPSS 0.15 % · percentile 4 ()
State
PUBLISHED
Published
Updated
Assigner
Linux
NVD status
Modified

Description

In the Linux kernel, the following vulnerability has been resolved: crypto: af_alg - zero initialize memory allocated via sock_kmalloc Several crypto user API contexts and requests allocated with sock_kmalloc() were left uninitialized, relying on callers to set fields explicitly. This resulted in the use of uninitialized data in certain error paths or when new fields are added in the future. The ACVP patches also contain two user-space interface files: algif_kpp.c and algif_akcipher.c. These too rely on proper initialization of their context structures. A particular issue has been observed with the newly added 'inflight' variable introduced in af_alg_ctx by commit: 67b164a871af ("crypto: af_alg - Disallow multiple in-flight AIO requests") Because the context is not memset to zero after allocation, the inflight variable has contained garbage values. As a result, af_alg_alloc_areq() has incorrectly returned -EBUSY randomly when the garbage value was interpreted as true: https://github.com/gregkh/linux/blame/master/crypto/af_alg.c#L1209 The check directly tests ctx->inflight without explicitly comparing against true/false. Since inflight is only ever set to true or false later, an uninitialized value has triggered -EBUSY failures. Zero-initializing memory allocated with sock_kmalloc() ensures inflight and other fields start in a known state, removing random issues caused by uninitialized data.

Weaknesses (CWE)

  • CWE-119 — Improper Restriction of Operations within the Bounds of a Memory Buffer
  • CWE-908 — Use of Uninitialized Resource

References

Scores

VersionScoreVectorScored by
CVSS 3.1MEDIUM 5.5CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HNVD · nvd@nist.gov (Primary)

European references

CERT-FR advisories

Affected configurations (NVD CPE)

Affected products

ProductVersions
Linux · Linuxaffected fe869cdb89c95d060c77eea20204d6c91f233b53 < e125c8e346e4eb7b3e854c862fcb4392bc13ddba ; affected fe869cdb89c95d060c77eea20204d6c91f233b53 < 543bf004e4eafbb302b1e6c78570d425d2ca13a0 ; affected fe869cdb89c95d060c77eea20204d6c91f233b53 < f81244fd6b14fecfa93b66b6bb1d59f96554e550 ; affected fe869cdb89c95d060c77eea20204d6c91f233b53 < 84238876e3b3b262cf62d5f4d1338e983fb27010 ; affected fe869cdb89c95d060c77eea20204d6c91f233b53 < 5a4b65523608974a81edbe386f8a667a3e10c726 ; affected fe869cdb89c95d060c77eea20204d6c91f233b53 < 51a5ab36084f3251ef87eda3e6a6236f6488925e
Linux · Linuxaffected 2.6.38 ; unaffected 0 < 2.6.38 ; unaffected 5.10.248 ≤ 5.10.* ; unaffected 5.15.198 ≤ 5.15.* ; unaffected 6.1.160 ≤ 6.1.* ; unaffected 6.6.120 ≤ 6.6.*

Sources

SourceLicence
CVE List (CVEProject cvelistV5)CVE Program Terms of Use
EPSS (FIRST.org)FIRST — attribution requested
ENISA EUVDENISA — reproduction authorised, source acknowledged
CERT-FR (ANSSI)Licence Ouverte / Etalab 2.0
NVD (NIST) via fkie-cad/nvd-json-data-feedsPublic domain — this product uses data from the NVD API but is not endorsed or certified by the NVD