
安全编码技术:Zip 库的默认行为可能会导致远程代码执行
Esta semana vamos a hablar del comportamiento por defecto de las librerías Zip. Si eres un desarrollador de aplicaciones, es muy probable que hayas utilizado esto antes. La mayoría de los recursos que se descargan por internet están en formato zip, esto tiene sentido; los datos comprimidos son más pequeños, por lo que se descargan más rápido y consumen menos ancho de banda.
Si quieres algunos ejemplos más concretos: texturas para juegos, paquetes de idiomas para autocompletar en los teclados, ... Muchos recursos no se incluyen automáticamente en la aplicación, sino que se descargan posteriormente.
Pero tenga cuidado al usar esta funcionalidad, los nombres de los archivos en zip pueden contener información de recorrido. Cuando se extrae, esto hará que se creen archivos fuera del directorio previsto. Esto se hace a menudo con la intención de sobrescribir los archivos existentes.

Digamos que tenemos un archivo zip que contiene los siguientes dos archivos:
archivo1
../archivo2
Cuando se extrae este archivo, el archivo1 se extrae donde esperamos que esté, en el directorio de descompresión. Sin embargo, el archivo2 fue escrito un directorio más arriba de donde le pedimos a la biblioteca zip que extrajera el archivo.
Así que tenga cuidado, si su librería zip no tiene cuidado de manejar adecuadamente este caso, permitirá a un atacante escribir un archivo arbitrario en el sistema. Compruebe siempre si su librería es segura, esta regla general es válida para cualquier librería, pero en particular sabe comprobar el comportamiento por defecto de su librería zip para este tipo de archivos.
Vamos a demostrar las consecuencias cuando este caso no se maneja correctamente en Android. En Android se utiliza la librería Java Zip (java.util.zip), que permite recorrer la ruta como se ha explicado anteriormente por defecto.
El formato Dalvik Executable (.dex) de Android tiene limitaciones en cuanto a la cantidad de clases que puede tener un solo archivo. Las aplicaciones que necesitan más clases pueden hacer uso de la librería MultiDex Support que se ha añadido desde el nivel 21 de la API (Android 5.0 Lollipop). Esta librería guarda archivos .dex secundarios en el directorio de datos de la aplicación, este directorio es escribible por el usuario de la app y este código será cargado y ejecutado cuando el archivo .dex sea necesario.
Esto significa que un atacante puede modificar el archivo .dex sobrescribiéndolo mediante un archivo zip malicioso y, lo que es peor, este archivo se cargará y se ejecutará, dando lugar a una vulnerabilidad de ejecución remota de código. Esto no es sólo un ejemplo teórico, sino que se ha demostrado en la aplicación My Talking Tom, que tiene más de 100 millones de descargas en la tienda de aplicaciones. Aquí hay un vídeo del exploit que se presentó en Black Hat.

Compruebe siempre el comportamiento de su biblioteca zip para conocer sus inseguridades. Si no puedes desactivar el path traversal en tu librería zip, asegúrate de validar el nombre de cada entrada antes de extraerla. El nombre debería estar canonizado y la ruta resultante debería estar en el directorio en el que quieres extraer el archivo. Ya que estamos, también deberías comprobar el tamaño total del archivo extraído para evitar las bombas zip, pero esto será un post para otra semana.
Si quieres jugar a algunos retos sobre el cruce de caminos o quieres poner a prueba tus habilidades de codificación segura, echa un vistazo a nuestra plataforma.
Nos vemos la próxima vez, y recuerda, ¡con código seguro o sin código!
- Podemos inyectar un archivo en un zip cuyo nombre esté prefijado con un número arbitrario de " ../ "
- Si la librería zip no tiene cuidado de manejar adecuadamente este caso, nos permitiría escribir fuera del directorio de extracción previsto
- Si el archivo zip no es de confianza, esto da al atacante una vulnerabilidad de escritura arbitraria
Investigador de seguridad de aplicaciones - Ingeniero de I+D - Candidato a doctor

Secure Code Warrior puede ayudar a su organización a proteger el código a lo largo de todo el ciclo de vida del desarrollo de software y a crear una cultura que dé prioridad a la ciberseguridad. Tanto si es usted responsable de seguridad de aplicaciones, desarrollador, director de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados al código inseguro.
Reservar una demostraciónInvestigador de seguridad de aplicaciones - Ingeniero de I+D - Candidato a doctor


