
Un colaborador de curl reemplazó una carta ASCII con una alternativa unicode En una solicitud de cuna, escribe el desarrollador/fundador principal de Curl Daniel Stenberg. Y no se notó un solo revisor humano en el equipo (o cualquiera de sus trabajos de CI).
El cambio “parecía idéntico a la traducción ASCII, por lo que no era posible detectar visualmente esto …”
El impacto de cambiar una o más trivio en una URL, por supuesto, puede ser devastador dependiendo de las condiciones … (w) E han implementado controles para ayudarnos a los humanos pobres a detectar cosas como esta. Para detectar unicode solapado. Hemos anejo Y tu trabajo Eso escanea todos los archivos y valida cada secuencia UTF-8 en el repositorio de Git.
En el repositorio de curl Git, la mayoría de los archivos y la mayoría de los contenidos son simples, por lo que podemos “fácilmente” la nómina blanca de un pequeño conjunto de secuencias UTF-8 y algunos archivos específicos, el resto de los archivos simplemente no están permitidos usar UTF-8, ya que luego fallarán el trabajo de CI y se ponen rojos. Para conducir este cambio a casa, revisamos todos los archivos de prueba en el repositorio de curl y nos aseguramos de que todos los ocurrencias de UTF-8 fueran reemplazados por otro tipo de secuencias de escape y similares. Algunos de ellos todavía se usaron más o menos por error y podrían ser reemplazados fácilmente por sus homólogos ASCII.
La próxima vez que determinado nos intente este truco, podría ser determinado con menos buenas intenciones, pero ahora idealmente nuestro CI nos dirá … Queremos y nos esforzamos por ser proactivos y apretarlo todo. ayer Las personas maliciosas explotan cierta afición en algún punto, pero la seguridad sigue siendo esta carrera interminable donde solo podemos hacer lo mejor que podamos y mientras el otro banda está trabajando en silencio y podría atacarnos en algún punto futuro de nuevas formas creativas que no habíamos anticipado. Ese futuro ataque desconocido es poco complicado.
En la publicación diferente del blog, Stenberg se quejó de que “escasamente no había respuestas” de Github (bromeando “, tal vez todos están demasiado ocupados implementando la próxima función de IA que no queremos”). Pero horas luego publicó una puesta al día.
“Github me ha dicho que han planteado esto como un problema de seguridad internamente y que están trabajando en una decisión”.