Skip to main content

In this article

84% de todos os sites são afetados por vulnerabilidades de XSS no jQuery

Escrito por
JavaScript Report feature

30 de outubro de 2019

0 minutos de leitura

Boas-vindas ao relatório de 2019 da Snyk sobre a segurança de frameworks JavaScript. Nesta publicação, vamos analisar as vulnerabilidades de segurança encontradas em outros projetos do ecossistema frontend.

Depois de analisar Angular e React, dois dos principais frameworks JavaScript, vamos fazer uma breve avaliação de alguns frameworks JavaScript e CSS: Vue.js, jQuery e Bootstrap.

Baixe o relatório aqui!

Segurança do jQuery

O jQuery revolucionou o desenvolvimento web há uma década, mas, desde então, esse campo evoluiu ainda mais com tecnologias para aplicações de página única, como Angular e React. Ainda assim, segundo a W3Techs, que realiza pesquisas regularmente e publica relatórios sobre o uso de tecnologias web, o jQuery estava presente em 73% dos sites analisados em agosto de 2019.

Um estudo da Snyk de 2017 reforça esse dado: ele apontou que 77% dos sites usam pelo menos uma biblioteca JavaScript vulnerável e observou que o jQuery foi detectado em 79% dos 5.000 principais URLs da Alexa. Se você ainda não está convencido, o módulo jQuery no npm teve 120.641.977 downloads somente nos últimos 12 meses.

No total, identificamos seis vulnerabilidades de segurança que afetam o jQuery em todas as versões lançadas até hoje: quatro vulnerabilidades de Cross-Site Scripting de gravidade média, uma vulnerabilidade de poluição de protótipo de gravidade média e, por fim, uma vulnerabilidade de negação de serviço de baixa gravidade. Se você não usa o jQuery 3.4.0 ou posterior, lançado recentemente, em 10 de abril de 2019, está usando uma versão vulnerável do jQuery.

Gráfico de rosca que mostra a quantidade de vulnerabilidades no jQuery por versão: 54% no jQuery 1.x, 17% no 2.x e 29% no 3.x.

Como o jQuery costuma ser encontrado em aplicações web como um componente legado, também é importante entender os padrões de uso de suas versões e o estado de segurança delas.

A W3Techs informa que, entre todos os sites que usam jQuery, a versão 1.x predomina, com 83,4% de participação; as versões 2 e 3 ficam bem atrás, com cerca de 8% do uso total do jQuery. Ao analisar as vulnerabilidades de segurança conhecidas e mapeá-las para as versões do jQuery, descobrimos que quatro vulnerabilidades de Cross-Site Scripting de gravidade média afetam o jQuery v1. Isso pode ser preocupante, considerando sua participação de 83,4% no mercado, especialmente para quem não usa análise de composição de software para encontrar e corrigir vulnerabilidades em componentes de código aberto.

Muitos sites e aplicações web também usam bibliotecas jQuery para ampliar os recursos do jQuery e recorrem a bibliotecas mantidas pela comunidade para isso.

Identificamos 13 bibliotecas jQuery vulneráveis, listadas na tabela a seguir, e destacamos as seguintes observações:

  • Três bibliotecas jQuery são versões maliciosas de módulos de código aberto da comunidade. Como não é possível contabilizar os downloads das versões realmente vulneráveis, pois esses dados não estão disponíveis no registro do npm, vale destacar o jquery.js: um pacote malicioso que teve 5.444 downloads nos últimos 12 meses.

  • As bibliotecas jQuery jquery-mobile, jquery-file-upload e jquery-colorbox somam mais de 340.000 downloads nos últimos 12 meses, apesar de incluírem vulnerabilidades de execução arbitrária de código e Cross-Site Scripting, sem oferecer uma forma de atualização para corrigi-las.

Nome da biblioteca jQuery

Tipo de vulnerabilidade

Data de divulgação

Gravidade da vulnerabilidade

Downloads anuais do módulo

Há correção?

Pacote malicioso

2019-08-06

alta

322

não disponível

Cross-Site Scripting

2019-07-03

média

17,898

✅

Pacote malicioso

2019-06-07

alta

232

não disponível

Cross-Site Scripting

2019-05-04

média

54,991

❌

Execução arbitrária de código

2018-11-02

baixa

19,442

❌

Cross-Site Scripting

2018-08-19

média

79,982

✅

Negação de serviço por expressão regular (ReDoS)

2018-02-13

alta

3,069

✅

Cross-Site Scripting

2017-11-14

média

268,513

❌

Pacote malicioso

2017-08-02

alta

5,444

não disponível

Cross-Site Scripting

2016-07-21

alta

8,934,683

✅

Falsificação de solicitação entre sites (CSRF)

2015-06-24

média

5,763,710

✅

Cross-Site Scripting

2013-04-18

média

1,831,735

✅

Falsificação de solicitação entre sites (CSRF)

2012-11-26

média

8,934,683

✅

Cross-Site Scripting

2012-08-01

média

54,991

✅

Cross-Site Scripting

2010-09-02

média

8,934,683

✅

*pacotes maliciosos não têm informações sobre correções.


Baixe o relatório aqui

Recomendamos fortemente baixar a versão completa do relatório em formato digital. Também disponibilizamos as seguintes seções gerais em publicações no blog:

Comece a jogar Capture the Flag

Aprenda a resolver desafios de Capture the Flag assistindo à gravação sob demanda do nosso workshop virtual introdutório.