On Wed, Nov 2, 2016 at 10:25 PM, Cong Wang <xiyou.wangc...@gmail.com> wrote: > On Wed, Nov 2, 2016 at 5:25 PM, Andrey Konovalov <andreyk...@google.com> > wrote: >> Hi, >> >> I've got the following error report while running the syzkaller fuzzer: >> >> ================================================================== >> BUG: KASAN: global-out-of-bounds in validate_nla+0x49b/0x4e0 at addr >> ffffffff8407e3ac >> Read of size 2 by task a.out/3877 >> Address belongs to variable[< none >] >> cgroupstats_cmd_get_policy+0xc/0x40 ??:? > > Seems taskstats doesn't use genetlink correctly, CGROUPSTATS_CMD_ATTR_FD > is not within 0~TASKSTATS_CMD_ATTR_MAX. > > I guess we need the following patch, but it certainly breaks user-space... :-/
Wait, maybe just this one-line fix is enough: diff --git a/kernel/taskstats.c b/kernel/taskstats.c index b3f05ee..e6b342e 100644 --- a/kernel/taskstats.c +++ b/kernel/taskstats.c @@ -54,7 +54,7 @@ static const struct nla_policy taskstats_cmd_get_policy[TASKSTATS_CMD_ATTR_MAX+1 [TASKSTATS_CMD_ATTR_REGISTER_CPUMASK] = { .type = NLA_STRING }, [TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK] = { .type = NLA_STRING },}; -static const struct nla_policy cgroupstats_cmd_get_policy[CGROUPSTATS_CMD_ATTR_MAX+1] = { +static const struct nla_policy cgroupstats_cmd_get_policy[TASKSTATS_CMD_ATTR_MAX+1] = { [CGROUPSTATS_CMD_ATTR_FD] = { .type = NLA_U32 }, };