Patch de segurança disponível

Os comerciantes agora podem instalar correções de segurança com prazo confidencial sem aplicar as centenas de correções e aprimoramentos funcionais que uma versão trimestral completa oferece (por exemplo, 2.4.1-p1). O Patch 2.4.0.12 (Pacote do Composer 2.4.1-p1) é um patch de segurança que fornece correções para vulnerabilidades identificadas na versão anterior trimestral, 2.4.1. Todos os hot fixes aplicados à versão 2.4.1 estão incluídos neste patch de segurança. (Um hot fix fornece uma correção para uma versão lançada que aborda um problema ou erro específico.)

Para obter informações gerais sobre patches de segurança, consulte Introdução à Nova Versão do Patch de Segurança. Para obter instruções sobre como baixar e aplicar patches de segurança (incluindo o patch 2.4.1-p1), consulte Instalação rápida no local. Os patches de segurança incluem apenas correções de bugs de segurança, não as melhorias de segurança adicionais incluídas no patch completo.

Outras informações sobre a versão

Embora o código para esses recursos esteja incluído nas versões trimestrais , vários desses projetos (por exemplo, Progressive Web Application (PWA) Studio) também são lançados independentemente. As correções de erros para esses projetos estão documentadas nas informações de versão separadas e específicas do projeto, disponíveis na documentação de cada projeto.

Destaques

Procure os seguintes destaques nesta versão.

Aprimoramentos substanciais de segurança

Esta versão inclui mais de 35 correções de segurança e melhorias na segurança da plataforma. Todas as correções de segurança tiveram backport para 2.4.1-p1 e 2.3.6-p1.

Mais de 35 aprimoramentos de segurança que ajudam a fechar as vulnerabilidades de execução remota de código (RCE) e criação de script entre sites (XSS)

Nenhum ataque confirmado relacionado a esses problemas ocorreu até o momento. No entanto, certas vulnerabilidades podem ser potencialmente exploradas para acessar informações do cliente ou assumir o controle de sessões de administrador. A maioria desses problemas exige que um invasor obtenha acesso ao Administrador primeiro. Como resultado, lembramos você de tomar todas as medidas necessárias para proteger seu Administrador, incluindo, mas não limitado a, esses esforços: incluir na lista de permissões de IP, autenticação de dois fatores, uso de uma VPN, uso de um local exclusivo em vez de /admin e boa higiene de senha. Consulte o Boletim de Segurança de Adobe para ver uma discussão sobre esses problemas corrigidos.

Aprimoramentos adicionais de segurança

Os aprimoramentos de segurança para esta versão incluem:

  • Todos os cookies principais agora oferecem suporte ao atributo SameSite.

  • O aplicativo agora exibe mensagens que identificam conteúdo potencialmente mal-intencionado nos campos de descrição do produto e da categoria quando o usuário tenta salvar valores nesses campos.

  • As operações do sistema de arquivos nos componentes foram padronizadas e fortalecidas para evitar uploads mal-intencionados.

  • As violações da Política de Segurança de Conteúdo (CSP) principal foram corrigidas.

NOTE
A partir da versão 2.3.2, atribuiremos e publicaremos números indexados de vulnerabilidades e exposições comuns (CVE) com cada erro de segurança relatado a nós por terceiros. Isso permite que os usuários identifiquem mais facilmente vulnerabilidades não solucionadas na implantação. Você pode saber mais sobre os identificadores CVE em CVE.

Melhorias na infraestrutura

Esta versão inclui aprimoramentos na qualidade principal, que melhoram a qualidade da Estrutura e estas áreas funcionais: Conta do cliente, Catálogo, CMS, OMS, Importação/Exportação, Promoções e Direcionamento e Carrinho e Check-out.

Aprimoramentos na plataforma

  • Agora há suporte para Elasticsearch 7.9.x. Embora seja recomendável executar o Elasticsearch 7.9.x, a versão 2.4.x permanece compatível com o Elasticsearch 7.4.x.

  • A versão 2.4.2 foi testada com Verniz 6.4. A versão 2.4.x permanece compatível com o Varnish 6.x.

  • Agora há suporte para o Redis 6.x. A versão 2.4.x permanece compatível com o Redis 5.x.

  • A versão 2.4.2 agora é compatível com o Composer 2.x. Recomendamos que os comerciantes migrem para o Composer 2.x. Embora você possa instalar esta versão usando o Composer 1.x, o Composer 1.x logo chegará ao fim da vida útil. Para obter uma visão geral dos recursos do Composer 2.x, consulte O Composer 2.0 já está disponível!

