Principais conclusões
- O Lodash não possui nenhuma dependência direta, mas é utilizado por mais de 195.000 pacotes do npm, o que o torna um ponto crítico de falha em inúmeras árvores de dependências.
- Soluções provisórias para problemas de poluição de código e alterações que quebram a compatibilidade entre versões do Lodash podem introduzir bugs sutis que só vêm à tona sob carga de produção, levando a excedentes orçamentários garantidos.
- Opções de suporte estendido, como o TuxCare ELS, oferecem cobertura de segurança contínua para versões em fim de vida útil enquanto você planeja as atualizações de forma estratégica.
Se você está desenvolvendo aplicativos em JavaScript, é bem provável que o Lodash esteja na sua árvore de dependências. Talvez você o esteja usando diretamente por causa daquelas funções utilitárias que tornam o desenvolvimento em JavaScript muito mais agradável. Talvez ele esteja escondido em uma camada três níveis mais profunda porque algum pacote que você instalou depende dele. De qualquer forma, você provavelmente já viu aqueles avisos de fim de vida útil (EOL) do Lodash aparecerem em varreduras de segurança e pensou: “É, eu sei… mas será que preciso mesmo lidar com isso agora?”
Você não está errado em hesitar. E, com certeza, não está sozinho.
A Lodash tem sido uma das bibliotecas JavaScript mais utilizadas desde 2012, figurando consistentemente como o pacote mais utilizado no ecossistema do npm. Ela está presente em tudo, desde protótipos rápidos até aplicativos corporativos que atendem a milhões de usuários. Quando as versões da Lodash chegam ao fim de vida útil, não se trata apenas de atualizar um único pacote; trata-se de lidar com uma complexa rede de dependências que pode facilmente comprometer a funcionalidade existente.
Vamos falar sobre como manter suas aplicações baseadas no Lodash seguras e em conformidade, mesmo quando a versão do Lodash que chegou ao fim da vida útil (EOL) já não estiver mais oficialmente sob suporte.
Como funciona o ciclo de lançamento do Lodash
Antes de entrarmos em detalhes sobre o que acontece quando o suporte chega ao fim, vamos nos entender sobre como o ciclo de vida do Lodash realmente funciona. Porque, sinceramente, se você não estiver acompanhando de perto, é fácil acordar um dia e perceber que a versão do Lodash que chegou ao fim do suporte (EOL) está na sua base de código há anos sem correções.
O Lodash não segue um cronograma de lançamento estritamente baseado em prazos, como acontece com algumas estruturas. Em vez disso, ele lança novas versões com base na conclusão de recursos, correções de bugs e patches de segurança. As versões principais (como da 3.x para a 4.x) podem permanecer em uso por anos, com lançamentos incrementais de patches que corrigem problemas de segurança e bugs à medida que são descobertos.
Veja como isso funciona na prática:
Lodash 3.x foi lançado em 2015 e introduziu métodos para strings, utilitários de programação funcional e alinhamento com o ES6. Ele ficou em uso por cerca de um ano antes do lançamento da versão 4.
Lodash 4.x dropped in 2016 with major changes; it removed old IE < 9 support, introduced a 4KB core build, and modernized the entire codebase. This version has been the primary release line for nearly a decade, with 4.17.23 being the latest stable release from January 2026, which includes a security fix for CVE-2025-13465.
E o que acontece depois de anos usando a mesma versão? É aí que as coisas ficam complicadas. O Lodash não segue um cronograma formal de anúncios de fim de vida útil, como fazem o Node.js ou o Bootstrap. No entanto, ele publica uma página de política de suporte que registra quais versões têm suporte ativo e quais estão no fim da vida útil. As versões mais antigas simplesmente deixam de receber correções, a comunidade passa a usar versões mais recentes e, se surgir uma vulnerabilidade em uma versão sem suporte, não haverá correções oficiais.
O que o fim da vida útil do Lodash realmente significa para o seu ambiente de produção
Tudo bem, então o suporte oficial vai acabar. Grande coisa, né? Seu código ainda está funcionando bem, tudo dá certo, então por que se preocupar?
Bem, eis a verdade incômoda: só porque o suporte às atualizações é encerrado, isso não significa que as vulnerabilidades deixem de surgir. Na verdade, os invasores procuram especificamente organizações que ainda utilizam versões do Lodash sem suporte, pois sabem que essas vulnerabilidades não estão sendo corrigidas.
Quer alguns exemplos reais? O Lodash tem um histórico bem documentado de problemas de segurança, especialmente no que diz respeito à poluição de protótipos. Vamos dar uma olhada nesse histórico:
CVE-2021-23337 (CVSS 7.2): Vulnerabilidade de injeção de comando no função . Essa é grave; invasores remotos autenticados podem executar comandos arbitrários enviando solicitações especialmente criadas. Afeta todas as versões anteriores à 4.17.21.
CVE-2020-8203 (CVSS 7,5): Contaminação de protótipos na merge, mergeWithe defaultsDeep . Invasores podem injetar propriedades no `Object`, causando potencialmente negação de serviço ou até mesmo a execução de código arbitrário. Afeta versões anteriores à 4.17.19.
CVE-2020-28500 (CVSS 5.3): Negação de serviço por expressão regular (ReDoS) em toNumber, trim, e trimEnd . Ao enviar strings excessivamente longas, os invasores podem fazer com que o aplicativo trave indefinidamente.
CVE-2019-10744 (CVSS 9.1): Outra falha de poluição de protótipos, desta vez utilizando cargas úteis no construtor para injetar propriedades no `Object`. Afeta versões anteriores à 4.17.12.
CVE-2019-1010266 (CVSS 4.0): Negação de serviço causada pelo consumo descontrolado de recursos no manipulador de data. Afeta versões anteriores à 4.17.11.
CVE-2018-16487 (CVSS 6,5): Mais uma vulnerabilidade de poluição de protótipos no defaultsDeep, mergee mergeWith. Este permite a modificação de propriedades existentes que serão aplicadas a todos os objetos.
CVE-2018-3721 (CVSS 5.3): Contaminação de protótipos por meio de modificação de __proto__ , permitindo que invasores adicionem ou modifiquem propriedades em todos os objetos.
Percebeu o padrão? Vulnerabilidades relacionadas à poluição de protótipos continuam surgindo no Lodash, afetando justamente as funções utilitárias que tornam sua utilização tão prática. Não se trata de problemas acadêmicos teóricos. São questões reais de segurança que podem transformar uma situação do tipo “é, provavelmente devíamos atualizar isso” em um verdadeiro pesadelo de conformidade ou, pior ainda, em uma violação de segurança real. Quando você usa versões do Lodash que já estão fora de suporte, fica exposto a todas essas vulnerabilidades, sem que haja patches oficiais disponíveis.
O que torna esses ataques relacionados ao fim da vida útil do Lodash perigosos não é apenas o fato de serem comuns, mas o que eles possibilitam. A contaminação de protótipos pode levar à negação de serviço, à injeção de propriedades que comprometem a lógica da aplicação e, em alguns casos, à execução remota de código. Para aplicações que lidam com dados confidenciais ou transações financeiras, utilizar versões do Lodash cujo suporte foi encerrado significa que esses riscos não são meras hipóteses. São violações de conformidade prestes a ocorrer.
Mas eis o que torna a segurança do Lodash particularmente interessante em comparação com outras bibliotecas…
O risco oculto: sua árvore de dependências
Quando a maioria das pessoas pensa na segurança do Lodash, elas se perguntam se estão importando-o diretamente em seu código. Isso é apenas a ponta do iceberg. O verdadeiro risco relacionado ao fim da vida útil do Lodash não está apenas em suas dependências diretas, mas está oculto em toda a sua árvore de dependências.
O que acontece com o Lodash é o seguinte: ele tem zero dependências diretas. Nenhuma. É uma biblioteca de utilitários autônoma que não depende de mais nada. Parece ótimo, não é?
Mas, se você olhar por outro ângulo, vai perceber qual é o verdadeiro problema: o Lodash é sempre o pacote mais utilizado em todo o ecossistema do npm. Antes que você perceba, mesmo que nunca tenha instalado o Lodash explicitamente, ele já está escondido em algum lugar no seu node_modules.
Essas dependências transitivas (pacotes que você não instalou diretamente) criam uma verdadeira selva, na qual o Lodash pode aparecer várias vezes em diferentes versões. Já vi projetos em que a equipe nunca adicionou explicitamente o Lodash ao seu package.json, mas quando você executa npm list lodash, você se depara com 15 pacotes diferentes que dependem dele, alguns na versão 4.17.15, outros na 4.17.19 e alguns retardatários ainda na 3.x.
Cada instância do Lodash representa uma possível falha de segurança. E, como se trata de dependências aninhadas que você não instalou diretamente, é extremamente fácil deixá-las passar despercebidas durante auditorias de segurança.
E aqui está o ponto crucial: quando o Lodash chegar ao fim de vida útil, você não estará lidando apenas com uma biblioteca sem suporte. Você estará lidando com todo um ecossistema de pacotes que dependem dessa versão do Lodash que chegou ao fim de vida útil. Ferramentas como o npm audit podem ajudar a identificar vulnerabilidades conhecidas, é claro. Mas elas não podem, como por mágica, corrigir versões em fim de vida para você.
E é aí que as coisas ficam realmente complicadas. Mesmo que você quisesse atualizar o Lodash amanhã, sua árvore de dependências pode ter outros planos. O Pacote A requer o Lodash 3.x por motivos de compatibilidade. O Pacote B não funciona com versões mais recentes que a 4.17.15. O Pacote C tem uma dependência transitiva do Pacote D, que não é atualizado há três anos e deixa de funcionar nas versões mais recentes do Lodash.
O que parecia ser uma tarefa simples de “basta atualizar o pacote” de repente se transforma em um projeto abrangente de “desembaraçar toda essa confusão de dependências”. Que diversão.
Suas opções quando o Lodash chegar ao fim da vida útil
Tudo bem, então a sua versão do Lodash está chegando ao fim da vida útil (EOL), ou talvez já tenha passado dessa data. Quais são as suas opções reais nesse caso?
Basicamente, você tem três caminhos a seguir. Vamos analisar cada um deles de forma realista.
Opção 1: Atualizar para a próxima versão principal
Essa é a resposta “oficial” que todo mundo dá. Basta atualizar para a versão mais recente do Lodash! Problema resolvido! Suas preocupações desaparecem!
E veja bem, para muitas equipes, essa é realmente a decisão certa. As versões mais recentes do Lodash são, de fato, melhores; elas corrigiram problemas de segurança, melhoraram o desempenho e adicionaram recursos úteis.
Mas será que podemos ser realistas por um instante e pensar no que “basta atualizar” realmente significa quando se trata de uma migração para uma versão principal?
Primeiro, você precisa fazer uma auditoria em toda a sua base de código para identificar alterações que causam quebra de compatibilidade. O Lodash passou por várias mudanças na API entre as versões, incluindo renomeações, comportamentos que mudaram sutilmente e funções que foram descontinuadas. Em seguida, você precisa atualizar todas as suas dependências e torcer para que elas realmente sejam compatíveis com a versão mais recente do Lodash. Depois, há a refatoração do código que depende de comportamentos antigos. A coordenação de implantações em dezenas de microsserviços. E a definição de planos de reversão, caso algo dê errado na produção.
Para um aplicativo pequeno, com dependências modernas e cobertura de testes sólida? Talvez você consiga dar conta disso em algumas semanas. Para um aplicativo corporativo extenso, com centenas de pacotes que dependem transitivamente do Lodash? Você terá meses de trabalho de migração pela frente. Ciclos extensos de controle de qualidade. E a possibilidade muito real de introduzir bugs sutis que só aparecem sob carga de produção.
A transição do Lodash 3 para o 4 foi particularmente difícil. Os nomes dos métodos mudaram. O comportamento do encadeamento mudou. Alguns métodos foram removidos por completo. Até mesmo as versões de correção 4.17.x introduziram alterações incompatíveis para casos extremos.
Nada disso é impossível. Basta ter planejamento, recursos e tempo — três coisas que geralmente escasseiam quando sua equipe de segurança está pressionando você por causa dos alertas sobre o fim da vida útil do Lodash (EOL) na última análise de vulnerabilidades.
Opção 2: Migração para tecnologias alternativas
Algumas equipes, ao se depararem com a situação do fim da vida útil (EOL) do Lodash, pensam: “Sabe de uma coisa? Talvez essa seja a nossa chance de repensar tudo isso.”
A adoção de métodos nativos do ES6+, o uso do Ramda para programação funcional e a mudança para bibliotecas mais específicas são, sem dúvida, motivos convincentes para considerar alternativas. O JavaScript moderno possui métodos embutidos como Array.map(), Object.assign()e Promise.all() que podem substituir muitos utilitários do Lodash.
Mas não vamos nos iludir sobre o que isso implica. Não se trata mais apenas de uma atualização da biblioteca. Trata-se de uma refatoração abrangente. E as refatorações têm essa curiosa tendência de serem muito mais complicadas do que qualquer um imagina.
O que começa como “vamos simplesmente substituir o Lodash por métodos nativos” rapidamente se transforma em “espera aí, precisamos adicionar polyfills para navegadores mais antigos, reescrever todas as nossas funções utilitárias, atualizar nossos padrões de codificação, treinar novamente a equipe em padrões de programação funcional e, ah, a propósito, precisamos manter o sistema antigo enquanto construímos o novo”.
A flexibilidade é realmente atraente. O prazo e o custo? Geralmente são bastante desanimadores quando você realmente faz um planejamento.
Opção 3: Suporte estendido da TuxCare
Eis a opção que muda tudo: suporte estendido oferecido por empresas especializadas em manter a segurança de softwares em fim de vida útil.
O Endless Lifecycle Support (ELS) da TuxCare para o Lodash foi desenvolvido especificamente para essa situação. Em vez de se apressar em fazer uma atualização para a qual você ainda não está preparado ou refatorar todo o seu aplicativo, você continua utilizando sua versão atual do Lodash, mas com o mesmo nível de cobertura de segurança das versões que recebem suporte ativo.
Funciona assim: a TuxCare monitora novos CVEs que afetam versões do Lodash que chegaram ao fim da vida útil, adapta as correções de segurança para essas versões, testa tudo minuciosamente e fornece patches que se integram perfeitamente à sua configuração atual. Você não está evitando a modernização; está fazendo isso de forma estratégica, no seu próprio ritmo, sem correr riscos de segurança.
Isso não é apenas ganhar tempo. É assumir o controle do seu plano de atualizações, mantendo, ao mesmo tempo, segurança e conformidade de nível empresarial.
O verdadeiro custo de apressar uma atualização do Lodash devido ao fim da vida útil (EOL)
Vamos falar sobre o que realmente acontece quando as equipes tentam forçar uma atualização do Lodash porque estão em pânico com os alertas de fim de vida útil (EOL) do Lodash em seus painéis de segurança.
Quando as equipes tentam encaixar uma grande atualização de biblioteca em um prazo irrealista por estarem sob pressão de conformidade ou segurança, é previsível que as coisas deem errado:
Aumento da carga de suporte: Todos aqueles bugs que não foram detectados durante os testes? Eles começam a aparecer na produção. Sua equipe de suporte fica sobrecarregada com tickets sobre comportamentos estranhos, e metade deles se deve a diferenças sutis no funcionamento dos métodos do Lodash.
Instabilidade do sistema: Talvez alguma dependência transitiva tenha apresentado um bug em um caso extremo com a nova versão do Lodash, que só se manifesta sob carga de produção. Talvez uma correção de poluição de protótipos tenha alterado a forma como o `merge` se comporta de maneiras que prejudicam o processamento de dados. Quando você apressa uma atualização, são esses os problemas que geram alertas às 3 da manhã e engenheiros muito irritados.
Acúmulo de dívida técnica: Na pressa para se adequar às normas, as equipes começam a tomar atalhos. A refatoração adequada é deixada de lado. As soluções provisórias se acumulam. “Vamos consertar direito mais tarde” se torna uma situação permanente e, seis meses depois, você se depara com uma bagunça ainda maior do que a inicial.
Excedentes orçamentários: Os excedentes orçamentários são praticamente inevitáveis quando você está lidando com problemas urgentes de atualização. Horas extras de prestadores de serviços de emergência, atrasos no lançamento de recursos, o custo de oportunidade de ter seus melhores engenheiros corrigindo problemas de compatibilidade com o Lodash em vez de desenvolver novos recursos — tudo isso se acumula rapidamente.
Não estou dizendo que as atualizações sejam ruins. Estou dizendo que atualizações feitas às pressas são caras e arriscadas. A diferença entre uma atualização bem planejada e uma feita por pânico não é sutil. É enorme.
A solução fácil: TuxCare ELS para o fim da vida útil do Lodash
É aí que o Suporte de Ciclo de Vida Ilimitado da TuxCare para o Lodash realmente faz a diferença.
A TuxCare vem fazendo isso há mais de uma década. Eles já forneceram patches de segurança para sistemas operacionais, ambientes de execução, bibliotecas e aplicativos que chegaram ao fim de vida útil; estamos falando de mais de 120 mil patches. Quando dizem que têm experiência na gestão de ciclos de vida de software de código aberto, não se trata apenas de um discurso de marketing. Eles realmente fizeram isso em grande escala.
O que diferencia a abordagem da TuxCare
Cobertura completa da árvore de dependências: Isso é muito importante. Embora o Lodash em si não tenha dependências, a TuxCare não se limita a corrigir versões fora de suporte; eles entendem como ele se encaixa em todo o seu ecossistema de dependências. Eles monitoram vulnerabilidades nos pacotes que dependem do Lodash e fornecem orientações abrangentes sobre como proteger toda a sua pilha. Você não está apenas protegendo uma biblioteca; está protegendo a camada de utilitários crítica da qual centenas de outros pacotes dependem.
Processo refinado e automatizado de aplicação de patches: O processo da TuxCare combina automação avançada com validação especializada. Eles monitoram o NVD, os alertas de segurança dos fornecedores, os feeds de segurança do GitHub — basicamente todos os locais onde as vulnerabilidades são divulgadas. Quando um CVE é publicado, eles utilizam uma combinação de ferramentas algorítmicas e automação assistida por IA para aplicar as correções em versões sem suporte; em seguida, especialistas em segurança validam tudo. Cada patch passa por testes extensivos de integridade, funcionalidade e problemas de regressão antes de chegar aos seus repositórios.
Se você quiser saber exatamente como isso funciona nos bastidores, confira o artigo técnico da TuxCare sobre seu processo de correção de código aberto. É surpreendentemente fácil de ler para um documento técnico.
Integração perfeita: Os patches da TuxCare se integram diretamente a qualquer fluxo de trabalho que você já esteja utilizando. Seja npm, Yarn, pnpm ou qualquer outro gerenciador de pacotes que você tenha, os pacotes ELS simplesmente funcionam. Você não precisa reformular seus processos nem suas ferramentas. Basta continuar usando o que já está configurado.
Resposta Rápida Apoiada por SLA: Quando novas vulnerabilidades são divulgadas, a TuxCare fornece patches respaldados por acordos de nível de serviço efetivos. Você não precisa ficar torcendo para que alguém, eventualmente, adapte uma correção. Você recebe atualizações de segurança prontas para produção em um cronograma previsível, com suporte garantido caso algo dê errado.
Custo-benefício: Eis o que surpreende as pessoas em relação ao suporte estendido: ele costuma ser bem mais barato do que as alternativas. Quando você soma o tempo de engenharia (com base nas taxas horárias reais da sua equipe), os ciclos de teste, os honorários de prestadores de serviços, o possível tempo de inatividade, o atraso no lançamento de recursos e o custo de oportunidade, o ELS normalmente custa apenas uma fração desse preço. Além disso, você não está sobrecarregando sua equipe com um projeto de migração de alta pressão.
Conformidade e Transparência: Cada versão do TuxCare oferece visibilidade completa sobre o que foi corrigido. Você recebe documentação detalhada sobre quais CVEs foram corrigidos, quais componentes foram modificados e como verificar tudo isso na sua lista de materiais de software (SBOM). Isso é fundamental para auditorias de conformidade e relatórios de segurança.
Como começar
Se você estiver utilizando versões fora de suporte e quiser saber o que realmente está disponível, a TuxCare mantém um rastreador de CVE em tempo real onde você pode consultar sua versão específica e ver quais vulnerabilidades já foram corrigidas. É uma maneira bem simples de entender qual cobertura de segurança você estaria recebendo.
Quer saber mais detalhes? Acesse a página “Suporte de ciclo de vida ilimitado para Lodash” da TuxCare para obter informações sobre as versões compatíveis, preços e como a implementação funciona na prática.
Não deixe que o fim da vida útil do Lodash coloque seus sistemas em risco
A evolução do Lodash da versão 3 para a 4 trouxe melhorias reais, melhor desempenho, práticas modernas de JavaScript, código mais limpo e correções importantes de segurança. Esses são benefícios reais e, se você estiver começando do zero, vale muito a pena usar o Lodash 4.17.21 ou uma versão posterior.
Mas e se você estiver mantendo aplicativos existentes que, na prática, não podem ser atualizados de acordo com o cronograma de lançamento indefinido do Lodash sem causar grandes interrupções? O fim da vida útil (EOL) do Lodash não precisa significar “pânico” ou “pesadelo de segurança”.
Você tem opções. Opções reais. Você pode planejar uma atualização bem pensada quando isso realmente fizer sentido para o seu negócio. Você pode explorar abordagens alternativas se houver uma razão técnica genuinamente convincente. Ou você pode utilizar o suporte estendido para manter a segurança e a conformidade enquanto toma essas decisões no seu próprio ritmo, em vez de ser forçado a tomá-las devido à divulgação de uma vulnerabilidade.
As equipes que lidam bem com o cenário de segurança relacionado ao fim do ciclo de vida do Lodash não são necessariamente aquelas com os maiores orçamentos ou as bases de código mais modernas. São as equipes que reconhecem os riscos, compreendem suas opções reais e tomam decisões deliberadas sobre como seguir em frente.
Se o fim do suporte ao Lodash está em sua agenda no momento, vale a pena conferir o que a TuxCare oferece. Você pode descobrir que o melhor próximo passo não é se apressar em fazer uma atualização para a qual não está preparado, mas sim proteger o que já possui enquanto planeja a atualização que realmente deseja realizar.
Visite o Suporte de Ciclo de Vida Ilimitado da TuxCare para Software de Código Aberto para ver como o suporte estendido pode proteger toda a sua pilha de código aberto pelo tempo que você precisar.

