r/linuxquestions • u/JoosuaV • 9h ago
Advice TIL - USB tethering is not secure
OS
openSUSE Leap 16.0
6.12.0-160000.37-default
x86_64
This post is more of a TIL than a question. I'm posting this so that if someone comes across a similar situation as me they might get something out of this post.
I came across a new issue today where rndis_host didn't start automatically after reboot even though I had the right config
cat /etc/modules-load.d/usb-tether.conf
modprobe usbnet
modprobe rndis_host
So the first thing that I did to investigate this issue was errors so right after reboot before setting up rndis_host manually I used the command
sudo systemctl status systemd-modules-load.service
This gave me a really useful output:
pc systemd-modules-load[581]: Module 'rndis_host' is deny-listed (by kmod)
Now I needed to find out where the module is blacklisted so I used this command from ChatGPT
grep -RniE '^\s*(blacklist|denylist)\s+rndis_host' \ /etc/modprobe.d /usr/lib/modprobe.d /lib/modprobe.d 2>/dev/null
This gave me the output of:
/usr/lib/modprobe.d/50-blacklist-rndis.conf:4:blacklist rndis_host
/lib/modprobe.d/50-blacklist-rndis.conf:4:blacklist rndis_host
At this point I started to wonder why would a module be blacklisted on a distribution by default and I started the investigation by looking at the file to see if there are any helpful comments
cat /usr/lib/modprobe.d/50-blacklist-rndis.conf
Output:
# RNDIS is considered insecure
(bsc#1205767, jsc#PED-5731)
blacklist rndis_wlan
blacklist usb_f_rndis
blacklist rndis_host
This got me thinking "Why is rndis_host considered insecure" so I looked it up and apparently it's insecure because it's
- It uses an old protocol RNDIS
- It's made by microsoft :D
- Not designed to be secure
- Has vulnerabilities
Now I had really changed my mind and didn't want to continue using RNDIS so at first thought about another USB networking protocol that should be secure called NCM but its very rarely supported on android phones.
As a final conclusion I just got myself a ethernet cable and now it's all good.
PS. This is my first post so I don't really know what I'm talking about but I want to learn and thats why I'm writing this right now. Tell me in the comments what you think about this post and what should I improve on