E o Django corrigiu uma vulnerabilidade de SQL Injection em novas versões. Confira os detalhes dessa falha e atualize.
Django é um framework para desenvolvimento rápido para web, escrito em Python, que utiliza o padrão model-template-view.
Ele foi criado originalmente como sistema para gerenciar um site jornalístico na cidade de Lawrence, no Kansas. Tornou-se um projeto de código aberto e foi publicado sob a licença BSD em 2005.
Agora, o projeto Django corrigiu uma vulnerabilidade de alta gravidade em seus últimos lançamentos.
Django corrigiu uma vulnerabilidade de SQL Injection em novas versões
Rastreada como CVE-2022-34265, a potencial vulnerabilidade de SQL Injection existe na ramificação principal do Django e nas versões 4.1 (atualmente em beta), 4.0 e 3.2. Novos lançamentos e patches lançados recentemente eliminam a vulnerabilidade.
Dezenas de milhares de sites, incluindo algumas marcas populares somente nos EUA, escolhem o Django como seu framework Model-Template-View, de acordo com algumas estimativas.
É por isso que a necessidade de atualizar ou corrigir suas instâncias do Django contra bugs como esses é crucial.
E a equipe do Django lançou as versões Django 4.0.6 e Django 3.2.14 que tratam de uma vulnerabilidade de injeção SQL de alta gravidade e está pedindo aos desenvolvedores que atualizem ou corrijam suas instâncias do Django o mais rápido possível.
Atribuída CVE-2022-34265, a vulnerabilidade pode permitir que um agente de ameaças ataque aplicativos da Web Django por meio de argumentos fornecidos às funções Trunc(kind) e Extract(lookup_name).
“As funções de banco de dados Trunc() e Extract() estavam sujeitas a injeção de SQL se dados não confiáveis fossem usados como um valor kind/lookup_name. Aplicativos que restringem o nome de pesquisa e a escolha de tipo a uma lista segura conhecida não são afetados.”
Em outras palavras, seu aplicativo não é vulnerável se estiver executando algum tipo de sanitização de entrada ou escapando antes de passar esses argumentos para as funções Trunc e Extract.
O pesquisador Takuto Yoshikai, do Aeye Security Lab, foi creditado por relatar a vulnerabilidade com responsabilidade.
Para aqueles incapazes de atualizar para as versões corrigidas do Django 4.0.6 ou 3.2.14, a equipe disponibilizou patches que podem ser aplicados às versões afetadas existentes.
Patches para resolver o problema foram aplicados à ramificação principal do Django e às ramificações de lançamento 4.1, 4.0 e 3.2. Os patches podem ser obtidos a partir dos seguintes changesets:
- Na filial principal
- Na ramificação da versão 4.1
- Na ramificação da versão 4.0
- Na ramificação da versão 3.2
“Esta versão de segurança atenua o problema, mas identificamos melhorias nos métodos da API de banco de dados relacionados à extração e truncado de data que seriam benéficos para adicionar ao Django 4.1 antes de [sua] versão final”, afirma ainda a equipe do Django.
“Isso afetará os backends de banco de dados de terceiros usando o Django 4.1 release candidate 1 ou mais recente, até que eles possam atualizar para as alterações da API. Pedimos desculpas pelo inconveniente.”
A política de segurança do Django afirma que quaisquer possíveis problemas de segurança sejam relatados em particular por e-mail para [email protected], em vez de usar a instância Trac do Django ou listas de discussão públicas.