Solucionando Problemas de Rotação de Chaves de Criptografia: CVE-2024-34102

O objetivo deste artigo é ajudar os comerciantes a solucionar problemas de rotação de chaves de criptografia depois de já terem seguido as etapas descritas neste artigo em CVE-2024-34102.

Se você já seguir as etapas do artigo acima e tiver problemas ao girar suas chaves de criptografia, temos um patch isolado para ajudar a resolver possíveis problemas.

Para ajudar a ilustrar as etapas que foram comunicadas e resumidas anteriormente, para proteger contra CVE-2024-34102, bem como as soluções de problemas adicionais encontradas abaixo, você também pode utilizar este fluxograma:

Fluxograma de Proteção CVE-2024-34102.jpg {modal="regular"}

Como aplicar o patch isolado para executar o novo comando

Descompacte o arquivo e consulte Como aplicar um patch de compositor fornecido pelo Adobe em nossa base de dados de suporte para obter instruções.

Adicionar uma nova chave de criptografia sem usar variáveis de ambiente

O comportamento padrão do aplicativo é armazenar a chave de criptografia no arquivo app/etc/env.php.

As etapas descritas na documentação descrevem como alterar essa chave dentro desse arquivo usando a interface Admin.

As etapas e o patch isolado fornecidos nesta seção permitem que você altere facilmente o valor desse arquivo e permitirão que você solucione os problemas que podem estar ocorrendo na interface Admin.

No entanto, a maneira mais fácil e segura de gerenciar a chave de criptografia é usar variáveis de ambiente. Se você já estiver usando variáveis de ambiente ou estiver interessado em usá-las para gerenciar essa chave, há uma seção separada que descreve essas etapas.

Produtos e versões afetados

Adobe Commerce na nuvem, Adobe Commerce no local e Magento Open Source:

  • 2.4.7-p1 e anterior
  • 2.4.6-p6 e anterior
  • 2.4.5-p8 e anterior
  • 2.4.4-p9 e anterior

Patch Isolado para Solucionar Problemas de Detalhes de Rotação de Chave de Criptografia

Use os seguintes patches anexados, dependendo da sua versão do Adobe Commerce/Magento Open Source:

Para a versão 2.4.7, 2.4.7-p1:

Para as versões 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 as versões 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 as versões 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:

Após instalar o patch isolado, altere a chave de criptografia ativa com o novo comando CLI.

NOTE
Este novo comando CLI acionará uma limpeza de cache na execução.
  1. Esse novo comando deve ser executado no ambiente que contém o arquivo app/etc/env.php para a chave que você deseja atualizar.

  2. Confirme se o novo comando existe:

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

    Você deve ver a seguinte saída:

    code language-none
    encryption:key:change Change the encryption key inside the env.php file.
    
  3. Altere a chave de criptografia:

    code language-none
    bin/magento encryption:key:change
    
  4. Se você executou esse comando no sistema de produção, nenhuma outra ação deverá ser necessária.
    Se você tiver executado isso em um sistema de desenvolvimento, deverá inserir essa alteração no sistema de produção, pois normalmente implantaria configurações confidenciais.

Atualize a chave de criptografia usando variáveis de ambiente em vez de usar o patch isolado

Como alternativa à seção acima, essas etapas permitirão adicionar uma nova chave de criptografia, preservando os dados criptografados existentes, mesmo que você esteja usando o app/etc/env.php padrão no momento.
Esta seção se aplica ao Adobe Commerce na Nuvem e ao Cloud Starter, mas também se aplica ao Adobe Commerce no local, embora as etapas e os locais exatos das variáveis dependam de sua infraestrutura.

Colete seu valor atual

  • Se você já estiver gerenciando suas chaves com variáveis de ambiente, talvez ela esteja em vários locais possíveis, mas provavelmente estará na variável CRYPT_KEY, conforme descrito na documentação.
  • Se você não estiver usando variáveis, a chave de criptografia estará em app/etc/env.php dentro da chave de dados crypt/key.

Em ambos os casos, pode ser um valor multilinha e conter várias linhas aleatórias de dados.

Gerar um novo valor para versões 2.4.7x

As chaves de criptografia são 32 bytes de dados aleatórios que são codificados com base64 e prefixados com base64.
Para gerar uma nova chave:

  1. Usando a ferramenta de sua escolha, gere 32 bytes aleatórios de dados codificados com base64. Por exemplo, usando o OpenSSL CLI, você pode executar openssl rand -base64 32, mas qualquer ferramenta de geração aleatória criptograficamente confiável pode ser usada.

  2. Prefixe esse valor com base64. Por exemplo, se a saída do comando openssl ABC123, o valor se tornaria: base64ABC123

  3. Anexe o valor gerado ao seu valor existente que você coletou acima. Por exemplo, se o valor existente for base64HelloWorld, o novo valor se tornará:

    code language-none
    base64HelloWorld
    base64ABC123
    

Gerar um novo valor para 2.4.6x e versões anteriores

As chaves de criptografia na versão 2.4.6x e anteriores têm 16 bytes de dados aleatórios em um formato codificado hex.
Para gerar uma nova chave:

  1. Usando a ferramenta de sua escolha, gere 16 bytes aleatórios de dados. Por exemplo, usando o OpenSSL CLI, você pode executar openssl rand -hex 16, mas qualquer ferramenta de geração aleatória criptograficamente confiável pode ser usada.

  2. Anexe o valor gerado ao seu valor existente que você coletou acima. Por exemplo, se seu valor existente for abc123 e seu valor aleatório da etapa anterior for 456def, seu novo valor se tornará:

    code language-none
    abc123
    456def
    

Adicionar uma nova variável de ambiente

Use o Cloud Console ou magento-cloud CLI para definir a env:MAGENTO_DC_CRYPT__KEY variável de ambiente para esse novo valor.

NOTE
Observe que, se você optar por marcar a variável como confidencial, convém salvar um backup externo desse valor, pois ele ficará oculto em todas as interfaces e só ficará visível para o aplicativo.

Ao salvar a variável, uma reimplantação será acionada automaticamente, o que fará com que o valor seja aplicado.

Atualizações de segurança

Atualizações de segurança relacionadas disponíveis para o Adobe Commerce:

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