From: Chen Feng <puck.chen@hisilicon.com>
To: Greg KH <gregkh@linuxfoundation.org>
Cc: "Theodore Ts'o" <tytso@mit.edu>, <zhaoyukun@huawei.com>,
<arnd@arndb.de>, <linux-kernel@vger.kernel.org>,
<suzhuangluan@hisilicon.com>, <dan.zhao@hisilicon.com>
Subject: Re: [PATCH RFC] random: fix syzkaller fuzzer test int overflow
Date: Wed, 25 Oct 2017 15:08:55 +0800 [thread overview]
Message-ID: <59F03887.7020700@hisilicon.com> (raw)
In-Reply-To: <20171025065646.GA13386@kroah.com>
On 2017/10/25 14:56, Greg KH wrote:
> On Wed, Oct 25, 2017 at 02:30:56PM +0800, Chen Feng wrote:
>> Hi Ted,
>>
>> On 2017/10/24 18:25, Theodore Ts'o wrote:
>>> On Tue, Oct 24, 2017 at 11:09:27AM +0200, Greg KH wrote:
>>>> On Tue, Oct 24, 2017 at 03:44:17PM +0800, Chen Feng wrote:
>>>>> [pid:11940,cpu6,syz-executor][flp_ioctl]cmd[0x1]
>>>>> Restart is not permit
>>>>> =================================================================
>>>>> UBSAN: Undefined behaviour in
>>>>> kernel/linux-4.4/drivers/char/random.c:676:19
>>>>> signed integer overflow:
>>>>> 2147483645 + 268435455 cannot be represented in type 'int'
>>>>> CPU: 4 PID: 11941 Comm: syz-executor Not tainted 4.4.76+ #2
>>>>
>>>> Does this also happen on 4.14-rc6?
>>>
>>> No. It was fixed in 4.8, by commit 86a574de4590: "random: strengthen
>>> input validation for RNDADDTOENTCNT".
>>
>>
>> I see my kernel has already merged this patch. So I don't think this patch
>> can resolve the issue above.
>
> Do you have a reproducer for this issue that we can use to test?
>
It's hard to reproduce, we found this on stress test with syzkaller test.
r3 = syz_open_dev$urandom(&(0x7f000000a000)="2f6465762f7572616e646f6d00", 0x0, 0x0)
syz_open_dev$urandom(&(0x7f000000a000)="2f6465762f7572616e646f6d00", 0x0, 0x0)
r3 = syz_open_dev$urandom(&(0x7f000000a000)="2f6465762f7572616e646f6d00", 0x0, 0x0)
syz_open_dev$urandom(&(0x7f000000a000)="2f6465762f7572616e646f6d00", 0x0, 0x0)
syz_open_dev$random(&(0x7f0000005000-0xc)="2f6465762f72616e646f6d00", 0x0, 0x10100)
r3 = syz_open_dev$urandom(&(0x7f000000a000)="2f6465762f7572616e646f6d00", 0x0, 0x0)
r3 = syz_open_dev$urandom(&(0x7f000000a000)="2f6465762f7572616e646f6d00", 0x0, 0x0)
r3 = syz_open_dev$urandom(&(0x7f000000a000)="2f6465762f7572616e646f6d00", 0x0, 0x0)
r3 = syz_open_dev$urandom(&(0x7f000000a000)="2f6465762f7572616e646f6d00", 0x0, 0x0)
r3 = syz_open_dev$urandom(&(0x7f000000a000)="2f6465762f7572616e646f6d00", 0x0, 0x0)
r3 = syz_open_dev$urandom(&(0x7f000000a000)="2f6465762f7572616e646f6d00", 0x0, 0x0)
r3 = syz_open_dev$urandom(&(0x7f000000a000)="2f6465762f7572616e646f6d00", 0x0, 0x0)
r3 = syz_open_dev$urandom(&(0x7f000000a000)="2f6465762f7572616e646f6d00", 0x0, 0x0)
r3 = syz_open_dev$urandom(&(0x7f000000a000)="2f6465762f7572616e646f6d00", 0x0, 0x0)
r3 = syz_open_dev$urandom(&(0x7f000000a000)="2f6465762f7572616e646f6d00", 0x0, 0x0)
UBSAN: Undefined behaviour in kernel/linux-4.4/drivers/char/random.c:676:19
[<ffffffa661ab85bc>] random_ioctl+0x338/0x384
git log --oneline drivers/char/random.c
3991576 random: properly align get_random_int_hash
5f87c47 Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android
f48dd2d random: add interrupt callback to VMBus IRQ handler
529025b random: print a warning for the first ten uninitialized random users
f41fc0b random: initialize the non-blocking pool via add_hwgenerator_randomness()
fdd8543 Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android
93f84c8 random: strengthen input validation for RNDADDTOENTCNT
06bfe14 FROMLIST: drivers: char: random: add get_random_long()
c271950 random: Remove kernel blocking API
205a525 random: Add callback API for random pool readiness
16b369a random: Blocking API for accessing nonblocking_pool
1d9de44 random: Wake up all getrandom(2) callers when pool is ready
19acc77 random: Fix fast_mix() function
> thanks,
>
> greg k-h
>
> .
>
next prev parent reply other threads:[~2017-10-25 7:09 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-24 7:44 [PATCH RFC] random: fix syzkaller fuzzer test int overflow Chen Feng
2017-10-24 9:09 ` Greg KH
2017-10-24 9:24 ` Chen Feng
2017-10-24 9:57 ` Greg KH
2017-10-24 10:25 ` Theodore Ts'o
2017-10-25 6:30 ` Chen Feng
2017-10-25 6:56 ` Greg KH
2017-10-25 7:08 ` Chen Feng [this message]
2017-10-25 8:49 ` Theodore Ts'o
2017-10-26 8:25 ` Chen Feng
2017-10-26 15:04 ` Theodore Ts'o
2017-10-28 3:22 ` Chen Feng
2017-10-29 18:25 ` Theodore Ts'o
2017-10-30 7:39 ` Greg KH
2017-10-30 9:11 ` Theodore Ts'o
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=59F03887.7020700@hisilicon.com \
--to=puck.chen@hisilicon.com \
--cc=arnd@arndb.de \
--cc=dan.zhao@hisilicon.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=suzhuangluan@hisilicon.com \
--cc=tytso@mit.edu \
--cc=zhaoyukun@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.