{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-64311","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-07-19T15:36:31.779Z","datePublished":"2026-07-25T08:49:43.318Z","dateUpdated":"2026-08-17T04:53:10.994Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-17T04:53:10.994Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ncrypto: loongson - Remove broken and unused loongson-rng\n\nThe loongson-rng rng_alg has several vulnerabilities, including not\nproviding forward security, and a use-after-free bug due to the use of\nwait_for_completion_interruptible().\n\nMeanwhile, the rng_alg framework doesn't really have any purpose in the\nfirst place other than to access the software algorithms crypto/drbg.c\nand crypto/jitterentropy.c.  Hardware-specific rng_algs have no\nin-kernel user, and unlike hwrng there's no feed into the actual Linux\nRNG.  As such, there's really no point to this code.  There are of\ncourse other rng_alg drivers that are similarly unused, but they're\nsimilarly in the process of being phased out, e.g.\nhttps://lore.kernel.org/r/20260529193648.18172-1-ebiggers@kernel.org and\nhttps://lore.kernel.org/r/20260529220430.34135-1-ebiggers@kernel.org\n\nGiven that, there's no point in fixing forward these vulnerabilities,\nand it makes much more sense to simply roll back the addition of this\ndriver.  If this platform provides TRNG (not PRNG) functionality, it\ncould make sense to add a hwrng driver, but it would be quite different."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - An attacker reaches the vulnerable driver through local AF_ALG socket operations selecting the \"rng\" type and \"loongson_stdrng\" algorithm. No network or physical-device input path invokes it.\nAC:L - The attacker can repeatedly issue RNG requests and interrupt the waiting thread with signals, causing the asynchronous operation to outlive the interrupted call. Both request initiation and interruption are attacker-controlled.\nPR:L - AF_ALG RNG creation, binding, acceptance, and generation require only an unprivileged local account and contain no capability check. The CAP_SYS_ADMIN check applies only to the separate CAVP entropy-testing operation.\nUI:N - The attacker can open and operate the AF_ALG sockets and deliver the signal without any action by another user.\nS:U - Exploitation compromises the host kernel within the same security authority; this is ordinary local privilege escalation rather than a VM, IOMMU, or other scope-boundary escape.\nC:H - The documented use-after-free can permit attacker-controlled memory reuse and disclosure of arbitrary kernel or process-sensitive memory.\nI:H - The use-after-free and outstanding asynchronous engine operation constitute exploitable memory corruption that can potentially provide arbitrary writes or kernel control-flow hijacking.\nA:H - Use-after-free access or corruption during asynchronous completion can cause a kernel oops, panic, or complete system crash."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["MAINTAINERS","arch/loongarch/configs/loongson32_defconfig","arch/loongarch/configs/loongson64_defconfig","drivers/crypto/Kconfig","drivers/crypto/Makefile","drivers/crypto/loongson/Kconfig","drivers/crypto/loongson/Makefile","drivers/crypto/loongson/loongson-rng.c"],"versions":[{"version":"766b2d724c8df071031412eea902b566a0049c31","lessThan":"037ec8353711c79353b12d5634e0c9ff363a9efa","status":"affected","versionType":"git"},{"version":"766b2d724c8df071031412eea902b566a0049c31","lessThan":"43de8b9f01b7dd2f6ca5360c6bf2f203c02288dc","status":"affected","versionType":"git"},{"version":"766b2d724c8df071031412eea902b566a0049c31","lessThan":"af3d1bb9a09daf928fc3f173689fb7904d6a6d4f","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["MAINTAINERS","arch/loongarch/configs/loongson32_defconfig","arch/loongarch/configs/loongson64_defconfig","drivers/crypto/Kconfig","drivers/crypto/Makefile","drivers/crypto/loongson/Kconfig","drivers/crypto/loongson/Makefile","drivers/crypto/loongson/loongson-rng.c"],"versions":[{"version":"6.18","status":"affected"},{"version":"0","lessThan":"6.18","status":"unaffected","versionType":"semver"},{"version":"6.18.39","lessThanOrEqual":"6.18.*","status":"unaffected","versionType":"semver"},{"version":"7.1.4","lessThanOrEqual":"7.1.*","status":"unaffected","versionType":"semver"},{"version":"7.2","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.18","versionEndExcluding":"6.18.39"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.18","versionEndExcluding":"7.1.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.18","versionEndExcluding":"7.2"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/037ec8353711c79353b12d5634e0c9ff363a9efa"},{"url":"https://git.kernel.org/stable/c/43de8b9f01b7dd2f6ca5360c6bf2f203c02288dc"},{"url":"https://git.kernel.org/stable/c/af3d1bb9a09daf928fc3f173689fb7904d6a6d4f"}],"title":"crypto: loongson - Remove broken and unused loongson-rng","x_generator":{"engine":"bippy-1.2.0"}}}}