Citrix ADC kwetsbaarheid

C

Enkele dagen geleden heeft Citrix melding gemaakt van een kwetsbaarheid in hun Citrix ADC platform. Het betreft een zogenaamde ‘Oracle Padding vulnerability’ waarmee een potentiele aanvaller mogelijk het TLS verkeer van de ADC’s kan onderscheppen en ontsleutelen waardoor deze informatie leesbaar gemaakt wordt. Voor de kwetsbaarheid is een CVE kwetsbaarheidsrapport opgesteld onder nummer CVE-2019-6485.

Binnen enkele dagen zullen de details onder meer in de National Vulnerability’ Database (NVD) van de National Institute of Standards and Technology (NIST) gepubliceerd worden op https://nvd.nist.gov/vuln/

Getroffen versies

Citrix maakt in het https://support.citrix.com/article/CTX240139 artikel kenbaar dat enkel de Netscaler ADC’s die gebruik maken van hardware acceleratie getroffen zijn door de bovengenoemde kwetsbaarheid. Hierdoor zijn de Virtual Appliances (de VPX) varianten van de ADC’s niet kwetsbaar evenals de onderstaande modellen:

• MPX 5900 series
• MPX/SDX 8900 series
• MPX/SDX 15000-50G
• MPX/SDX 26000-50S series
• MPX/SDX 26000-100G series
• MPX/SDX 26000 series

Voor de overige modellen met een firmware ouder dan vermeld in de onderstaande lijst geldt dat deze wel kwetsbaar zijn:

• Citrix ADC and NetScaler Gateway version 12.1 ouder dan build 50.31
• Citrix ADC and NetScaler Gateway version 12.0 ouder dan build 60.9
• Citrix ADC and NetScaler Gateway version 11.1 ouder dan build 60.14
• Citrix ADC and NetScaler Gateway version 11.0 ouder dan build 72.17
• Citrix ADC and NetScaler Gateway version 10.5 ouder dan build 69.5

Voor deze modellen zijn firmware updates beschikbaar op de Citrix website: https://www.citrix.com/downloads/netscaler-adc/

Het platform en de versie van de Citrix ADC kunnen via de CLI worden opgevraagd met de commando’s ‘sh hardware’ en ‘sh version’:

Via de GUI is het platform te vinden in de hoofdpagina van de ADC:

De firmware versie is onder andere in de linkerbovenhoek onder het uitklapmenu van het ingelogde account te vinden:

Daarnaast heb ik een PowerShell script beschikbaar gemaakt waarmee eenvoudig het platform en de firmware versie opgevraagd kan worden: https://github.com/eltjovangulik/PowerShell

De syntax is als volgt:

.\nscheckversion.ps1 -nsip ipadres -adminaccount nsroot -adminpassword nsrootwachtwoord

Hierbij dient bij de parameter ipadres het IP adres van de NSIP van de Citrix ADC. De parameters adminaccount en adminpassword zijn niet verplicht. Wanneer deze weggelaten worden zal er getracht worden om met de default credentials in te loggen.

Meer informatie over de kwetsbaarheid

Deze kwetsbaarheid betreft een zogenaamde ‘Padding Oracle Vulnerability’ in de CBC gebaseerde versleuteling.

CBC staat voor Cipher Bock Chaining en is een blokversleutelingsmodus. In tegenstelling tot stroomversleuteling waarbij een boodschap bit voor bit versleuteld wordt, wordt bij het gebruik van blokversleuteling een blok van meerdere bits (ook wel de blokgrootte genoemd) tegelijk versleuteld met een coderingssleutel. De blokgrootte heeft hierbij altijd een vaste lengte. Hierdoor kan het dat er bits toegevoegd moeten worden aan het blok om aan de vast gedefinieerde blokgrootte te komen. Dit wordt Padding of in het Nederlands opvulling genoemd. Met de CBC modus van blokversleuteling wordt ieder blok eerst door exclusive OR (XOR) functie gehaald samen met het voorgaande blok, voordat het blok met de coderingssleutel wordt vercijferd. Dit is anders dan bij EBC (Electronic Code Book) waarbij ieder blok met dezelfde sleutel wordt vercijferd. Het probleem met ECB is dat wanneer er een opeenvolgende gelijke waarden versleuteld worden alle gecodeerde blokken ook identiek zullen zijn, terwijl dit bij het gebruik van de CBC modus niet het geval is.

Bij een Padding Oracle aanval, lekt het oracle (meestal de server) informatie over of padding correct of incorrect is, door een “invalid padding” foutmelding terug te geven.  Deze informatie kan vervolgens gebruikt worden de blokken via het orakel te ontsleutelen met behulp van de sleutel van het orakel, zonder de coderingssleutel te hoeven weten.

Naast het upgraden van de firmware is het mogelijk om gebruik te maken van een nieuwe versleutelingsmodus zoals bijvoorbeeld Galois/Counter Mode (GCM) welke niet vatbaar is voor de Oracle Padding kwetsbaarheid. Zie https://docs.citrix.com/en-us/netscaler/12-1/ssl/ciphers-available-on-the-citrix-adc-appliances voor welke versleutelingen beschikbaar zijn voor de verschillende ADC modellen en platformen.

Photo by Wout Vanacker on Unsplash

Over de auteur

Eltjo van Gulik

Eltjo is een enthousiaste en gedreven technisch consultant met ruim 18 jaar ervaring in de IT met een sterke focus op server- en applicatie virtualisatie producten van onder andere Microsoft (RDS, App-v, etc) en Citrix (XenDesktop, XenApp) en het installeren, configureren en beheren van applicaties binnen deze omgevingen.

Door Eltjo van Gulik

Over

Eltjo van Gulik

Eltjo is een enthousiaste en gedreven technisch consultant met ruim 18 jaar ervaring in de IT met een sterke focus op server- en applicatie virtualisatie producten van onder andere Microsoft (RDS, App-v, etc) en Citrix (XenDesktop, XenApp) en het installeren, configureren en beheren van applicaties binnen deze omgevingen.

Contact