CVE-2016-7941 – XSS in Netgear ProSAFE switches

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, is 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 werd de volgende payload gebruikt: hi" onclick=alert("xss") x=".
Om erachter te komen op welke punten het mogelijk is de payload kwijt te kunnen, wordt SNMPWALK (ons target is 192.168.1.30) gebruikt:
snmpwalk -mALL -v2c -c public 192.168.1.30.

Hiermee werd duidelijk dat de key iso.3.6.1.2.1.1.5.0 gerelateerd is aan de system name. Met deze informatie kan de waarde gewijzigd worden. Dit wordt gedaan met de tool 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 er ingelogd wordt op de Netgear web interface (in dit geval http://192.168.1.30), is de payload aanwezig. Wanneer er daarna op het system name veld wordt geklikt, verschijnt er een alert box met de melding “xss”.

Kwetsbare devices en de response

Na de ontdekking dat het om een nieuwe kwetsbaarheid ging, is er contact gezocht met Netgear. Voordat dit gedaan werd is er een nieuwe CVE geregistreerd (CVE-2016-7941). Na twee weken kwam er een eerste reactie van Netgear, met het verzoek om een Excel bestand in te vullen. Nadat dit gedaan is, heeft NetGear een ontvangstbevestiging gestuurd en de belofte gedaan dat er snel contact met ons opgenomen zou worden. 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.