Descripción: 

La versión de Citrix ADC o Citrix NetScaler Gateway SSL VPN, está corriendo un servidor web remoto y este es afectado por un directorio transversal que puede llevar a la ejecución de código remoto.  

Un atacante remoto puede llegar a explotar esta vulnerabilidad, enviando una solicitud HTTP con un PATH Transversal.  

Se ha establecido que esta vulnerabilidad también afecta ciertas implementaciones de Citrix SD-WAN, específicamente a la edición Citrix SD-WAN WANOP. La edición SD-WAN WANOP de Citrix empaqueta Citrix ADC como un balanceador de carga, lo que resulta que se vea afectado.  

Solución: 

Aplica para los productos: Netscaler, NetScaler Gateway, Citrix ADC, Citrix Gateway y Citrix SD-WAN WANOP.  

Para mitigar la vulnerabilidad en los dispositivos WANOP importantes, se deberán aplicar los mismos pasos a la instancia del balanceador de carga Citrix ADC que está en el dispositivo WANOP. La instancia de Citrix ADC y los detalles asociados se enumeran en la GUI de WANOP en Configuración;
(descripción general)>Configuration (Overview) > Maintenance > Instances > Load Balancer.
El administrador asigna las credenciales para esta instancia de ADC durante la implementación.
El administrador deberá iniciar sesión en la instancia de ADC con estas credenciales para aplicar las mitigaciones.  

Las siguientes instrucciones del Sistema independiente también se aplican al Citrix ADC en el dispositivo WANOP.  

Como siempre, asegúrese de que la configuración del sistema se haya guardado en su estado actual antes de emprender las mitigaciones. El procedimiento implica reiniciar instancias y puede causar que se pierdan datos temporales en el proceso.

Standalone  

Ejecute los siguientes comandos desde la interfaz de línea de comandos del dispositivo ADC o Gateway para crear una acción y política de respuesta:
enable ns feature responder
add responder action respondwith403 respondwith “\”HTTP/1.1 403 Forbidden\r\n\r\n\””
add responder policy ctx267027 “HTTP.REQ.URL.DECODE_USING_TEXT_MODE.CONTAINS(\”/vpns/\”) && (!CLIENT.SSLVPN.IS_SSLVPN || HTTP.REQ.URL.DECODE_USING_TEXT_MODE.CONTAINS(\”/../\”))” respondwith403
bind responder global ctx267027 1 END -type REQ_OVERRIDE
save config

Los siguientes comandos garantizan que los cambios se apliquen también a las interfaces de administración. Desde la interfaz de línea de comandos, ejecute los siguientes comandos:
shell nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0
shell “echo ‘nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0’ >> /nsconfig/rc.netscaler”
reboot

HA Pair
En el primario
enable ns feature responder
add responder action respondwith403 respondwith “\”HTTP/1.1 403 Forbidden\r\n\r\n\””
add responder policy ctx267027 “HTTP.REQ.URL.DECODE_USING_TEXT_MODE.CONTAINS(\”/vpns/\”) && (!CLIENT.SSLVPN.IS_SSLVPN || HTTP.REQ.URL.DECODE_USING_TEXT_MODE.CONTAINS(\”/../\”))” respondwith403
bind responder global ctx267027 1 END -type REQ_OVERRIDE
save config
shell nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0
shell “echo ‘nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0’ >> /nsconfig/rc.netscaler”

En el secundario, después de haberlo realizado en el primero
shell nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0
shell “echo ‘nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0’ >> /nsconfig/rc.netscaler”
reboot

Debe confirmar que el nodo secundario, tenga el comando
‘nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0′ en el archivo – /nsconfig/rc.netscaler.  

El proceso de reinicio es indiferente, siempre y cuando se haya hecho el cambio en él HA Primario, inicialmente.  

Cluster
En CLIP
enable ns feature responder
add responder action respondwith403 respondwith “\”HTTP/1.1 403 Forbidden\r\n\r\n\””
add responder policy ctx267027 “HTTP.REQ.URL.DECODE_USING_TEXT_MODE.CONTAINS(\”/vpns/\”) && (!CLIENT.SSLVPN.IS_SSLVPN || HTTP.REQ.URL.DECODE_USING_TEXT_MODE.CONTAINS(\”/../\”))” respondwith403
bind responder global ctx267027 1 END -type REQ_OVERRIDE
save config
shell nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0
shell “echo ‘nsapimgr_

En cada nodo del cluster
shell nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0
shell “echo ‘nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0’ >> /nsconfig/rc.netscaler”
shell reboot

Favor cerciorarse que todos los nodos del cluster tengan el comando:
‘nsapimgr_wr.sh –ys skip_systemaccess_policyeval=0′ en los archivos /nsconfig/rc.netscaler.  

Si el clúster tiene que estar en producción durante el procedimiento de mitigación, asegúrese que el nodo que se reinicia se vuelve a unir al clúster (es decir, el estado operativo cambia de Desconocido a Activo) antes de reiniciar otros nodos en el clúster.  

Partición ADMIN
switch ns partition <partition_name>
enable ns feature responder
add responder action respondwith403 respondwith “\”HTTP/1.1 403 Forbidden\r\n\r\n\””
add responder policy ctx267027 “HTTP.REQ.URL.DECODE_USING_TEXT_MODE.CONTAINS(\”/vpns/\”) && (!CLIENT.SSLVPN.IS_SSLVPN || HTTP.REQ.URL.DECODE_USING_TEXT_MODE.CONTAINS(\”/../\”))” respondwith403
bind responder global ctx267027 1 END -type REQ_OVERRIDE
save config

Queremos hacer enfatizar, en que debe asegurarse de aplicar los pasos anteriores en todas las particiones individuales, incluida la predeterminada. Luego ejecute los siguientes pasos en la partición predeterminada.
switch ns partition default
shell nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0
shell “echo ‘nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0’ >> /nsconfig/rc.netscaler”

Procedimiento para revertir cambios  

Estos pasos son aplicables a standalone, CLIP en clúster y HA Pair en un par de HA y a cada partición de administrador. Este procedimiento también se puede llevar a cabo al actualizar a las versiones fijas una vez que estén disponibles.
unbind responder global ctx267027
rm responder policy ctx267027
rm responder action respondwith403

El siguiente comando está diseñado para buscar dentro de un archivo el patrón especificado y, en consecuencia, eliminar la línea que se agregó originalmente.  
Esto eliminará efectivamente el comando nsapimgr del archivo – rc.netscaler.
shell nsapimgr_wr.sh -ys skip_systemaccess_policyeval=1
shell “sed -i ” ‘/skip_systemaccess_policyeval=0/d’ /nsconfig/rc.netscaler”
reboot

El reinicio, en cada uno de los escenarios anteriores, no es necesario para aplicar la política, sino que es un paso recomendado para garantizar que las sesiones abiertas obtenidas a través de la vulnerabilidad antes de la aplicación de la política, en caso de que se hallen, sean borradas. 

Referencias:
https://www.tenable.com/plugins/nessus/132752
https://www.poppelgaard.com/cve-2019-19781-what-you-should-know-and-how-to-fix-your-citrix-adc-access-gateway

 

No Comment

You can post first response comment.

Leave A Comment

Please enter your name. Please enter an valid email address. Please enter message.

You may also like