Subject: Re: [PATCH] USB: disable all RNDIS protocol drivers

From: Greg Kroah-Hartman <[email-masked]>
Date: Wed, 23 Nov 2022 16:55:53 +0100

On Wed, Nov 23, 2022 at 04:40:33PM +0100, Nicolas Cavallari wrote:
> On 23/11/2022 13:46, Greg Kroah-Hartman wrote:
> > The Microsoft RNDIS protocol is, as designed, insecure and vulnerable on
> > any system that uses it with untrusted hosts or devices.  Because the
> > protocol is impossible to make secure, just disable all rndis drivers to
> > prevent anyone from using them again.
> > 
> > Windows only needed this for XP and newer systems, Windows systems older
> > than that can use the normal USB class protocols instead, which do not
> > have these problems.
> > 
> > Android has had this disabled for many years so there should not be any
> > real systems that still need this.
> 
> I kind of disagree here. I have seen plenty of android devices that only
> support rndis for connection sharing, including my android 11 phone released
> in Q3 2020. I suspect the qualcomm's BSP still enable it by default.

Qualcomm should not have it enabled, and if they do, they are adding
code that Google says should not be enabled, and so Qualcom is
responsible for supporting that mess.  Good luck to them.

> There are also probably cellular dongles that uses rndis by default. Maybe
> ask the ModemManager people ?

That would be very very sad if it were the case, as they are totally
unsafe.

> I'm also curious if reimplementing it in userspace would solve the security
> problem.

The kernel would be happier, as all of the buffer overflows that are
possible would only be happening in userspace.  But I doubt any library
or userspace code that interacts with the protocol would really enjoy
it.

thanks,

greg k-h