Se ha publicado la versión 1.6.56 de la biblioteca libpng, componente crítico para el procesamiento de imágenes en formato PNG en innumerables aplicaciones. Esta actualización de seguridad corrige dos vulnerabilidades de alta gravedad que afectan a todas las versiones anteriores de la biblioteca. Se recomienda a todos los usuarios aplicar la actualización de manera inmediata para proteger sus sistemas.

🛡️ Detalles de las vulnerabilidades corregidas

Se trata de dos importantes vulnerabilidades.

CVE-2026-33416 (alta severidad) – Use-after-free

Esta vulnerabilidad afecta a las funciones png_set_tRNS y png_set_PLTE. En versiones anteriores a la 1.6.56, se producía un aliasing de punteros entre las estructuras png_struct y png_info, compartiendo un mismo búfer de memoria asignado en el heap entre dos estructuras con ciclos de vida independientes. Al liberar la memoria a través de una de ellas, el puntero en la otra estructura quedaba dangling (colgante). Las funciones de transformación posteriores leían y —en determinadas rutas— escribían en esta memoria ya liberada, lo que podía derivar en:

  • Lectura de memoria liberada (potencial divulgación de información)
  • Escritura de valores controlados por el atacante (corrupción del heap)
  • Ejecución de código arbitrario en entornos sin ASLR/PIE (como sistemas embebidos o servidores legacy)

El fallo ha sido presente en la biblioteca desde versiones muy tempranas (trans_alpha desde 1.0, palette desde 1.2.1) y afecta a todas las versiones hasta 1.6.55.

CVE-2026-33636 (alta severidad) – Lectura/escritura fuera de límites en ARM Neon

Esta vulnerabilidad se manifiesta en la expansión de paleta optimizada para arquitecturas ARM con extensión Neon. Al procesar imágenes PNG indexadas, la rutina de expansión leía y escribía más allá de los límites del búfer de paleta, provocando:

  • Lectura de hasta 768 bytes de memoria adyacente (posible fuga de información)
  • Escritura de valores fuera de los límites (corrupción de memoria)

El atacante podía controlar los valores escritos mediante la manipulación de la imagen PNG, lo que podría llevar a ejecución de código arbitrario en sistemas ARM de 32 y 64 bits.

Otros problemas corregidos

Además de las dos vulnerabilidades principales, la versión 1.6.56 incluye más de una decena de correcciones adicionales que mejoran la estabilidad y seguridad:

  • Lecturas no inicializadas en búferes trans_alpha más allá de num_trans.
  • Estado obsoleto de info_ptr->palette tras transformaciones gamma y fondo in-place.
  • Índices de canal erróneos en la ruta RGB_ALPHA de png_image_read_and_map.
  • Color de fondo incorrecto en lectura de mapa de colores.
  • Bucle infinito en escritura de sPLT.
  • Validación de profundidades de desplazamiento en png_set_shift para prevenir bucle infinito.
  • Comportamiento indefinido en biblioteca y pruebas.
  • Fugas de memoria y mal uso de API en oss-fuzz.

⚡ Actualización en ALDOS

Para los usuarios de ALDOS, la distribución basada en Fedora/RHEL, la corrección está disponible de inmediato a través de los repositorios oficiales. Para actualizar todos los paquetes del sistema, incluida la nueva versión de libpng, ejecute el siguiente mandato en su terminal:

yum -y update

Tras la actualización, se recomienda reiniciar las aplicaciones que hagan un uso intensivo de gráficos o el entorno de escritorio completo para garantizar que todas carguen la nueva versión de la biblioteca en memoria.

📚 Bibliografía

disponible-libpng-1-6-56-en-aldos

Entrada Anterior