Repository navigation
Bound parser depth and validate supplied ASTs before recursive traversal - #88
Open
Corvette052 wants to merge 1 commit into
Open
Corvette052 wants to merge 1 commit into
Corvette052 wants to merge 1 commit into
Conversation
|
I independently reviewed and tested this head on Node 24.17. The suite passes (899 tests), but there is still a hang through the caller-supplied AST path: the preflight only validates Reproducer (the const ast = { type: 'root', nodes: [] };
const paren = { type: 'paren', nodes: [{ type: 'text', value: 'x' }] };
ast.nodes.push(paren);
paren.parent = paren;
require('./lib/expand')(ast);At this PR head ( |
6 of 7 tasks
8 of 10 tasks
Gabriouss
added a commit
to Gabriouss/Grana.
that referenced
this pull request
Oct 16, 2026
…audit de 14 para 0 Nenhum dos dois tem versao corrigida publicada (V-3, ordem de prioridade do autor, 15/10/2026). - braces: GHSA-vfj7-8cjw-p6xm, estouro de pilha com chaves/parenteses aninhados. Correcao do PR micromatch/braces#88 (teto de 128 niveis no parse e percurso iterativo antes de compile, expand e stringify). - node-forge: GHSA-86w9-cpqp-85rv, assinatura RSA PKCS#1 v1.5 forjada com lixo no DigestAlgorithm. Correcao do PR digitalbazaar/forge#1152 em lib/rsa.js. Tarballs oficiais do npm (sha512 igual ao do lock anterior), ligados por file: + override, mesmo padrao da decode-uri-component. Teste __tests__/vendor-braces-node-forge.cjs (no test:ci) prova no pacote que micromatch e @expo/code-signing-certificates carregam: a entrada do advisory nao reproduz, o uso normal continua igual; contraprova nos originais reproduz as duas. Atencao: npm audit nao audita pacote file:, ver README-GRANA.md de cada pasta (quando apagar). Prova num clone: npm ci, tsc, test:ci, expo export web, todos verdes; app abrindo no emulador com o Metro carregando os vendors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
5 of 6 tasks
robmclarty
added a commit
to robmclarty/fascicle
that referenced
this pull request
Oct 16, 2026
braces 3.0.3 caps a pattern's length but not its nesting, and its recursive walkers overflow the stack on a deep one: on Node 24, braces.expand throws RangeError at a depth of 4990, inside the length cap (GHSA-vfj7-8cjw-p6xm, high). No release fixes it, so pnpm carries micromatch/braces#88 as a patch. The parser refuses nesting deeper than 128 and the walkers check depth before recursing, so such a pattern throws a SyntaxError instead. braces reaches the tree only through markdownlint-cli2's globbing, and ordinary globs match as before. pnpm audit matches by version, so pnpm-workspace.yaml names the advisory under audit.ignore, and `pnpm audit` passes. The security slot still reads red, because checkride gates on the report's per-severity totals and pnpm 11 keeps an ignored advisory in them (pnpm 12.4 leaves it out). The slot stays explicit-only, and its note now says how an advisory with no fixed release gets cleared. TIL: under pnpm 11, audit.ignore drops an advisory from the report's advisory list but not from metadata.vulnerabilities, so a tool that gates on those per-severity totals still counts it
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Addresses publicly disclosed GHSA-vfj7-8cjw-p6xm: GHSA-vfj7-8cjw-p6xm. Parser brace/parenthesis nesting is bounded at 128. Iterative depth/path validation precedes compile, expand and stringify, including supplied ASTs. Deep/cyclic inputs throw SyntaxError; shared acyclic nodes remain supported. Callers must handle validation errors. This does not address every expansion-resource hazard. Adds Mocha regressions for 12,000-level ASTs, cycles, 4,000-level patterns, ordinary ranges, 64-level nesting and shared nodes. Validation: npm install --ignore-scripts --no-package-lock; npm test: 899 passing on Node 24.19.0. No package version change. Maintainer feedback welcome on depth and error semantics.