crypto: af_alg - zero initialize memory allocated via sock_kmalloc
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.248, 5.15.198, 6.1.160, 6.6.120, 6.12.64, and 1 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
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.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From fe869cdb89c95d060c77eea20204d6c91f233b53 · fixed in e125c8e346e4eb7b3e854c862fcb4392bc13ddba; From fe869cdb89c95d060c77eea20204d6c91f233b53 · fixed in 543bf004e4eafbb302b1e6c78570d425d2ca13a0; From fe869cdb89c95d060c77eea20204d6c91f233b53 · fixed in f81244fd6b14fecfa93b66b6bb1d59f96554e550; From fe869cdb89c95d060c77eea20204d6c91f233b53 · fixed in 84238876e3b3b262cf62d5f4d1338e983fb27010; From fe869cdb89c95d060c77eea20204d6c91f233b53 · fixed in 5a4b65523608974a81edbe386f8a667a3e10c726; From fe869cdb89c95d060c77eea20204d6c91f233b53 · fixed in 51a5ab36084f3251ef87eda3e6a6236f6488925e; From fe869cdb89c95d060c77eea20204d6c91f233b53 · fixed in 6f6e309328d53a10c0fe1f77dec2db73373179b6
- Linux Linux
2.6.38
- KernelLinux
From 2.6.38 · fixed in 5.10.248; From 5.11.0 · fixed in 5.15.198; From 5.16.0 · fixed in 6.1.160; From 6.2.0 · fixed in 6.6.120; From 6.7.0 · fixed in 6.12.64; From 6.13.0 · fixed in 6.18.3
References 7
git.kernel.org
- stable/c/e125c8e346e4eb7b3e854c862fcb4392bc13ddba
- stable/c/543bf004e4eafbb302b1e6c78570d425d2ca13a0
- stable/c/f81244fd6b14fecfa93b66b6bb1d59f96554e550
- stable/c/84238876e3b3b262cf62d5f4d1338e983fb27010
- stable/c/5a4b65523608974a81edbe386f8a667a3e10c726
- stable/c/51a5ab36084f3251ef87eda3e6a6236f6488925e
- stable/c/6f6e309328d53a10c0fe1f77dec2db73373179b6