Esta semana vamos a hablar del comportamiento por defecto de las librerías Zip. Si eres un desarrollador de aplicaciones, es muy probable que hayas utilizado esto antes. La mayoría de los recursos que se descargan por internet están en formato zip, esto tiene sentido; los datos comprimidos son más pequeños, por lo que se descargan más rápido y consumen menos ancho de banda.
Si quieres algunos ejemplos más concretos: texturas para juegos, paquetes de idiomas para autocompletar en los teclados, ... Muchos recursos no se incluyen automáticamente en la aplicación, sino que se descargan posteriormente.
Pero tenga cuidado al usar esta funcionalidad, los nombres de los archivos en zip pueden contener información de recorrido. Cuando se extrae, esto hará que se creen archivos fuera del directorio previsto. Esto se hace a menudo con la intención de sobrescribir los archivos existentes.

Digamos que tenemos un archivo zip que contiene los siguientes dos archivos:
archivo1
../archivo2
Cuando se extrae este archivo, el archivo1 se extrae donde esperamos que esté, en el directorio de descompresión. Sin embargo, el archivo2 fue escrito un directorio más arriba de donde le pedimos a la biblioteca zip que extrajera el archivo.
Así que tenga cuidado, si su librería zip no tiene cuidado de manejar adecuadamente este caso, permitirá a un atacante escribir un archivo arbitrario en el sistema. Compruebe siempre si su librería es segura, esta regla general es válida para cualquier librería, pero en particular sabe comprobar el comportamiento por defecto de su librería zip para este tipo de archivos.
Vamos a demostrar las consecuencias cuando este caso no se maneja correctamente en Android. En Android se utiliza la librería Java Zip (java.util.zip), que permite recorrer la ruta como se ha explicado anteriormente por defecto.
El formato Dalvik Executable (.dex) de Android tiene limitaciones en cuanto a la cantidad de clases que puede tener un solo archivo. Las aplicaciones que necesitan más clases pueden hacer uso de la librería MultiDex Support que se ha añadido desde el nivel 21 de la API (Android 5.0 Lollipop). Esta librería guarda archivos .dex secundarios en el directorio de datos de la aplicación, este directorio es escribible por el usuario de la app y este código será cargado y ejecutado cuando el archivo .dex sea necesario.
Esto significa que un atacante puede modificar el archivo .dex sobrescribiéndolo mediante un archivo zip malicioso y, lo que es peor, este archivo se cargará y se ejecutará, dando lugar a una vulnerabilidad de ejecución remota de código. Esto no es sólo un ejemplo teórico, sino que se ha demostrado en la aplicación My Talking Tom, que tiene más de 100 millones de descargas en la tienda de aplicaciones. Aquí hay un vídeo del exploit que se presentó en Black Hat.

Compruebe siempre el comportamiento de su biblioteca zip para conocer sus inseguridades. Si no puedes desactivar el path traversal en tu librería zip, asegúrate de validar el nombre de cada entrada antes de extraerla. El nombre debería estar canonizado y la ruta resultante debería estar en el directorio en el que quieres extraer el archivo. Ya que estamos, también deberías comprobar el tamaño total del archivo extraído para evitar las bombas zip, pero esto será un post para otra semana.
Si quieres jugar a algunos retos sobre el cruce de caminos o quieres poner a prueba tus habilidades de codificación segura, echa un vistazo a nuestra plataforma.
Nos vemos la próxima vez, y recuerda, ¡con código seguro o sin código!
- Podemos inyectar un archivo en un zip cuyo nombre esté prefijado con un número arbitrario de " ../ "
- Si la librería zip no tiene cuidado de manejar adecuadamente este caso, nos permitiría escribir fuera del directorio de extracción previsto
- Si el archivo zip no es de confianza, esto da al atacante una vulnerabilidad de escritura arbitraria

Esta semana vamos a hablar del comportamiento por defecto de las librerías Zip. Si eres un desarrollador de aplicaciones, es muy probable que hayas utilizado esto antes. La mayoría de los recursos que se descargan por internet están en formato zip, esto tiene sentido; los datos comprimidos son más pequeños, por lo que se descargan más rápido y consumen menos ancho de banda.
Si quieres algunos ejemplos más concretos: texturas para juegos, paquetes de idiomas para autocompletar en los teclados, ... Muchos recursos no se incluyen automáticamente en la aplicación, sino que se descargan posteriormente.
Pero tenga cuidado al usar esta funcionalidad, los nombres de los archivos en zip pueden contener información de recorrido. Cuando se extrae, esto hará que se creen archivos fuera del directorio previsto. Esto se hace a menudo con la intención de sobrescribir los archivos existentes.

