Een paar jaar geleden vond een van onze onderzoekers een unauthenticated stored XSS vulnerability in de ProSAFE Gigabit Smart Managed switches van Netgear. Ondanks dat dit al even geleden is, vonden we het toch de moeite waard om dit alsnog te documenteren, zeker omdat de details nog niet eerder gepubliceerd zijn.
De kwetsbaarheid
Tijdens een security training heeft een docent haar persoonlijke Netgear GS108T van huis meegenomen. Ze was benieuwd hoe veilig deze ProSAFE devices nou echt waren, en vroeg ons erin te duiken. Dit leidde tot de ontdekking van een nieuwe kwetsbaarheid.
De Netgear switch had twee poorten open staan, waarmee administrators instellingen konden wijzigen op het apparaat. Dit was een web interface en SNMP. De laatste was niet beschermd met authenticatie.
Voor web applicaties is XSS altijd een gevaar wat op de loer ligt, dus Netgear deed een poging dit te voorkomen. In de implementatie werd foute input gefilterd, maar er werd geen output encoding toegepast. Deze input filtering was tevens alleen aanwezig in de web interface. Aangezien de instellingen ook via SNMP aangepast konden worden, was dit een probleem. Omdat niet alle instellingen direct via SNMP beschikbaar of geschikt waren voor een aanval, waren uiteindelijk alleen de system name, system location, and system contact kwetsbaar.
Exploiting via SNMP
In the web interface werd de waarde in een text box geplaatst. Om hier uit te breken gebruiken we de volgende payload: hi" onclick=alert("xss") x="
.
Om erachter te komen op welke punten we onze payload kwijt kunnen, gebruiken we SNMPWALK (ons target is 192.168.1.30):
snmpwalk -mALL -v2c -c public 192.168.1.30
.
Hiermee vinden we dat de key iso.3.6.1.2.1.1.5.0 gerelateerd is aan de system name. Met deze informatie kunnen we de waarde wijzigen. We doen dit met het tooltje snmpset: snmpset -v 2c -c private 192.168.1.30 iso.3.6.1.2.1.1.5.0 s 'hi" onclick=alert("xss") x="'
Wanneer we nu inloggen op de Netgear web interface (in this case http://192.168.1.30), is onze payload aanwezig. Wanneer iemand op het system name veld klikt, verschijnt er een alert box met de melding “xss”.
Kwetsbare devices en de response
Na de ontdekking dat het om een nieuwe kwetsbaarheid ging, zochten we contact met Netgear. Voordat we dit deden lieten we een nieuwe CVE registreren (CVE-2016-7941). Na twee weken kregen we een eerste reactie van Netgear, met het verzoek om een Excel bestand in te vullen. Nadat we dit gedaan hebben, kregen we een ontvangstbevestiging en de belofte dat ze snel contact met ons op zouden nemen. Daarna werd het stil.
Na een paar maanden besloten we te Googlen op de CVE. Tot onze verbazing verscheen er een Security Advisory omtrent dit issue. In deze advisory stond dat de volgende devices kwetsbaar zijn:
- GS724Tv3 en GS716Tv2 met firmware versie 5.4.2.25 of eerder
- GS510TP met firmware versie 5.4.2.25 of eerder
- GS108Tv2 en GS110TP met firmware versie 5.4.2.25 of eerder
- GS748Tv4 met firmware versie 5.4.2.25 of eerder
We wachten nog steeds op een reactie van Netgear, maar intussen hebben we wel de nieuwe firmware kunnen updaten die het probleem verhelpt.
