
Técnica de codificación segura: el comportamiento predeterminado de las bibliotecas Zip puede provocar la ejecución remota de código
Esta semana vamos a hablar sobre el comportamiento predeterminado de las bibliotecas Zip. Si es un desarrollador de aplicaciones, es muy probable que lo haya usado antes. La mayoría de los recursos que se descargan a través de 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 ejemplos más concretos: texturas para juegos, paquetes de idiomas para completar automáticamente en teclados,... Muchos recursos no se incluyen automáticamente en la aplicación, sino que se descargan más adelante.
Sin embargo, tenga cuidado al utilizar esta funcionalidad, ya que los nombres de archivo de los archivos zip pueden contener información sobre el recorrido de las rutas. Cuando se extraigan, esto provocará que los archivos se creen fuera del directorio deseado. Esto se hace a menudo con la intención de sobrescribir los archivos existentes.

Supongamos que tenemos un archivo zip que contiene los dos archivos siguientes:
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 se escribió en un directorio superior al que pedimos a la biblioteca zip que extrajera el archivo.
Así que ten cuidado, si tu biblioteca zip no se ocupa de gestionar adecuadamente este caso, permitirá a un atacante escribir un archivo arbitrario en el sistema. Compruebe siempre si su biblioteca es segura. Esta regla general es válida para cualquier biblioteca, pero en particular debe comprobar el comportamiento predeterminado de su biblioteca zip para este tipo de archivos.
Vamos a demostrar las consecuencias cuando este caso no se maneja correctamente en Android. En Android, se usa la biblioteca Java Zip (java.util.zip), que permite recorrer rutas como se explicó anteriormente de forma predeterminada.
El formato ejecutable Dalvik de Android (.dex) tiene limitaciones en cuanto a la cantidad de clases que puede tener un solo archivo. Las apps que necesitan más clases pueden usar la biblioteca de compatibilidad de MultiDex, que se ha agregado desde el nivel 21 de la API (Android 5.0 Lollipop). Esta biblioteca guarda los archivos.dex secundarios en el directorio de datos de la aplicación. El usuario de la aplicación puede escribir en este directorio y este código se cargará y ejecutará cuando se necesite el archivo.dex.
Esto significa que un atacante puede modificar el archivo.dex sobrescribiéndolo con un archivo zip malintencionado y, lo que es peor, este archivo se cargará y ejecutará, lo que generará una vulnerabilidad de ejecución remota de código. Esto no es solo un ejemplo teórico, sino que se ha demostrado en la aplicación My Talking Tom, que cuenta con más de 100 millones de descargas en la tienda de aplicaciones. Este es un vídeo del exploit que se presentó en Black Hat.

Compruebe siempre el comportamiento de su biblioteca zip para estar al tanto de sus inseguridades. Si no puedes deshabilitar el recorrido por rutas en tu biblioteca zip, asegúrate de validar el nombre de cada entrada antes de extraerla. El nombre debe estar canonizado y la ruta resultante debe estar en el directorio en el que deseas extraer el archivo. Ya que estamos en ello, también deberías comprobar el tamaño total del archivo extraído para evitar que se produzcan bombas zip, pero esto será una entrada durante una semana más.
Si quieres juega algunos desafíos al atravesar el camino 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 tenga como prefijo un número arbitrario de "../»
- Si la biblioteca zip no se ocupa de gestionar correctamente este caso, nos permitiría escribir fuera del directorio de extracción previsto
- Si el archivo zip no es de confianza, el atacante presenta una vulnerabilidad de escritura arbitraria


Podemos inyectar un archivo en un zip cuyo nombre tenga como prefijo un
Chercheur en sécurité applicative - Ingénieur R&D - Doctorant

Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Veuillez réserver une démonstration.Chercheur en sécurité applicative - Ingénieur R&D - Doctorant


Esta semana vamos a hablar sobre el comportamiento predeterminado de las bibliotecas Zip. Si es un desarrollador de aplicaciones, es muy probable que lo haya usado antes. La mayoría de los recursos que se descargan a través de 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 ejemplos más concretos: texturas para juegos, paquetes de idiomas para completar automáticamente en teclados,... Muchos recursos no se incluyen automáticamente en la aplicación, sino que se descargan más adelante.
Sin embargo, tenga cuidado al utilizar esta funcionalidad, ya que los nombres de archivo de los archivos zip pueden contener información sobre el recorrido de las rutas. Cuando se extraigan, esto provocará que los archivos se creen fuera del directorio deseado. Esto se hace a menudo con la intención de sobrescribir los archivos existentes.