A capacidade de configurar uma instalação para usar um banco de dados dividido foi descontinuada nesta versão. Os comerciantes que atualmente usam o banco de dados dividido devem começar a planejar a reversão para um único banco de dados ou a migração para um único banco de dados ou usar uma abordagem alternativa. Consulte a publicação Deprecation of split database no Magento Open Source DevBlog para obter uma visão geral desse problema. Consulte Reverter de um banco de dados dividido para um único banco de dados para obter instruções de migração.

Aprimoramentos de desempenho

Esta versão inclui aprimoramentos de código que aumentam o desempenho da API e o tempo de resposta do administrador para implantações com catálogos grandes. Várias melhorias de escalabilidade permitem que a versão 2.4.2 ofereça suporte nativo a catálogos complexos até 20 vezes maior do que nas versões anteriores.

Integração do Adobe Stock

Esta versão inclui a Integração do Adobe Stock v2.1.1.

GraphQL

Esta versão inclui a cobertura da GraphQL para os seguintes recursos:

  • Adicionado suporte para listas de comparação. Os compradores podem criar e excluir listas de comparação e adicionar e remover itens para as listas de comparação. Além disso, os compradores que criam uma lista de comparação como convidado podem fazer logon como cliente e manter suas listas de comparação.

  • Adicionada a mutação generateCustomerTokenAsAdmin e atualizado o objeto Customer para oferecer suporte à assistência à compra remota.

  • Adição de suporte à localização nas lojas para suportar tarefas como alteração de idiomas, carrinhos e moedas.

  • Suporte adicionado para uniões na GraphQL. GitHub-29425

  • O esquema do GraphQL foi aprimorado para otimizar a recuperação de dados de produtos para produtos configuráveis com muitas variantes.

  • As IDs de objeto de tipo inteiro foram substituídas em favor de uid atributos de ID de tipo.

  • Adição do atributo staging ao ProductInterface e CategoryInterface para determinar se um produto é preparado e exibir suas informações de campanha associadas.

Consulte o Guia do Desenvolvedor do GraphQL para obter detalhes sobre esses aprimoramentos.

PWA Studio

Esta versão do PWA Studio inclui:

  • Internacionalização e localização. O Venia agora oferece suporte para vários idiomas e moedas.

  • Estrutura de extensibilidade aprimorada para oferecer suporte a alterações de código por meio de extensões.

  • Componentes iniciais para recursos relacionados à Minha Conta, como Lista de Desejos, Pagamentos Salvos, Catálogo de Endereços e Histórico de Pedidos.

  • Várias otimizações de desempenho e correções de erros.

Para obter informações sobre aprimoramentos e correções de erros, consulte versões de PWA Studio. Consulte compatibilidade para obter uma lista de versões do PWA Studio e suas versões compatíveis.

Galeria de mídia

Novos Recursos de Função para Galeria de Mídia. Esta versão oferece aos comerciantes a capacidade de limitar o acesso do administrador somente à galeria de Mídia e controlar quem pode executar estas ações:

  • Inserir ativos de mídia no conteúdo

  • Fazer upload de ativos

  • Editar detalhes de ativos

  • Excluir ativos da Galeria de mídia

  • Gerenciar estrutura de pastas.

Imagens otimizadas para a Web no conteúdo. Os comerciantes agora podem usar representação de imagem otimizada para a Web em conteúdo, em vez de imagens de alta resolução. A imagem original permanece não modificada na Galeria de mídia e a representação da imagem é gerada dinamicamente quando a imagem é inserida no conteúdo.

Quadro de testes funcionais (MFTF)

O MFTF 3.2.1 já está disponível. Esta versão introduz tolerância a erros na geração de testes e conjuntos de testes. Aprimoramentos adicionais e correções de erros estão descritos no Log de alterações da estrutura de teste funcional.

Extensões desenvolvidas pelo fornecedor

Consulte os seguintes artigos para obter atualizações sobre recursos e alterações desta versão:

Aprimoramentos de suporte ao AWS S3

O suporte ao Amazon Simple Storage Service (AWS S3) foi aprimorado para incluir suporte para:

Problemas corrigidos

Corrigimos centenas de problemas no código principal 2.4.2.

