1. Contexto y Versiones Afectadas
Se ha detectado el compromiso de las claves privadas asociadas a las Autoridades Certificadoras (CAs) intermedias de eMudhra / emSign.
Versiones de Java Afectadas
La vulnerabilidad afecta a las siguientes versiones y a todas sus versiones inferiores/anteriores (previas a los parches de emergencia de octubre de 2026):
-
Java 8 / JDK 1.8: Version 8u431 e inferiores (<= 8u431)
-
Java 11: Version 11.0.25 e inferiores (<= 11.0.25)
-
Java 17: Version 17.0.13 e inferiores (<= 17.0.13)
-
Java 21: Version 21.0.5 e inferiores (<= 21.0.5)
-
Java 23: Version 23.0.1 e inferiores (<= 23.0.1)
Aplica a distribuidores principales: Oracle JDK, OpenJDK, Amazon Corretto, Eclipse Temurin etc.
2. Fase de Verificación Práctica (Aclaración de Resultados)
Para evaluar si la tienda de certificados del Sistema Operativo confía en la CA eMudhra comprometida, ejecuta:
curl -Iv https://dv-g3b-emudhra.we-have-a-problem.com/
Interpretación de Resultados:
-
HTTP 200 OK (SSL certificate verify ok): El SO confía en la CA eMudhra. Se debe actualizar el paquete ca-certificates del SO y aplicar la mitigación/actualización en Java de forma URGENTE. -
Error SSL/TLS (curl: (60) SSL certificate problem): El Sistema Operativo NO confía en la CA. -
Nota: Obtener un error 60 en curl NO exime de parchear o actualizar Java. Java utiliza su propia tienda de certificados (cacerts / blocked.certs) el motor JSSE independientes del SO. Si la versión de Java es vulnerable, la aplicación sigue expuesta en comunicaciones HTTPS o mTLS.
3. Actualización de Paquetes del Sistema Operativo
Para revocar la confianza en el almacén global del SO (curl, OpenSSL, etc.):
-
Linux (RHEL / Fedora / Rocky / Amazon Linux):
Bash
sudo dnf update -y ca-certificates -
Linux (Debian / Ubuntu):
Bash
sudo apt-get update && sudo apt-get install --only-upgrade -y ca-certificates -
Windows Server / Client (PowerShell Admin):
PowerShell
Certutil -generateSSTFromWU C:\temp\roots.sst
Get-ChildItem -Path C:\temp\roots.sst | Import-Certificate -CertStoreLocation Cert:\LocalMachine\Root
4. Remediación Temporal en Java (blocked.certs)
Si no es posible actualizar la versión completa de Java de inmediato debido a ventanas de mantenimiento o pruebas de regresión, se debe aplicar la remediación parcial bloqueando los hashes revocados.
Documento de Referencia: Consulta el archivo instrucciones-emudhra-java.md disponible aqui.
Puntos Clave del Procedimiento:
-
Descargar el archivo de hashes emudhra-hashes.txt aqui.
-
NO usar editores de texto gráficos ni interactivos (nano, vim, Notepad) sobre los archivos de seguridad de Java para no alterar el formato.
-
Anexar los hashes al archivo $JAVA_HOME/lib/security/blocked.certs según los comandos de Shell/PowerShell del instructivo.
-
Reinicio Obligatorio: Es estrictamente necesario reiniciar los servicios y procesos Java (Tomcat, Spring Boot, pods de EKS/ECS) para que JSSE cargue los cambios en memoria RAM.
5. Solución Definitiva: Actualización de Java
La única solución completa y permanente que resuelve el hallazgo es actualizar el paquete de Java a la versión corregida oficial, recomendamos mantener siempre actualizo a los utlimos parches de seguridad.