Supongamos que tenemos un archivo zip que contiene los dos archivos siguientes:
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 se escribió en un directorio superior al que pedimos a la biblioteca zip que extrajera el archivo.
Así que ten cuidado, si tu biblioteca zip no se ocupa de gestionar adecuadamente este caso, permitirá a un atacante escribir un archivo arbitrario en el sistema. Compruebe siempre si su biblioteca es segura. Esta regla general es válida para cualquier biblioteca, pero en particular debe comprobar el comportamiento predeterminado de su biblioteca zip para este tipo de archivos.
Vamos a demostrar las consecuencias cuando este caso no se maneja correctamente en Android. En Android, se usa la biblioteca Java Zip (java.util.zip), que permite recorrer rutas como se explicó anteriormente de forma predeterminada.
El formato ejecutable Dalvik de Android (.dex) tiene limitaciones en cuanto a la cantidad de clases que puede tener un solo archivo. Las apps que necesitan más clases pueden usar la biblioteca de compatibilidad de MultiDex, que se ha agregado desde el nivel 21 de la API (Android 5.0 Lollipop). Esta biblioteca guarda los archivos.dex secundarios en el directorio de datos de la aplicación. El usuario de la aplicación puede escribir en este directorio y este código se cargará y ejecutará cuando se necesite el archivo.dex.
Esto significa que un atacante puede modificar el archivo.dex sobrescribiéndolo con un archivo zip malintencionado y, lo que es peor, este archivo se cargará y ejecutará, lo que generará una vulnerabilidad de ejecución remota de código. Esto no es solo un ejemplo teórico, sino que se ha demostrado en la aplicación My Talking Tom, que cuenta con más de 100 millones de descargas en la tienda de aplicaciones. Este es un vídeo del exploit que se presentó en Black Hat.

Compruebe siempre el comportamiento de su biblioteca zip para estar al tanto de sus inseguridades. Si no puedes deshabilitar el recorrido por rutas en tu biblioteca zip, asegúrate de validar el nombre de cada entrada antes de extraerla. El nombre debe estar canonizado y la ruta resultante debe estar en el directorio en el que deseas extraer el archivo. Ya que estamos en ello, también deberías comprobar el tamaño total del archivo extraído para evitar que se produzcan bombas zip, pero esto será una entrada durante una semana más.
Si quieres juega algunos desafíos al atravesar el camino 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 tenga como prefijo un número arbitrario de "../»
- Si la biblioteca zip no se ocupa de gestionar correctamente este caso, nos permitiría escribir fuera del directorio de extracción previsto
- Si el archivo zip no es de confianza, el atacante presenta una vulnerabilidad de escritura arbitraria

Esta semana vamos a hablar sobre el comportamiento predeterminado de las bibliotecas Zip. Si es un desarrollador de aplicaciones, es muy probable que lo haya usado antes. La mayoría de los recursos que se descargan a través de 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 ejemplos más concretos: texturas para juegos, paquetes de idiomas para completar automáticamente en teclados,... Muchos recursos no se incluyen automáticamente en la aplicación, sino que se descargan más adelante.
Sin embargo, tenga cuidado al utilizar esta funcionalidad, ya que los nombres de archivo de los archivos zip pueden contener información sobre el recorrido de las rutas. Cuando se extraigan, esto provocará que los archivos se creen fuera del directorio deseado. Esto se hace a menudo con la intención de sobrescribir los archivos existentes.