Digamos que tenemos un archivo zip que contiene los siguientes dos archivos:
archivo1
../archivo2
Cuando se extrae este archivo, el archivo1 se extrae donde esperamos que esté, en el directorio de descompresión. Sin embargo, el archivo2 fue escrito un directorio más arriba de donde le pedimos a la biblioteca zip que extrajera el archivo.
Así que tenga cuidado, si su librería zip no tiene cuidado de manejar adecuadamente este caso, permitirá a un atacante escribir un archivo arbitrario en el sistema. Compruebe siempre si su librería es segura, esta regla general es válida para cualquier librería, pero en particular sabe comprobar el comportamiento por defecto de su librería zip para este tipo de archivos.
Vamos a demostrar las consecuencias cuando este caso no se maneja correctamente en Android. En Android se utiliza la librería Java Zip (java.util.zip), que permite recorrer la ruta como se ha explicado anteriormente por defecto.
El formato Dalvik Executable (.dex) de Android tiene limitaciones en cuanto a la cantidad de clases que puede tener un solo archivo. Las aplicaciones que necesitan más clases pueden hacer uso de la librería MultiDex Support que se ha añadido desde el nivel 21 de la API (Android 5.0 Lollipop). Esta librería guarda archivos .dex secundarios en el directorio de datos de la aplicación, este directorio es escribible por el usuario de la app y este código será cargado y ejecutado cuando el archivo .dex sea necesario.
Esto significa que un atacante puede modificar el archivo .dex sobrescribiéndolo mediante un archivo zip malicioso y, lo que es peor, este archivo se cargará y se ejecutará, dando lugar a una vulnerabilidad de ejecución remota de código. Esto no es sólo un ejemplo teórico, sino que se ha demostrado en la aplicación My Talking Tom, que tiene más de 100 millones de descargas en la tienda de aplicaciones. Aquí hay un vídeo del exploit que se presentó en Black Hat.

Compruebe siempre el comportamiento de su biblioteca zip para conocer sus inseguridades. Si no puedes desactivar el path traversal en tu librería zip, asegúrate de validar el nombre de cada entrada antes de extraerla. El nombre debería estar canonizado y la ruta resultante debería estar en el directorio en el que quieres extraer el archivo. Ya que estamos, también deberías comprobar el tamaño total del archivo extraído para evitar las bombas zip, pero esto será un post para otra semana.
Si quieres jugar a algunos retos sobre el cruce de caminos o quieres poner a prueba tus habilidades de codificación segura, echa un vistazo a nuestra plataforma.
Nos vemos la próxima vez, y recuerda, ¡con código seguro o sin código!
- Podemos inyectar un archivo en un zip cuyo nombre esté prefijado con un número arbitrario de " ../ "
- Si la librería zip no tiene cuidado de manejar adecuadamente este caso, nos permitiría escribir fuera del directorio de extracción previsto
- Si el archivo zip no es de confianza, esto da al atacante una vulnerabilidad de escritura arbitraria

Haga clic en el siguiente enlace y descargue el PDF de este recurso.
Secure Code Warrior puede ayudar a su organización a proteger el código a lo largo de todo el ciclo de vida del desarrollo de software y a crear una cultura que dé prioridad a la ciberseguridad. Tanto si es usted responsable de seguridad de aplicaciones, desarrollador, director de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados al código inseguro.
Ver informeReservar una demostraciónInvestigador de seguridad de aplicaciones - Ingeniero de I+D - Candidato a doctor
Esta semana vamos a hablar del comportamiento por defecto de las librerías Zip. Si eres un desarrollador de aplicaciones, es muy probable que hayas utilizado esto antes. La mayoría de los recursos que se descargan por internet están en formato zip, esto tiene sentido; los datos comprimidos son más pequeños, por lo que se descargan más rápido y consumen menos ancho de banda.
Si quieres algunos ejemplos más concretos: texturas para juegos, paquetes de idiomas para autocompletar en los teclados, ... Muchos recursos no se incluyen automáticamente en la aplicación, sino que se descargan posteriormente.
Pero tenga cuidado al usar esta funcionalidad, los nombres de los archivos en zip pueden contener información de recorrido. Cuando se extrae, esto hará que se creen archivos fuera del directorio previsto. Esto se hace a menudo con la intención de sobrescribir los archivos existentes.