Instalação, atualização, implantação

  • Os comerciantes agora podem atualizar com êxito uma implantação do Open Source que executa MySQL 8.x para uma implantação do Commerce. Anteriormente, o aplicativo lançava uma exceção quando AUTO_INCREMENT valores eram revertidos para valores iniciais de todas as tabelas em que row_id era adicionado durante a atualização.
  • O aplicativo agora exibe uma mensagem de erro que identifica o caminho usado para criar o patch se ocorrer um erro durante a execução do bin/magento/setup:db:generate-patch. GitHub-27523
  • Os caches block_html, full_page e layout agora estão desabilitados conforme esperado após a execução de bin/magento/setup:upgrade. GitHub-28186
  • A versão mínima necessária do PHP em bootstrap.php foi atualizada. GitHub-30004
  • Agora você pode executar bin/magento/setup:upgrade após a instalação dos dados de exemplo. Anteriormente, quando você tentou executar bin/magento/setup:upgrade, o aplicativo exibia este erro: unable to apply data patch magento\catalogrulesampledata\setup\patch\data\installcatalogrulesampledata for module magento_catalogrulesampledata. O aplicativo também exibiu este erro no log do sistema: main.ERROR: Sample Data error: Unable to unserialize value. Error: Syntax error. GitHub-30685
  • Agora é possível definir uma chave de API do YouTube na linha de comando, conforme esperado. Anteriormente, o aplicativo retornava este erro quando você tentava executar bin/magento config:sensitive:set catalog/product_video/youtube_api_key: There are no sensitive configurations to fill.
  • O aplicativo agora respeita os valores maxMessages definidos em queue_consumer.xml. Anteriormente, o aplicativo usava apenas os valores de configuração de implantação. GitHub-29522
  • A geração de URL para um novo armazenamento agora funciona como esperado quando o armazenamento é criado usando bin/magento setup:config:import. Anteriormente, as substituições de URL não eram geradas em ambientes de produção. GitHub-30025
  • O aplicativo não lança mais um erro quando você tenta alterar o backend-frontname usando o contêiner ssh após instalar o Magento Open Source. GitHub-26762
  • O aplicativo não exibe mais esta pergunta quando você executa o bin/magento setup:install para se conectar ao banco de dados existente: Overwrite the existing configuration for db-ssl-verify?[Y/n]. GitHub-29612

Integração do Adobe Stock

  • Adicionado suporte para leitura de exif_image.png ou exif-image.jpeg metadados. GitHub-1449
  • O conteúdo exibido ao clicar no marcador Exibição padrão da Galeria de mídia não é mais filtrado. Anteriormente, o modo de exibição padrão continha um filtro aplicado do aplicador url-filter. GitHub-1813, GitHub-1789, GitHub-1780
  • A lógica foi removida do controlador (Magento\Cms\Controller\Adminhtml\Wysiwyg\Images\OnInsert::execute()) do WYSIWYG OnInsert e adicionada ao modelo Model\Wysiwyg\Images\PrepareImage::execute(). GitHub-1504
  • A emulação de área foi removida do comando media-content:sync (\Magento\MediaContentSynchronization\Console\Command\Synchronize::execute). GitHub-1784

Analytics

  • Os Relatórios avançados agora funcionam como esperado em vários ambientes no mesmo domínio. Anteriormente, os arquivos CSV gerados pelos Relatórios avançados falhavam porque as aspas duplas eram evitadas com barras invertidas em vez de com outras aspas duplas, conforme exigido pelo padrão CSV RFC4180.
  • O trabalho analytics_collect_data agora é executado com êxito ao usar a porta padrão ou não padrão para se conectar ao MySQL em env.php. Anteriormente, o analytics_collect_data exibia um erro quando você usava a porta não padrão.
  • Os arquivos CSV gerados por analytics_collect_data agora são escapados corretamente. Anteriormente, esses arquivos não eram gerados com o escape correto, o que impedia a geração de relatórios de Inventário.

Braintree

  • Os compradores agora podem usar o Apple Pay para fazer um pedido de produtos virtuais com êxito. Anteriormente, o aplicativo exibia este erro: There are no shipping methods available for you right now. Please try again or use an alternative payment method.

  • O método de pagamento padrão do Check-out expresso do PayPal agora funciona conforme esperado com o método de pagamento do Cartão de Crédito Braintree. Anteriormente, o aplicativo não exibia o botão PayPal quando o método de pagamento com Cartão de Crédito Braintree era habilitado.

Produtos do pacote

  • O aplicativo não define mais os preços dos itens filho do produto de pacote de preço fixo entre aspas.
  • A classificação de preços agora funciona conforme esperado quando os produtos de pacote incluem produtos indisponíveis. Anteriormente, a classificação do preço em ordem decrescente não exibia os produtos em ordem decrescente de preço.
  • O aplicativo agora aplica automaticamente uma quantidade padrão de 1 para opções de pacote de produtos quando muitas opções existem. Anteriormente, os comerciantes tinham que atribuir manualmente uma quantidade padrão a cada opção.
  • A página de criação da fatura do pedido agora exibe os produtos secundários para produtos de pacote conforme esperado. GitHub-27350
  • O aplicativo agora atribui preços de produtos corretos quando você recompra produtos simples que fazem parte de um pacote de produtos com um preço personalizado. Anteriormente, a definição de um preço personalizado em um pacote de produtos resultava em preços incorretos em produtos simples anexados quando resolicitados. GitHub-30343
  • Chamar o POST /V1/order/{orderId}/ship para enviar um pedido que contém um produto de pacote agora marca o pedido como concluído conforme esperado. Anteriormente, o aplicativo exibia esta mensagem de erro: You can't create a shipment without products. GitHub-9762