Supongamos que tenemos un archivo zip que contiene los dos archivos siguientes:
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 se escribió en un directorio superior al que pedimos a la biblioteca zip que extrajera el archivo.
Así que ten cuidado, si tu biblioteca zip no se ocupa de gestionar adecuadamente este caso, permitirá a un atacante escribir un archivo arbitrario en el sistema. Compruebe siempre si su biblioteca es segura. Esta regla general es válida para cualquier biblioteca, pero en particular debe comprobar el comportamiento predeterminado de su biblioteca zip para este tipo de archivos.
Vamos a demostrar las consecuencias cuando este caso no se maneja correctamente en Android. En Android, se usa la biblioteca Java Zip (java.util.zip), que permite recorrer rutas como se explicó anteriormente de forma predeterminada.
El formato ejecutable Dalvik de Android (.dex) tiene limitaciones en cuanto a la cantidad de clases que puede tener un solo archivo. Las apps que necesitan más clases pueden usar la biblioteca de compatibilidad de MultiDex, que se ha agregado desde el nivel 21 de la API (Android 5.0 Lollipop). Esta biblioteca guarda los archivos.dex secundarios en el directorio de datos de la aplicación. El usuario de la aplicación puede escribir en este directorio y este código se cargará y ejecutará cuando se necesite el archivo.dex.
Esto significa que un atacante puede modificar el archivo.dex sobrescribiéndolo con un archivo zip malintencionado y, lo que es peor, este archivo se cargará y ejecutará, lo que generará una vulnerabilidad de ejecución remota de código. Esto no es solo un ejemplo teórico, sino que se ha demostrado en la aplicación My Talking Tom, que cuenta con más de 100 millones de descargas en la tienda de aplicaciones. Este es un vídeo del exploit que se presentó en Black Hat.

Compruebe siempre el comportamiento de su biblioteca zip para estar al tanto de sus inseguridades. Si no puedes deshabilitar el recorrido por rutas en tu biblioteca zip, asegúrate de validar el nombre de cada entrada antes de extraerla. El nombre debe estar canonizado y la ruta resultante debe estar en el directorio en el que deseas extraer el archivo. Ya que estamos en ello, también deberías comprobar el tamaño total del archivo extraído para evitar que se produzcan bombas zip, pero esto será una entrada durante una semana más.
Si quieres juega algunos desafíos al atravesar el camino 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 tenga como prefijo un número arbitrario de "../»
- Si la biblioteca zip no se ocupa de gestionar correctamente este caso, nos permitiría escribir fuera del directorio de extracción previsto
- Si el archivo zip no es de confianza, el atacante presenta una vulnerabilidad de escritura arbitraria

Veuillez cliquer sur le lien ci-dessous et télécharger le PDF de cette ressource.
Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Veuillez consulter le rapportVeuillez réserver une démonstration.Chercheur en sécurité applicative - Ingénieur R&D - Doctorant
Esta semana vamos a hablar sobre el comportamiento predeterminado de las bibliotecas Zip. Si es un desarrollador de aplicaciones, es muy probable que lo haya usado antes. La mayoría de los recursos que se descargan a través de 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 ejemplos más concretos: texturas para juegos, paquetes de idiomas para completar automáticamente en teclados,... Muchos recursos no se incluyen automáticamente en la aplicación, sino que se descargan más adelante.
Sin embargo, tenga cuidado al utilizar esta funcionalidad, ya que los nombres de archivo de los archivos zip pueden contener información sobre el recorrido de las rutas. Cuando se extraigan, esto provocará que los archivos se creen fuera del directorio deseado. Esto se hace a menudo con la intención de sobrescribir los archivos existentes.

Supongamos que tenemos un archivo zip que contiene los dos archivos siguientes:
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 se escribió en un directorio superior al que pedimos a la biblioteca zip que extrajera el archivo.
Así que ten cuidado, si tu biblioteca zip no se ocupa de gestionar adecuadamente este caso, permitirá a un atacante escribir un archivo arbitrario en el sistema. Compruebe siempre si su biblioteca es segura. Esta regla general es válida para cualquier biblioteca, pero en particular debe comprobar el comportamiento predeterminado de su biblioteca zip para este tipo de archivos.
Vamos a demostrar las consecuencias cuando este caso no se maneja correctamente en Android. En Android, se usa la biblioteca Java Zip (java.util.zip), que permite recorrer rutas como se explicó anteriormente de forma predeterminada.
El formato ejecutable Dalvik de Android (.dex) tiene limitaciones en cuanto a la cantidad de clases que puede tener un solo archivo. Las apps que necesitan más clases pueden usar la biblioteca de compatibilidad de MultiDex, que se ha agregado desde el nivel 21 de la API (Android 5.0 Lollipop). Esta biblioteca guarda los archivos.dex secundarios en el directorio de datos de la aplicación. El usuario de la aplicación puede escribir en este directorio y este código se cargará y ejecutará cuando se necesite el archivo.dex.
Esto significa que un atacante puede modificar el archivo.dex sobrescribiéndolo con un archivo zip malintencionado y, lo que es peor, este archivo se cargará y ejecutará, lo que generará una vulnerabilidad de ejecución remota de código. Esto no es solo un ejemplo teórico, sino que se ha demostrado en la aplicación My Talking Tom, que cuenta con más de 100 millones de descargas en la tienda de aplicaciones. Este es un vídeo del exploit que se presentó en Black Hat.

