En estos días se ha hecho eco sobre la vulnerabilidad llamada PwnKit, un fallo de seguridad presente en el componente Polkit y que pone en riesgo la mayoría de los sistemas Linux no actualizados hasta el momento. Según el artículo de qualys, la notificación y alerta de esta vulnerabilidad se realizó el 18 de noviembre de 2021, mientras que el parche de seguridad se publicó recién el 11 de enero de 2022. Actualmente, existen un gran volumen de equipos vulnerables que están siendo explotados por los cibercriminales.
¿Qué es Polkit?
Polkit es una aplicación de herramientas de desarrollo para el control de privilegios en sistemas operativos del tipo UNIX. Proporciona la capacidad de que procesos no privilegiados puedan comunicarse con procesos privilegiados.
Entre los comandos de Polkit se encuentra pkexec con permisos SUID.
Los permisos SUID permiten a los binarios ser ejecutados por cualquier usuario, como si tuvieran las propiedades de sus dueños. Por ejemplo, un archivo SUID que sea propiedad del usuario BOB, puede ser ejecutado por ALICE con todos los permisos que tiene BOB. Es por ello que hay que ser precavidos con los binarios que cuenten con permisos SUID.
¿En qué consiste escalar privilegios?
El método de escalar privilegios consiste en que un usuario con pocos permisos logra obtener los privilegios de un usuario de mayor rango. Por ejemplo, un usuario guest que logra aprovecharse de una vulnerabilidad para convertirse en root. Uno de los métodos más conocidos para escalar privilegios es haciendo uso de los binarios con permisos SUID, como explicamos anteriormente, un usuario podría usar un archivo SUID para obtener los permisos de un usuario de mayor rango. Por ello, la escalación de privilegios busca realizar acciones más allá de las permitidas por el archivo SUID.
Impacto de Pwnkit
El problema de la vulnerabilidad Pwnkit es que existen muchos exploits públicos en internet. Además, es común que administradores de sistemas realicen actualizaciones focalizadas ya que una actualización completa del sistema podría afectar algún servicio por problemas de compatibilidad, por lo que esta práctica habitual de administradores, conjunto a la amplia disposición de exploits públicos, generan las condiciones óptimas para que los cibercriminales intenten explotar esta vulnerabilidad.
A modo de ejemplo, la vulnerabilidad puede ser aprovechada por los atacantes al comprometer un sistema en el que consigan un usuario con bajos privilegios, y al ejecutar Pwnkit obtengan los permisos del usuario root y así adueñarse completamente el sistema (Ejemplo: Escalación de privilegios de www-data a root).
¿Cómo funciona Pwnkit?
El error que aprovecha el exploit radica en que pkexec no manipula correctamente los parámetros de llamada y termina intentando ejecutar variables de entorno como comandos. En base a lo anterior, un ciberatacante podría usar la vulnerabilidad para inyectar variables de entorno maliciosas para luego obtener una shell de comandos con privilegios elevados.
Prueba de concepto
Para la prueba de concepto usaremos el exploit del siguiente repositorio.
[sc name=»asciinema» id=»465161″ ][/sc]
Conclusiones
Dado el impacto de dicha vulnerabilidad, se recomienda realizar una actualización completa de la aplicación polkit. De no poder actualizar, se sugiere remover los permisos SUID en el binario pkexec.
Así como esta vulnerabilidad, pueden existir más fallas en los sistemas operativos que desconozcamos. Por ello recomendamos a los usuarios y administradores estar atentos a las noticias y publicaciones de ciberseguridad.