Carrinho e check-out

  • O avaliador de método de envio agora funciona conforme esperado quando atributos de endereço personalizados estão presentes na etapa de envio do fluxo de trabalho de finalização. Anteriormente, o aplicativo exibia esta mensagem de erro: {"message":"Error occurred during \"custom_attributes\" processing. A custom attribute is specified with a missing attribute code. Verify the code and try again."} GitHub-27505
  • O aplicativo agora exibe a mensagem You have no items in your shopping cart no minicarrinho como esperado quando um comprador remove o único item em seu carrinho. Anteriormente, os dados do carrinho não eram atualizados para checkout/cart/removeFailed quando um comprador removia o único item, e o aplicativo exibia esta mensagem: 1 product requires your attention.
  • O aplicativo não exibe mais o custo de envio de um pedido para um método de envio não aplicável. Anteriormente, o aplicativo exibia um preço de 0 para um método de envio não aplicável no workflow de finalização da compra.
  • O endereço de cobrança padrão de um cliente agora é selecionado quando a caixa de seleção Meu endereço de cobrança e de remessa são iguais no fluxo de trabalho de check-out não está selecionada.
  • O conteúdo do carrinho não é mais perdido quando um comprador muda de uma loja para outra em um domínio diferente.
  • Os compradores agora podem concluir com êxito um pedido usando Check-out com vários endereços ao usar vários métodos de envio. Anteriormente, o aplicativo exibia este erro: There has been an error processing your request. GitHub-30197
  • O aplicativo agora exibe o país padrão correto na página de remessa do fluxo de trabalho de check-out quando o comprador altera a exibição da loja do carrinho de compras.
  • O aplicativo agora exclui a sessão atual ao limpar as sessões do cliente após uma redefinição de senha pós-logout quando um comprador convidado está conectado. Anteriormente, o aplicativo esvaziava o carrinho de compras quando o comprador redefinia a senha.
  • O aplicativo agora exibe o país padrão correto para uma exibição de loja quando um comprador altera a exibição da loja no carrinho de compras. Anteriormente, quando a visualização de loja era alterada no carrinho, o país padrão estava incorreto.
  • As chamadas redundantes para o endpoint /rest/V1/guest-carts/cart_id/totals-information no carrinho foram removidas, o que melhorou o desempenho do carrinho. Anteriormente, quando um comprador adicionava um produto ao carrinho e, em seguida, visualizava o carrinho, o aplicativo chamava o método collectAddressTotals várias vezes.
  • O aplicativo não exibe mais o campo Região para um país no fluxo de trabalho de check-out quando a configuração Permitir para Escolher Estado se for Opcional para o País está desabilitada. GitHub-30747
  • O aplicativo não repete mais um endereço de envio no fluxo de trabalho de finalização da loja quando um pedido é reordenado pelo administrador.
  • Correção de problemas com o design de AdminMediaGalleryInsertLargeImageFileSizeTest.
  • Todos os novos registros na tabela quote para convidados agora recebem um valor 1 na customer_is_guest field. Anteriormente, para cada novo convidado que adicionava um produto ao carrinho, o registro recebia um 0 no campo quote.customer_is_guest.
  • O botão Enviar na seção Revisar e Pagamentos do fluxo de trabalho de check-out foi movido para dentro de <form id="purchaseorder-form"...></form>, o que torna possível o envio implícito de formulários sem alterar qualquer JavaScript. GitHub-27925
  • O aplicativo não exibe mais o campo Região no fluxo de trabalho de check-out quando a configuração Permitir para Escolher Estado se for Opcional para o País está desabilitada. GitHub-30747
  • O aplicativo agora atualiza corretamente o subtotal do item do carrinho quando um comprador clica em Atualizar carrinho de compras ao fazer check-out com vários endereços. GitHub-30408
  • O aplicativo não lança mais uma exceção quando existem config.xml nós para métodos de pagamento não instalados no momento. Anteriormente, o aplicativo lançava uma exceção durante o check-out. GitHub-29555
  • O aplicativo agora renderiza corretamente nomes de produtos que contêm caracteres especiais no minicarrinho. GitHub-29075
  • O aplicativo agora define o pacote de desconto correto para a taxa de tabela. Anteriormente, o aplicativo não aplicava uma regra de carrinho que definia um desconto no carrinho ao calcular a taxa da tabela. GitHub-30169