A biblioteca jsPDF, amplamente utilizada para gerar documentos PDF em aplicações JavaScript, apresenta uma vulnerabilidade crítica que permite a um atacante roubar dados sensíveis do sistema de arquivos local, incluindo-os nos arquivos PDF gerados.
O problema está relacionado a uma falha de inclusão local de arquivos (local file inclusion), combinada com uma vulnerabilidade de path traversal.
Essa falha permite o uso de caminhos não sanitizados no mecanismo de carregamento de arquivos (loadFile) em versões do jsPDF anteriores à 4.0. Identificada como
CVE-2025-68428
, a vulnerabilidade recebeu uma pontuação de gravidade 9,2. A biblioteca jsPDF é bastante popular, com mais de 3,5 milhões de downloads semanais no repositório npm.
Nas versões para Node.js, a função loadFile é responsável pela leitura do sistema de arquivos local.
O problema ocorre quando um input controlado pelo usuário é usado como caminho do arquivo, fazendo com que o conteúdo desse arquivo seja incorporado ao PDF gerado.
Outros métodos que carregam arquivos também são afetados, como addImage, html e addFont, já que todos podem invocar a função loadFile.
De acordo com o boletim de segurança do jsPDF, essa vulnerabilidade impacta apenas as builds para Node.js, especificamente os arquivos dist/jspdf.node.js e dist/jspdf.node.min.js.
Em relatório técnico detalhado, a empresa de segurança Endor Labs aponta que o risco de exploração é baixo ou inexistente se os caminhos dos arquivos forem codificados diretamente, provenientes de configurações confiáveis ou se forem aplicadas listas de permissões (allowlists) rigorosas nos inputs.
A falha
CVE-2025-68428
foi corrigida na versão 4.0.0 do jsPDF, que passou a restringir o acesso ao sistema de arquivos por padrão, utilizando o modo de permissões do Node.js.
Contudo, pesquisadores da Endor Labs destacam que esse modo ainda é experimental na versão 20 do Node, recomendando o uso das versões 22.13.0, 23.5.0, 24.0.0 ou superiores.
Outro ponto importante é que ativar a flag --permission, sugerida como solução pelos desenvolvedores, afeta todo o processo do Node.js e não apenas a biblioteca jsPDF. Além disso, permissões amplas definidas pela flag de configuração --allow-fs-read podem invalidar a correção aplicada.
A equipe do jsPDF recomenda que versões antigas do Node façam a sanitização dos caminhos fornecidos pelo usuário antes de passá-los para a biblioteca.
Devido à ampla adoção do jsPDF em diversos projetos, a vulnerabilidade
CVE-2025-68428
representa um potencial alvo para ataques ativos e merece atenção imediata dos desenvolvedores.
Publicidade
A Solyd Hunter encontra, valida e entrega os melhores profissionais de Cibersegurança, Red Team, AppSec e Pentest para sua empresa com garantia e agilidade. Clique aqui e contrate com segurança. Saiba mais...