hwrng: core - Fix page fault dead lock on mmap-ed hwrng
JIRA: https://issues.redhat.com/browse/RHEL-29487
CVE: CVE-2023-52615
Build Info: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=59827735
Tested: Did sanity rng testing using rngtest.
commit 78aafb3884f6bc6636efcc1760c891c8500b9922
Author: Herbert Xu herbert@gondor.apana.org.au
Date: Sat Dec 2 09:01:54 2023 +0800
hwrng: core - Fix page fault dead lock on mmap-ed hwrng
There is a dead-lock in the hwrng device read path. This triggers
when the user reads from /dev/hwrng into memory also mmap-ed from
/dev/hwrng. The resulting page fault triggers a recursive read
which then dead-locks.
Fix this by using a stack buffer when calling copy_to_user.
Reported-by: Edward Adam Davis <eadavis@qq.com>
Reported-by: syzbot+c52ab18308964d248092@syzkaller.appspotmail.com
Fixes: 9996508b3353 ("hwrng: core - Replace u32 in driver API with byte array")
Cc: <stable@vger.kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Steve Best sbest@redhat.com