2 votos

Qué hacer con la reciente vulnerabilidad de ejecución remota de código en git (en El Capitan)

El reciente ejecución remota de código El error en git parece bastante serio. La forma en que leo esto es que si estoy ejecutando un cliente git anterior a la versión 2.7.1, soy susceptible de ejecución remota de código si uso git para interactuar con un repo malicioso (o comprometido). Parece que una actualización manual del cliente git está en orden, pero rootless impide que cosas como brew funcionen. (Actualmente estoy en la última versión estable de Xcode 7.2.1)

¿Cuál es la mejor manera de avanzar con El Capitán? ¿Desactivar el rootless e instalar con brew? ¿Instalar un cliente git actualizado desde el código fuente? (el último binario estable parece ser anterior a 2.7.1) ¿Hay un cliente git actualizado en una versión más reciente de Xcode?

0 votos

¿Podría editar esto para acotar lo que busca hacer? ¿Quitar el binario del cliente git? ¿Poner uno nuevo en su ruta? ¿Cuál es tu configuración? ¿Estás sirviendo repos git? ¿Usas Xcode? ¿O sólo estás buscando a alguien que diga que fuera de la caja ElCapitan no escuchan a git y no son hackeables?

0 votos

Actualizado. El cliente git estable actual (en xcode y en el binario estable de git-scm) parece ser anterior a la versión 2.7.1 y tiene una vulnerabilidad de ejecución remota de código. Busco orientación sobre la mejor manera de actualizar manualmente el cliente git a una versión no vulnerable bajo El Capitan.

0 votos

Gracias por la edición. La definición de Wikipedia de RCE es desencadenar la ejecución de código de forma remota - por lo que el uso del cliente git para sacar código de un repositorio malicioso parece inferior a RCE en mi libro. Sin embargo - asumiendo que sólo quieres saber cómo evitar el uso de un cliente git vulnerable hasta/si Apple lo parchea, vamos a abrir esto por ahora y ver lo que surge.

3voto

CD-RUM Puntos 131

Si usas Homebrew es bastante fácil:

brew upgrade git
which git
=> /usr/local/bin/git
git --version
=> git version 2.7.3

Hecho.

1 votos

No sé por qué esto no recibe más votos. Homebrew se actualizó hace mucho tiempo ya y funciona bien con Rootless en El Capitán; /usr/local y /Library/Caches/Homebrew no son ubicaciones protegidas del sistema de archivos: support.apple.com/es-us/HT204899 ("Rutas y aplicaciones que pueden escribir las aplicaciones e instaladores de terceros: /Applications , /Library , /usr/local ").

2voto

Oskar Puntos 1242

Brew nunca funciona para reemplazar o parchear una versión del sistema operativo - está conscientemente diseñado para poner sólo binarios al lado de los de Apple y no en lugar de.

Si quieres asegurarte de que ningún programa llame al programa de Apple /usr/bin/git o no lo llamas, entonces estos pasos lograrán el objetivo de endurecer tus instalaciones de 10.11:

  1. Ejecutar Recuperación de OS X manteniendo pulsada la tecla Comando-R mientras se inicia el Mac.
  2. Utilice el menú Utilidades para ejecutar Terminal
  3. csrutil disable
  4. reiniciar
  5. Acceda al modo de usuario único manteniendo pulsada la tecla Comando-S mientras el Mac se reinicia.
  6. mount -uw /
  7. rm /usr/bin/git
  8. detener
  9. Repita el paso de recuperación de OS X y abra el Terminal y ejecute csrutil enable
  10. reiniciar

En este punto, el git de Apple es eliminado.

Buscar otros git binarios:

  • /Library/Developer/CommandLineTools/usr/bin/git es 2.5.4
  • /Applications/Xcode.app/Contents/Developer/usr/bin/git es 2.5.4

El riesgo es muy leve, ya que sólo se ejecutó sin SIP en modo de usuario único el tiempo suficiente para eliminar el único binario. También puede obtener git 2.7.4 de brew a partir del 18 de marzo de 2016 si lo desea:

brew install git
git --version

Deberá vigilar todas las actualizaciones de OS X para asegurarse de que no aparezca otra copia de git que está parcheado más abajo de lo que deseas. Para la mayoría de la gente, yo me centraría en conectarme sólo a servidores que estén parcheados y/o que se sepa que no son maliciosos. El simple hecho de tener el git sentado allí es un riesgo bajo en mi lectura de la situación.

Algunos otros hilos de interés:

0 votos

¿Busca Xcode en /usr/local/bin ¿en absoluto?

0 votos

Puedo probar eso @patrix en un rato. Lo que recuerdo es que empaqueta su propio git, así que tal vez alguien que quiera destripar todos los viejos binarios git necesita buscar más a fondo que sólo en /usr/bin . En concreto, las herramientas de línea de comandos actuales tienen /Library/Developer/CommandLineTools/usr/bin/git en 2.5.4

0 votos

Así que para proteger un sistema de desarrolladores estos binarios git deben ser reemplazados también supongo (hay /Applications/Xcode.app/Contents/Developer/usr/bin/git y /Applications/Xcode.app/Contents/Developer/usr/libexec/git-c‌​ore/git en Xcode, también herramientas como Github.app o SourceTree.app incluyen su propio git ). Por lo tanto, la protección de un sistema requerirá algo más que la desactivación de /usr/bin/git .

0voto

jorfus Puntos 16

No tengo ningún flujo de trabajo en el que otras herramientas llamen a git, así que me parece bien instalar simplemente una versión parcheada y usarla.

Hice lo siguiente:

  • Clonado del repo oficial de git
  • Instalado con make && make install
  • Y he añadido ~/bin a mi ruta de acceso en .profile

Eso debería funcionar bien para mí, creo.

En cuanto a interactuar sólo con fuentes de confianza, claro que es lo ideal, pero no hay excusa para utilizar un software conocido como vulnerable. Hay muchos ejemplos de fuentes de confianza que se ven comprometidas. Tener un git clone realmente capaz de ejecutar código arbitrario es indeseable en mi opinión.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X