> -----Original Message----- > From: Andrea Parri (Microsoft) <parri.andrea@xxxxxxxxx> > Sent: Wednesday, November 18, 2020 10:33 AM > To: linux-kernel@xxxxxxxxxxxxxxx > Cc: KY Srinivasan <kys@xxxxxxxxxxxxx>; Haiyang Zhang > <haiyangz@xxxxxxxxxxxxx>; Stephen Hemminger > <sthemmin@xxxxxxxxxxxxx>; Wei Liu <wei.liu@xxxxxxxxxx>; linux- > hyperv@xxxxxxxxxxxxxxx; Michael Kelley <mikelley@xxxxxxxxxxxxx>; Juan > Vazquez <juvazq@xxxxxxxxxxxxx>; Saruhan Karademir > <skarade@xxxxxxxxxxxxx>; Andrea Parri (Microsoft) > <parri.andrea@xxxxxxxxx>; David S. Miller <davem@xxxxxxxxxxxxx>; Jakub > Kicinski <kuba@xxxxxxxxxx>; netdev@xxxxxxxxxxxxxxx > Subject: [PATCH] hv_netvsc: Validate number of allocated sub-channels > > Lack of validation could lead to out-of-bound reads and information leaks (cf. > usage of nvdev->chan_table[]). Check that the number of allocated sub- > channels fits into the expected range. > > Suggested-by: Saruhan Karademir <skarade@xxxxxxxxxxxxx> > Signed-off-by: Andrea Parri (Microsoft) <parri.andrea@xxxxxxxxx> > Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> > Cc: Jakub Kicinski <kuba@xxxxxxxxxx> > Cc: netdev@xxxxxxxxxxxxxxx > --- > Based on hyperv-next. > > drivers/net/hyperv/rndis_filter.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/net/hyperv/rndis_filter.c > b/drivers/net/hyperv/rndis_filter.c > index 3835d9bea1005..c5a709f67870f 100644 > --- a/drivers/net/hyperv/rndis_filter.c > +++ b/drivers/net/hyperv/rndis_filter.c > @@ -1226,6 +1226,11 @@ int rndis_set_subchannel(struct net_device *ndev, > return -EIO; > } > > + /* Check that number of allocated sub channel is within the expected > range */ > + if (init_packet->msg.v5_msg.subchn_comp.num_subchannels > > nvdev->num_chn - 1) { > + netdev_err(ndev, "invalid number of allocated sub > channel\n"); > + return -EINVAL; > + } > nvdev->num_chn = 1 + > init_packet->msg.v5_msg.subchn_comp.num_subchannels; Reviewed-by: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx> Thank you.