Digamos que tenemos un archivo zip que contiene los siguientes dos archivos:
archivo1
../archivo2
Cuando se extrae este archivo, el archivo1 se extrae donde esperamos que esté, en el directorio de descompresión. Sin embargo, el archivo2 fue escrito un directorio más arriba de donde le pedimos a la biblioteca zip que extrajera el archivo.
Así que tenga cuidado, si su librería zip no tiene cuidado de manejar adecuadamente este caso, permitirá a un atacante escribir un archivo arbitrario en el sistema. Compruebe siempre si su librería es segura, esta regla general es válida para cualquier librería, pero en particular sabe comprobar el comportamiento por defecto de su librería zip para este tipo de archivos.
Vamos a demostrar las consecuencias cuando este caso no se maneja correctamente en Android. En Android se utiliza la librería Java Zip (java.util.zip), que permite recorrer la ruta como se ha explicado anteriormente por defecto.
El formato Dalvik Executable (.dex) de Android tiene limitaciones en cuanto a la cantidad de clases que puede tener un solo archivo. Las aplicaciones que necesitan más clases pueden hacer uso de la librería MultiDex Support que se ha añadido desde el nivel 21 de la API (Android 5.0 Lollipop). Esta librería guarda archivos .dex secundarios en el directorio de datos de la aplicación, este directorio es escribible por el usuario de la app y este código será cargado y ejecutado cuando el archivo .dex sea necesario.
Esto significa que un atacante puede modificar el archivo .dex sobrescribiéndolo mediante un archivo zip malicioso y, lo que es peor, este archivo se cargará y se ejecutará, dando lugar a una vulnerabilidad de ejecución remota de código. Esto no es sólo un ejemplo teórico, sino que se ha demostrado en la aplicación My Talking Tom, que tiene más de 100 millones de descargas en la tienda de aplicaciones. Aquí hay un vídeo del exploit que se presentó en Black Hat.

Compruebe siempre el comportamiento de su biblioteca zip para conocer sus inseguridades. Si no puedes desactivar el path traversal en tu librería zip, asegúrate de validar el nombre de cada entrada antes de extraerla. El nombre debería estar canonizado y la ruta resultante debería estar en el directorio en el que quieres extraer el archivo. Ya que estamos, también deberías comprobar el tamaño total del archivo extraído para evitar las bombas zip, pero esto será un post para otra semana.
Si quieres jugar a algunos retos sobre el cruce de caminos o quieres poner a prueba tus habilidades de codificación segura, echa un vistazo a nuestra plataforma.
Nos vemos la próxima vez, y recuerda, ¡con código seguro o sin código!
- Podemos inyectar un archivo en un zip cuyo nombre esté prefijado con un número arbitrario de " ../ "
- Si la librería zip no tiene cuidado de manejar adecuadamente este caso, nos permitiría escribir fuera del directorio de extracción previsto
- Si el archivo zip no es de confianza, esto da al atacante una vulnerabilidad de escritura arbitraria
Índice
Investigador de seguridad de aplicaciones - Ingeniero de I+D - Candidato a doctor

Secure Code Warrior puede ayudar a su organización a proteger el código a lo largo de todo el ciclo de vida del desarrollo de software y a crear una cultura que dé prioridad a la ciberseguridad. Tanto si es usted responsable de seguridad de aplicaciones, desarrollador, director de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados al código inseguro.
Reservar una demostraciónDescargarRecursos para ayudarle a empezar
Temas y contenidos de la formación sobre códigos de seguridad
Nuestro contenido líder en el sector está en constante evolución para adaptarse al cambiante panorama del desarrollo de software, teniendo en cuenta su función. Los temas abarcan desde la IA hasta la inyección de XQuery, y son aptos para puestos que van desde arquitectos e ingenieros hasta gestores de productos y control de calidad. Eche un vistazo por adelantado a nuestro catálogo de contenidos, ordenados por tema y función.
La Cámara de Comercio establece el estándar para la seguridad impulsada por desarrolladores a gran escala
Kamer van Koophandel comparte cómo ha integrado la codificación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de Trust Score y una cultura de responsabilidad compartida en materia de seguridad.
Modelado de amenazas con IA: convertir a cada desarrollador en un modelador de amenazas
Saldrá mejor equipado para ayudar a los desarrolladores a combinar ideas y técnicas de modelado de amenazas con las herramientas de IA que ya utilizan para reforzar la seguridad, mejorar la colaboración y crear software más resistente desde el principio.
Recursos para ayudarle a empezar
Cybermon ha vuelto: la misión de derrotar al jefe IA ya está disponible bajo demanda.
Cybermon 2025 ya está disponible en SCW durante todo el año. Guerra de seguridad de IA/LLM de alto nivel de la tribu, desarrollo de IA de seguridad reforzada con modelos de gran escala.
Interpretación de la Ley de Resiliencia de la Red: ¿Qué significa lograr la seguridad mediante el diseño del desarrollo de software?
Comprenda los requisitos de la Ley de Resiliencia de las Redes de la Unión Europea (CRA), a quiénes se aplica y cómo los equipos de ingeniería pueden prepararse mediante prácticas de diseño, prevención de vulnerabilidades y desarrollo de capacidades de los desarrolladores.
Factor impulsor 1: Criterios de éxito claros y medibles
El facilitador 1 es el preludio de nuestra serie de 10 partes sobre los impulsores del éxito, que muestra cómo vincular la codificación segura con los resultados empresariales, como la reducción del riesgo y el aumento de la velocidad de maduración de los planes a largo plazo.




%20(1).avif)
.avif)
