4min

Tags in dit artikel

, , ,

HP Inc. lijkt op de radar te staan bij de SentinelLabs-onderzoekers van SentinelOne. Enkele maanden geleden rapporteerden ze over een kwetsbaarheid bij HP- en Samsung-printers. De onderzoekers hebben nu iets soortgelijks ontdekt bij een driver die hoor bij de OMEN Gaming Hub. De kwetsbaarheid heeft de ‘naam’ CVE-2021-3437 gekregen. Met een CVSS-score van 7,8 (van 10) is hij minder ernstig dan de vorige, maar nog altijd niet triviaal. HP heeft inmiddels al een goede patch uitgebracht. Deze is sinds 27 juli beschikbaar.

We gaven het al aan in de inleiding, de kwetsbaarheid waar het in dit artikel over gaat, vertoont veel gelijkenissen met die van eerder dit jaar. Een slechte driver is wederom de boosdoener. Dit keer geen driver voor een printer, maar voor onder andere gaming randapparatuur. Deze hoort bij de installatie van de HP OMEN Gaming Hub software, die standaard op alle HP OMEN desktops en laptops staat. De software staat verder ook in de Microsoft Store. Je kunt hem dus ook op andere Windows-machines installeren. De software kan gebruikt worden voor het customizen van je randapparatuur, maar ook voor het optimaliseren van instellingen van bijvoorbeeld de GPU, de ventilators en het overklokken van de CPU en het geheugen.

Wederom slordig

Maar goed, terug naar de driver. Dit is er evenals eerder dit jaar weer eentje met wat gebreken. Het gaat hier specifiek om de HpPortIox64.sys driver, die je kunt vinden in de volgende directory: C:\Windows\System32\drivers\HpPortIox64.sys. Net als bij de vorige kwetsbaarheid heeft HP ook hier weer gebruikgemaakt van een al bestaande en niet bijster goede driver om de eigen driver te ontwikkelen. Het gaat in dit geval om de WinRing0.sys driver die oorspronkelijk ontwikkeld is door OpenLibSys. Hieronder is duidelijk te zien dat dit het geval is. De naam van de originele driver en de ontwikkelaar ervan staat nog in de metadata van de HP-driver.

Bron: SentinelOne

Het probleem met deze driver is dat het via IOCTL (Input/Output Control) mogelijk is om van User Mode naar Kernel Mode te komen. Dit escaleren, zoals dat heet in cybersecurity-jargon, is potentieel erg gevaarlijk. Het zorgt er namelijk voor dat kwaadwillenden bij onderdelen van je systemen kunnen komen waar ze veel schade aan kunnen richten. De toegang tot de Kernel Mode lijkt bewust open gelaten te zijn door de ontwikkelaars van de driver. Het is niet nodig om een buffer over te laten lopen door deze te flooden, zoals het geval was bij de driver van de printers eerder dit jaar.

Met IOCTL-codes 0x9C4060CC, 0x9C4060D0, 0x9C4060D4, 0x9C40A0D8, 0x9C40A0DC en 0x9C40A0E0 kun je in User Mode met weinig rechten 1, 2, of 4 bytes lezen schrijven van of naar een IO-poort. Dit doet denken aan de eerdere kwetsbaarheid van Dell-computer, die is ontdekt door SentinelOne. Meer hierover lees je via deze link.

Twee voorbeelden

Tijdens het onderzoek is het de mensen bij SentinelLabs op deze manier gelukt om dingen te doen op de interne opslag die niet zouden moeten kunnen. Zo was het mogelijk om via de driver rechtstreeks met de IO-poorten voor de ATA-controller te communiceren. Hiermee was het mogelijk om rechtstreeks naar de interne opslag te schrijven en hiermee data te overschrijven (in het geval van het voorbeeld een binary) die daar is geplaatst door een zogeheten priviliged process. In dit specifieke geval startte de machine daarna niet meer op. De actie van SentinelOne had de eerste sector van de schijf stukgemaakt.

Bron; SentinelOne

Een ander voorbeeld heeft te maken met de Model-Specific Registers (MSRs), meer specifiek het arbitrair lezen en schreven ervan en ernaar. Met MSR kun je CPU data uitlezen of aanpassen. Via IOCTL-codes 0x9C402084 en 0x9C402088 kun je er bij deze driver toegang toe krijgen. Aangezien je bij deze driver in Kernel Mode komt via MSR, is het door deze ‘open deuren’ vrij eenvoudig voor kwaadwillenden om daar te komen. De LSTAR MSR waarmee de meeste moderne systemen van User Mode naar Kernel Mode gaan, kunnen zelfs worden overschreven zonder dat er adminrechten voor nodig zijn. Je overschrijft dan simpelweg de privileges en bent binnen. Er is geen sprake van ACL (Access Control List) in dit geval. Dat laatste is uiteraard juist wel heel belangrijk als je werkt met niet-afgeschermde onderdelen in een driver. Ook is het niet slim om een generieke interface bloot te stellen aan Kernel Mode-activiteiten.

Niet actief ingezet, patch beschikbaar

Zoals eigenlijk altijd bij dit soort berichten, zijn er geen gevallen bekend waarin kwaadwillenden de kwetsbaarheid hebben gebruikt. Dat maakt het toch altijd een beetje spijkers op laag water zoeken wat ons betreft. Niet dat het niet belangrijk is dat dit soort zaken aangepakt en gepatched worden, maar kennelijk zijn er betere, snellere of anderszins meer aantrekkelijke manieren voor hackers om binnen te komen.

Deze specifieke kwetsbaarheid is natuurlijk wel heel eenvoudig te gebruiken (of eigenlijk misbruiken), dus het is zaak om hem zo snel mogelijk te dichten. Dat heeft HP dan ook gedaan. Sinds 27 juli is er een patch beschikbaar. Voor een bedrijf dat zich de afgelopen jaren zo sterk heeft gericht op security, zowel voor pc’s als voor printers, is deze onthulling wederom wel een beetje pijnlijk voor HP. Het gaat hier evenals de vorige keer om slordig ontwikkelen. Een bestaande driver gebruiken en aanpassen is op zich niets mis mee, maar doe het dan wel goed.