SentinelOne is recent een kwetsbaarheid in HP- en Samsung-printers op het spoor gekomen. Het gaat hierbij om een zogeheten escalation of privilege kwetsbaarheid die zijn oorsprong vindt in een slecht ontworpen en niet goed onderhouden printerdriver. CVE-2021-3438, zoals de kwetsbaarheid officieel heet, heeft een CVSS-score van 8,8 (van 10) gekregen.
Bij het installeren van een printer of multifunctional start je doorgaans een stukje installatiesoftware op. Met deze software kun je meteen alles instellen voor het eerste gebruik. Denk hierbij aan een SMTP-server voor het verzenden van scans via de mail, maar bijvoorbeeld ook het admin-wachtwoord.
Een niet onbelangrijk onderdeel van de installatie van een printer is de installatie van de driver op een pc. Zonder driver werkt een printer immers niet. Tijdens het doorlopen van een dergelijke installatie zie je daar over het algemeen geen vraag over voorbijkomen, of je moet een printer installeren waarvoor verschillende drivers beschikbaar zijn natuurlijk. Het installeren van een driver is impliciet aan het in gebruik nemen ervan, dus dat is op zich logisch. Met andere woorden, je gaat geen ‘Nee’ antwoorden op de vraag of je de driver wilt installeren.
Kwetsbare driver
Als er echter iets mis is met die driver, dan installeer je hiermee wel zonder dat je ook maar iets in de gaten hebt, een kwetsbaarheid op je machine. Dat laatste is wat er sinds 2005 bij miljoenen printers van HP en Samsung, maar volgens de berichten ook Xerox, is gebeurd. Al 16 jaar installeert het installatieprogramma van deze printers de (oude) SSPORT.SYS driver. Het zou gaan om meer dan 380 verschillende modellen. De hele lijst van HP en Samsung kun je hier vinden. Bij Xerox zijn het er een stuk minder. Het zijn uitsluitend laserprinters, als we de lijst zo eens doornemen.
De SSPORT.SYS-driver lijkt op het eerste gezicht uit de stal van Samsung te komen. Voor zover wij weten staat dit namelijk voor Samsung Serial Port driver. HP heeft de printactiviteiten van Samsung echter pas in 2017 overgenomen, dus dat is dan wel een beetje gek. Waarom zou die driver dan al sinds 2005 in printers van zowel Samsung als HP zitten? Nu weten we dat er vrij weinig printerfabrikanten zijn in de wereld. HP koopt de componenten voor laserprinters bijvoorbeeld in bij Canon, maar zet de printers wel zelf in elkaar. Van Xerox weten we dat het bepaalde modellen elders haalt, in dit geval dus HP. Als je door de lijst heengaat, zie je wel veel meer Samsung-modellen staan dan HP-modellen. De kans dat deze kwetsbaarheid is geïntroduceerd met de overname van Samsung, is dus reëel.
Bij SentinelOne zijn ze nog iets verder in de geschiedenis van de driver gedoken. Uit dat onderzoek blijkt dat HP/Samsung de driver hoogstwaarschijnlijk niet eens zelf heeft geschreven, maar heeft overgenomen van een Microsoft-project in Windows Driver Samples. Waar het project van Microsoft echter alle kwetsbaarheden uit de driver heeft gehaald, is men bij HP/Samsung tamelijk slordig geweest.
Wat is er nu precies aan de hand met deze driver?
Iedereen die een printer heeft staan uit de lijst waar we hierboven naar linken, heeft deze driver op zijn machine staan. Dat maakt het dus een zeer kritieke kwetsbaarheid. Let wel, ook als je een printer uit die lijst hebt geïnstalleerd en hij is niet (meer) in gebruik of je hebt de installatie afgebroken, dan nog staat deze driver hoogstwaarschijnlijk op je systeem. Daar komt nog bovenop dat de driver ook altijd opgestart wordt als je de machine aanzet.
Een driver zoals SSPORT.SYS is in theorie in ieder geval een doelwit waar kwaadwillenden erg blij van worden. Hij staat immers zonder dat iemand er erg in heeft op pc’s en hij is ook altijd actief, ongeacht of er een printer aangesloten is of niet.
Maar goed, alleen een driver die altijd draait is nog niet voldoende om het tot een kwetsbaarheid te bombarderen. Er is echter ook iets niet helemaal in de haak met de driver. Het is namelijk mogelijk om vanuit User Mode zoveel input naar de driver te sturen (via Input/Output Control, oftewel IOCTL), dat de buffer van de driver overloopt. Dit stelt aanvallers in staat om in het daadwerkelijke systeem te komen en dus code in Kernel Mode te draaien. Eenmaal daar kan er bijvoorbeeld code actief gemaakt worden die de security van een systeem omzeilt. Om in de termen van de security-wereld te blijven, we hebben hier te maken met een escalation of privilege.
Een en ander is allemaal nog niet zo eenvoudig te weaponizen, als we de bevindingen van SentinelOne lezen. Het is in ieder geval niet gelukt om alleen via deze kwetsbaarheid kwaad aan te richten. De kans bestaat dus dat daar ook nog andere kwetsbaarheden en bugs voor ingezet moeten worden. Of een aanvaller moet er nog wat meer tijd in stoppen dan ze bij SentinelOne gedaan hebben. Dat kan natuurlijk ook. Op dit moment zijn er geen aanwijzingen dat aanvallers deze kwetsbaarheid actief gebruiken en/of van het bestaan van de kwetsbaarheid afwisten.
Patch is beschikbaar
Zoals het hoort, is men bij HP (en Xerox) aan de slag gegaan en kun je de patch voor deze kwetsbaarheid op de pagina’s waar we hierboven ook al naar linkten downloaden en installeren. Voor de volledigheid heb je ze hier nog een keertje: HP, Xerox. Volgens SentinelOne is HP ook voorbeeldig te werk gegaan nadat SentinelOne de kwetsbaarheid meldde en is het bedrijf snel met een patch gekomen. Toch zal het gezien de sterke focus op security van hun printers best wel een beetje steken bij HP Inc. dat dit aan het licht is gekomen. Als het waar is dat deze driver min of meer is gekopieerd en geplakt uit een Microsoft-project en er verder niet meer naar is omgekeken, dan is het namelijk wel behoorlijk slordig.
Security-bedrijven zoals SentinelOne besteden doorgaans de nodige tijd aan het testen van allerlei stukken software op systemen om te controleren of deze veilig genoeg zijn. Dit verhaal is hier een voorbeeld van, maar enkele maanden geleden berichtten we ook al over een 12-jaar oude kwetsbaarheid in Windows Defender, die door SentinelOne werd ontdekt.