Compruebe siempre el comportamiento de su biblioteca zip para estar al tanto de sus inseguridades. Si no puedes deshabilitar el recorrido por rutas en tu biblioteca zip, asegúrate de validar el nombre de cada entrada antes de extraerla. El nombre debe estar canonizado y la ruta resultante debe estar en el directorio en el que deseas extraer el archivo. Ya que estamos en ello, también deberías comprobar el tamaño total del archivo extraído para evitar que se produzcan bombas zip, pero esto será una entrada durante una semana más.
Si quieres juega algunos desafíos al atravesar el camino 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 tenga como prefijo un número arbitrario de "../»
- Si la biblioteca zip no se ocupa de gestionar correctamente este caso, nos permitiría escribir fuera del directorio de extracción previsto
- Si el archivo zip no es de confianza, el atacante presenta una vulnerabilidad de escritura arbitraria
Table des matières
Chercheur en sécurité applicative - Ingénieur R&D - Doctorant

Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Veuillez réserver une démonstration.TéléchargerRessources pour débuter
Trust Agent:AI - Secure and scale AI-Drive development
AI is writing code. Who’s governing it? With up to 50% of AI-generated code containing security weaknesses, managing AI risk is critical. Discover how SCW's Trust Agent: AI provides the real-time visibility, proactive governance, and targeted upskilling needed to scale AI-driven development securely.
La puissance de la sécurité des applications OpenText + Secure Code Warrior
OpenText Application Security and Secure Code Warrior combine vulnerability detection with AI Software Governance and developer capability. Together, they help organizations reduce risk, strengthen secure coding practices, and confidently adopt AI-driven development.
Secure Code Warrior corporate overview
Secure Code Warrior is an AI Software Governance platform designed to enable organizations to safely adopt AI-driven development by bridging the gap between development velocity and enterprise security. The platform addresses the "Visibility Gap," where security teams often lack insights into shadow AI coding tools and the origins of production code.
Thèmes et contenu de la formation sur le code sécurisé
Notre contenu de pointe évolue constamment afin de s'adapter au paysage changeant du développement logiciel, en tenant compte de votre rôle. Nous proposons des thèmes allant de l'IA à l'injection XQuery pour différents postes, des architectes et ingénieurs aux chefs de produit et responsables de l'assurance qualité. Découvrez un aperçu de ce que notre catalogue de contenu a à offrir par thème et par fonction.
Ressources pour débuter
Cybermon est de retour : les missions IA de Beat the Boss sont désormais disponibles à la demande.
Cybermon 2025 Beat the Boss est désormais disponible toute l'année chez SCW. Mettez en œuvre des défis de sécurité avancés basés sur l'IA et le LLM afin de renforcer le développement sécurisé de l'IA à grande échelle.
Explication de la loi sur la cyber-résilience : implications pour le développement de logiciels sécurisés dès leur conception
Découvrez les exigences de la loi européenne sur la cyber-résilience (CRA), à qui elle s'applique et comment les équipes d'ingénierie peuvent se préparer grâce à des pratiques de conception sécurisées, à la prévention des vulnérabilités et au développement des compétences des développeurs.
Facilitateur 1 : Critères de réussite définis et mesurables
Le catalyseur n° 1 inaugure notre série en 10 parties intitulée « Les catalyseurs de la réussite », qui montre comment relier la codification sécurisée aux résultats commerciaux, tels que la réduction des risques et la rapidité d'atteinte de la maturité du programme à long terme.




