Solución de problemas de rotación de clave de cifrado: CVE-2024-34102

Este artículo está diseñado para ayudar a los comerciantes a solucionar problemas de rotación de claves de cifrado después de haber seguido los pasos descritos en este artículo de CVE-2024-34102.

Si ya ha seguido los pasos del artículo anterior y tiene problemas para girar las claves de cifrado, tenemos un parche aislado para ayudar a resolver posibles problemas.

Para ilustrar los pasos que se han comunicado y resumido anteriormente, con el fin de protegerse contra CVE-2024-34102, así como la solución de problemas adicional que se encuentra a continuación, también puede utilizar este diagrama de flujo:

Diagrama de flujo de protección CVE-2024-34102.jpg {modal="regular"}

Cómo aplicar el parche aislado para ejecutar el nuevo comando

Descomprima el archivo y vea Cómo aplicar un parche del compositor proporcionado por el Adobe en nuestra base de conocimiento de asistencia para obtener instrucciones.

Agregar una nueva clave de cifrado sin usar variables de entorno

El comportamiento predeterminado de la aplicación es almacenar la clave de cifrado en el archivo app/etc/env.php.

Los pasos descritos en la documentación describen cómo cambiar esta clave dentro de ese archivo mediante la interfaz Admin.

Los pasos y la revisión aislada proporcionados en esta sección le permiten cambiar fácilmente el valor de ese archivo y le permitirán solucionar los problemas que pueda estar experimentando a través de la interfaz Admin.

Sin embargo, la forma más fácil y segura de administrar la clave de cifrado es utilizar variables de entorno. Si ya está utilizando variables de entorno o está interesado en utilizarlas para administrar esta clave, hay una sección independiente que describe esos pasos.

Productos y versiones afectados

Adobe Commerce en la nube, Adobe Commerce local y Magento Open Source:

  • 2.4.7-p1 y anteriores
  • 2.4.6-p6 y anteriores
  • 2.4.5-p8 y anteriores
  • 2.4.4-p9 y anteriores

Parche aislado para solucionar problemas con los detalles de rotación de clave de cifrado

Utilice los siguientes parches adjuntos, según la versión de Adobe Commerce/Magento Open Source:

Para la versión 2.4.7, 2.4.7-p1:

Para las versiones 2.4.6, 2.4.6-p1, 2.4.6-p2, 2.4.6-p3, 2.4.6-p4, 2.4.6-p5, 2.4.6-p6:

Para las versiones 2.4.5, 2.4.5-p1, 2.4.5-p2, 2.4.5-p3, 2.4.5-p4, 2.4.5-p5, 2.4.5-p6, 2.4.5-p7, 2.4.5-p8:

Para las versiones 2.4.4, 2.4.4-p1, 2.4.4-p2, 2.4.4-p3, 2.4.4-p4, 2.4.4-p5, 2.4.4-p6, 2.4.4-p7, 2.4.4-p8, 2.4.4-p9:

Para las versiones 2.4.4, 2.4.4-p1, 2.4.4-p2, 2.4.4-p3, 2.4.4-p4, 2.4.4-p5, 2.4.4-p6, 2.4.4-p7, 2.4.4-p8, 2.4.4-p9:

Después de instalar la revisión aislada, cambie la clave de cifrado activa con el nuevo comando CLI.

NOTE
Este nuevo comando de CLI almacenará en déclencheur una memoria caché limpia al ejecutarse.
  1. Este nuevo comando debe ejecutarse en el entorno que contiene el archivo app/etc/env.php de la clave que desea actualizar.

  2. Confirme que el nuevo comando existe:

    code language-none
    bin/magento list | grep encryption:key:change
    

    Debería ver el siguiente resultado:

    code language-none
    encryption:key:change Change the encryption key inside the env.php file.
    
  3. Cambie la clave de cifrado:

    code language-none
    bin/magento encryption:key:change
    
  4. Si ha ejecutado este comando en el sistema de producción, no debería ser necesario realizar ninguna otra acción.
    Si ha ejecutado esto en un sistema de desarrollo, debe obtener este cambio en su sistema de producción, ya que normalmente implementaría configuraciones confidenciales.

Actualice la clave de cifrado mediante variables de entorno en lugar de utilizar el parche aislado

Como alternativa a la sección anterior, estos pasos le permitirán agregar una nueva clave de cifrado preservando al mismo tiempo los datos cifrados existentes, incluso si está utilizando el valor predeterminado app/etc/env.php.
Esta sección se aplica a Adobe Commerce en Cloud y Cloud Starter, pero también se aplica a Adobe Commerce local, aunque los pasos y ubicaciones exactos de las variables dependerán de su infraestructura.

Recopile su valor actual

  • Si ya está administrando las claves con variables de entorno, puede estar en varias ubicaciones posibles, pero lo más probable es que esté en la variable CRYPT_KEY tal como se describe en la documentación.
  • Si no usa variables, la clave de cifrado estará en app/etc/env.php dentro de la clave de datos crypt/key.

En cualquier caso, puede ser un valor multilínea y contener varias líneas aleatorias de datos.

Generar un nuevo valor para las versiones 2.4.7x

Las claves de cifrado son 32 bytes de datos aleatorios codificados con base64 y con el prefijo base64.
Para generar una clave nueva:

  1. Con la herramienta que elija, genere 32 bytes aleatorios de datos codificados con base64. Por ejemplo, con OpenSSL CLI, puede ejecutar openssl rand -base64 32, pero se puede utilizar cualquier herramienta de generación criptográficamente aleatoria confiable.

  2. Agregue a ese valor el prefijo base64. Por ejemplo, si el comando openssl genera la salida ABC123, el valor se convertiría en: base64ABC123

  3. Anexe el valor generado al valor existente que ha recopilado anteriormente. Por ejemplo, si el valor existente es base64HelloWorld, el nuevo valor se convertiría en:

    code language-none
    base64HelloWorld
    base64ABC123
    

Generar un nuevo valor para 2.4.6x y versiones anteriores

Las claves de cifrado de 2.4.6x y versiones anteriores son 16 bytes de datos aleatorios en un formato codificado en hex.
Para generar una clave nueva:

  1. Con la herramienta que elija, genere 16 bytes aleatorios de datos. Por ejemplo, con OpenSSL CLI, puede ejecutar openssl rand -hex 16, pero se puede utilizar cualquier herramienta de generación criptográficamente aleatoria confiable.

  2. Anexe el valor generado al valor existente que ha recopilado anteriormente. Por ejemplo, si el valor existente es abc123 y el valor aleatorio del paso anterior es 456def, el nuevo valor se convertiría en:

    code language-none
    abc123
    456def
    

Agregar una nueva variable de entorno

Use Cloud Console o magento-cloud CLI para establecer la env:MAGENTO_DC_CRYPT__KEY variable de entorno en este nuevo valor.

NOTE
Tenga en cuenta que si elige marcar la variable como confidencial, puede que desee guardar una copia de seguridad externa de este valor, ya que se ocultará de todas las interfaces y solo será visible para la aplicación.

Al guardar la variable, se activará automáticamente una reimplementación que hará que se aplique el valor.

Actualizaciones de seguridad

Actualizaciones de seguridad relacionadas disponibles para Adobe Commerce:

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a