Een ernstig beveiligingslek in het populaire gameplatform Steam maakte het mogelijk voor aanvallers om op afstand malware te installeren en accounts over te nemen. Alleen het bezoeken van een kwaadaardige website was voldoende geweest. Er was geen verdere interactie van gebruikers nodig.
De kwetsbaarheid was aanwezig in de Steam-client. De software beschikt over een serverbrowser waarmee gameservers kunnen worden gevonden. Voor het ophalen van informatie over deze servers communiceert de browser via een specifiek UDP-protocol. Onderzoekers Vinnie Vanhoecke en André Baptista ontdekten dat het mogelijk was om via de serverbrowser een buffer overflow te veroorzaken als die informatie over een kwaadaardige server ophaalde.
"Een aanvaller kan willekeurige code op de computer van elke Steamgebruiker uitvoeren die de serverinformatie over onze kwaadaardige server bekijkt", aldus de onderzoekers. Zo zou het bijvoorbeeld mogelijk zijn geweest om Malware te installeren, bestanden te stelen of accounts over te nemen.
Wat de aanval interessant maakt is dat er nauwelijks interactie van de gebruiker was vereist. Gebruikers konden op verschillende manieren worden aangevallen. Bijvoorbeeld als de serverbrowser van Steam werd gebruikt om serverinformatie op te vragen, maar ook wanneer de gebruiker een kwaadaardige website bezocht die van het Steam-browserprotocol gebruikmaakte.
De onderzoekers maakten een video waarbij de exploit op Windows 10 wordt gedemonstreerd. De gebruiker bezoekt een kwaadaardige website die een verborgen iframe bevat en de exploit vervolgens uitvoert. Het is hierbij niet nodig dat Steam op het moment van de aanval al actief is. De aanval werkte ook als Steam al draaide.
De onderzoekers waarschuwden Steam-ontwikkelaar Valve op 21 december vorig jaar, waarna er op 19 februari een beveiligingsupdate voor de Steam-client verscheen. Voor hun bugmelding ontvingen de onderzoekers een beloning van 15.000 dollar, aangevuld met een bonus van 3.000 dollar vanwege de kwaliteit van de bugmelding.
Bron: security, hackerone