Um criado 2.5 Arquivo de tar de KB bloqueia qualquer processo de Node.js que o extraia. O analisador de cabeçalho PAX coacciona os valores do caminho de todos os dígitos para os números JavaScript, o que causa um TipoErro não capturado quando o código a jusante chama `.split('/')` no valor numérico. Os manipuladores de erro e `strict: false` não podem interceptar o acidente. Na linha `pax.ts` 180, `parseKV` converte valores PAX que correspondem `/^[ 0 - 9 ]+$/` para números via `+v`. Isto se aplica a todos os campos, incluindo `path` e `linkpath'. Quando um cabeçalho PAX configura ` caminho` para uma cadeia de todos os dígitos como ` " 12345 ", o valor se torna o número ` 12345 `. Este número flui através do cabeçalho -> ReadEntry -> Desempack.CHECKPATH, onde `normalizeWindowsPath(entry.path).split('/')` lança um TipoErro porque os números não têm `.split()`.

O lançamento é síncrono durante a emissão do evento e evita todo o gerenciamento de erros: - `strict: false` não ajuda - os manipuladores de eventos `'error'' não o pegam - os manipuladores `'warn''' não o pegam - O TipoError propaga-se através da pilha do emissor de eventos como uma não capturadaException Os registros, SymbolicLink e Links chegam ao CHECKPATH e entram em colapso. Os itens do tipo de arquivo se bloqueiam mais cedo no construtor de cabeçalho em `this.path.slice(- 1 ) ', mas esse lançamento é capturado e emitido apenas como um aviso. Crie um arquivo de tar com um cabeçalho extendido PAX contendo um caminho de todos os dígitos:.

``` Corpo de cabeçalho PAX: " 18 caminho= 12345 \n" Tipo de entrada: Diretório (tipo ' 5 ') ``` Extraia- o: ```js const tar = require('tar'). // Todos estes crash com TypeError: t.split não é um arquivo de função tar.extract({ file: 'malicious.tar', cwd: '/ tmp/test'}); // Os manipuladores de erros não ajudam: tar. extract( { arquivo: 'malicious.tar', cwd: '/ tmp/ test', rigoroso: falso }).on(' erro', (err) => { /* nunca alcançado */ }).on(' warn', (código, msg) => { /* nunca alcançado */ }); ```.

O arquivo é ~ 2.5 KB. O acidente é determinístico em cada tentativa. Negação de serviço. Qualquer aplicativo ou ferramenta que extraia arquivos de tar não confiáveis falha a partir de um único arquivo pequeno. Isto inclui npm (que usa node-tar para extrair pacotes), pipelines CI/ CD, processadores de upload de arquivos e ferramentas de backup. O crash não pode ser detectado pelo gerenciamento de erros no nível de aplicativos. Registro de aconselhamento: GHSA-w 8 wr- v 893 -VJVP. Identificadores relacionados: CVE- 2026 - 59871.

Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 20 T 21: 53: 14.000 Z e lista a sua última modificação como 2026 - 07 - 20 T 21: 53: 14.000 Z. Gravidade: MODERAR. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L.

Software afetado e informações de versão: tar do pacote npm — ECOSYSTEM: introduzido 0, corrigido 7.5.18. Classificação e evidência: identificadores de fraqueza CWE- 704. O registro contém 5 suporte de referências nestes tipos: WEB, AVISO, EMBALAGAMENTO.