Google en Red Hat hebben een patch uitgebracht voor een kritiek lek in de veelgebruikte GNU C Library, oftewel glibc. Het lek maakte vanaf versie 2.9 een aanval mogelijk, waarbij door een stack-based buffer overflow willekeurige code op kwetsbare apparaten kon worden uitgevoerd.
Google laat in een blogpost weten dat een van zijn medewerkers de bug, bekend onder cve-2015-7547, vond toen hij probeerde een ssh-verbinding op te zetten met een bepaalde host. Na herhaaldelijk crashen van zijn ssh-client stuitte hij op een bug in de glibc-bibliotheek. Tot verbazing van Google was deze bug al sinds juli 2015 bekend bij de glibc-beheerders en waren twee Red Hat-medewerkers op hetzelfde moment als Google met een patch bezig.
De bug is aanwezig in de client side dns resolver van glibc, die verantwoordelijk is voor de vertaling van een domeinnaam naar een ip-adres. Wanneer de library function 'getaddrinfo' wordt gebruikt kan een aanvaller met een bepaalde domeinnaam of dns-server een udp- of tcp-antwoord van meer dan 2048 bytes versturen, waardoor het daarvoor gereserveerde geheugen wordt overschreden. Daardoor kan er uiteindelijk willekeurige code uitgevoerd worden op kwetsbare apparaten. Volgens Google is dit niet eenvoudig, omdat technieken als ASLR daartegen kunnen beschermen.
Het is nog niet duidelijk hoeveel applicaties glibc gebruiken, Google noemt slechts ssh, sudo en curl. Besturingssystemen als Windows en OS X zijn niet getroffen door het lek. Android is ook niet kwetsbaar, omdat het gebruikmaakt van de alternatieve 'Bionic'-bibliotheek. Omdat de kwetsbaarheid aanwezig is in apparaten met glibc 2.9 of hoger is het waarschijnlijk dat de bug wel een groot aantal apparaten, waaronder Linux-computers en routers, treft.
Ars Technica constateert dat de bug problematisch is, omdat de kwetsbare bibliotheek vaak aanwezig is op netwerkapparaten die geen regelmatige updates ontvangen en ook niet gebruikmaken van beschermingstechnieken als ASLR. Een volledige lijst met kwetsbare apparaten zal echter nog opgesteld moeten worden.
Versie 2.9 van glibc werd in 2008 gereleased. Er is inmiddels een patch beschikbaar en het wordt gebruikers dan ook aangeraden om de nodige updates uit te voeren.