Een kwetsbaarheid die al 19 jaar in de Linux-kernel aanwezig is, stelt gebruikers met beperkte rechten in staat om root-privileges te verkrijgen op diverse Linux-distributies. Deze kwetsbaarheid, bekend onder de naam CIFSwitch, treft het CIFS-subsystem van de Linux-kernel en de cifs-utils userspace helper die wordt gebruikt voor authenticatieprocessen.

CIFS beheert onderdelen van het SMB-netwerkbestandsprotocol, zoals het mounten van shares, lees- en schrijfacties en de communicatie met de SMB-server. Bij het authenticeren van een mount-verzoek stuurt het subsystem een request_key-aanroep voor een cifs.spnego sleutel. Deze aanroep controleert de sleutel in userspace en roept cifs.upcall aan met root-rechten om de sleutelbeschrijving te verwerken. Deze beschrijving bevat velden zoals UID, PID, credential cache en namespace. Volgens SpaceX security engineer Asim Viladi Oglu Manizada controleert de kernel echter niet de herkomst van de request of de sleutelbeschrijving. Hierdoor kan een aanvaller de request_key functie direct aanroepen en eigen sleutelbeschrijvingen aanleveren, waarmee de CIFS-origin wordt omzeild.

Omdat cifs.upcall met root-rechten wordt uitgevoerd, schakelt de helper over naar de namespaces van de PID die in de gewijzigde sleutelbeschrijving is opgegeven, wat de aanvaller root-toegang verschaft. Daarnaast voert de helper tijdens de operatie een account-lookup uit via de Name Service Switch (NSS), waarbij NSS-modules worden geladen. Een aanvaller kan dit misbruiken door een valse NSS-configuratie en een kwaadaardige NSS-module in zijn namespace te plaatsen, waardoor de helper kwaadaardige code met root-rechten laadt.

Volgens Manizada kan de kwetsbaarheid worden verholpen door sleutelbeschrijvingen alleen als legitiem te beschouwen wanneer CIFS zijn private spnego_cred gebruikt, en door user-space hardening toe te passen om te controleren of de sleutelbeschrijving daadwerkelijk door de kernel is gegenereerd. Diverse distributies zoals Linux Mint, CentOS, Rocky Linux, Kali Linux, AlmaLinux en SLES SAP met standaard geïnstalleerde cifs-utils zijn kwetsbaar. Sommige distributies zijn alleen kwetsbaar als cifs-utils handmatig is geïnstalleerd. Veel Ubuntu-, Fedora-, CentOS-, Rocky Linux-, AlmaLinux-, Oracle Linux-, openSUSE- en SLES-versies blokkeren het uitvoeringspad standaard, terwijl Amazon Linux 2 KVM en Kali Linux 2019.4/2020.4 niet getroffen zijn. Grote Linux-distributies hebben begin deze maand patches uitgebracht om het beveiligingslek te dichten.

Manizada heeft proof-of-concept code gepubliceerd om verdedigers te helpen bij het valideren van patches, mitigaties, detecties en blootstelling.