Beveiligingsonderzoeker Nir Goldshlager ontdekt opnieuw fouten in de OAuth-implementatie van Facebook. Hierdoor kunnen aanvallers tokens bemachtigen die apps gebruiken om toegang te krijgen tot accounts. De onderzoeker ontdekte eerder dit jaar ook al fouten in de toepassing van OAuth door Facebook.

De ontdekker waarschuwde toen al voor meerdere gaten in het OAuth-protocol. Een eerder gat zorgde ervoor dat elke willekeurige applicatie ook zonder expliciete toegangsrechten deze alsnog kon verkrijgen. Facebook dichtte dit lek, maar het nieuwe lek moet door ontwikkelaars zelf worden gedicht.

Kapen via subdomein

Goldshlager demonstreert hoe een gat in OAuth ervoor zorgt dat tokens zijn te kapen via een subdomein. De aanvaller moet hiervoor wel weten of de applicatie een parameter gebruikt om naar een subdomein te verwijzen. Daarbij moet ook de site van de app-ontwikkelaar een fout bevatten om een redirect toe te staan naar een pagina van de aanvaller.

Dat de theorie sluitend is, bewijst Goldshalger door te demonstreren hoe hij dit voor elkaar kreeg bij Skype en Dropbox. Beide gaten zijn inmiddels door de ontwikkelaars gedicht, maar ze demonstreren dat de aanval niet louter theoretisch en praktisch uit te voeren is.

Kwestie van tijd

Goldshlager waarschuwt dat het slechts een kwestie is van tijd voor iemand een tool bouwt die geautomatiseerd de tokens van Facebook-gebruikers kaapt via het OAuth-gat. “Zo'n tool kan in theorie mensen zonder enige vaardigheden in staat stellen om access_tokens te plunderen van Facebook-gebruikers om toegang te krijgen tot hun accounts", aldus de onderzoeker

“Facebook staat machteloos om dit issue op te lossen", aldus Goldshalger. “De ontwikkelaar of eigenaar van de app moet zijn verantwoordelijkheid nemen voor deze fouten om potentieel malafide redirect-aanvallen te voorkomen."

Facebook zou bijvoorbeeld zelf de redirect-parameter kunnen aanpassen om alleen specifieke domeinen toe te staan, oppert Goldshlager. Maar dat zou betekenen dat applicaties die hem gebruiken, niet meer functioneren, dus dat gaat niet van de ene op de andere dag.

Een PoC-video van Goldshlager die het OAuth-probleem demonstreert.