Build dependency chain installs brace-expansion@2.1.2 affected by GHSA-mh99-v99m-4gvg
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 48/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Pouca atividade
- Stack de tecnologia
- graphql, javascript, typescript
- Domínio
- build-system, security
Direção de pesquisa
Start with a clean checkout and run npm ci, then use npm explain minimatch --json, npm explain brace-expansion --json, and npm audit --json to trace the build dependency chain. Review the Shopify Function and graphql-config dependency ranges; done means the supported build dependencies resolve to an unaffected compatible minimatch/brace-expansion combination without an out-of-range consumer override.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Summary
The current Shopify Function JavaScript toolchain installs
brace-expansion@2.1.2 through minimatch@9.0.9. npm audit reports
GHSA-mh99-v99m-4gvg as high severity.
Environment and versions
- Node.js 24.13.1
- npm 11.8.0
- @shopify/shopify_function 2.0.1
- graphql-config 5.1.3
- minimatch 9.0.9
- brace-expansion 2.1.2
Reproduction
In a Shopify app with a JavaScript Function extension:
- Run
npm cifrom a clean checkout. - Run
npm explain minimatch --json. - Run
npm explain brace-expansion --json. - Run
npm audit --json.
The Function workspace reaches the affected package through the Shopify
Function/code-generation build chain, including graphql-config/minimatch.
The production app build was generated with:
npm exec --offline -- shopify app build --config production --no-color --skip-dependencies-installation
We checked the generated Function JavaScript and WASM with static byte/string
searches and found no minimatch, brace-expansion, or graphql-config package
reference. We therefore believe this is a build-tool dependency, but still
fail our dependency audit until it is resolved or narrowly reviewed.
Forcing minimatch 10 as a consumer override is not a safe workaround:
graphql-config 5.1.3 declares minimatch ^9.0.5, so npm reports the dependency
tree as invalid.
Expected result
The supported Function build dependencies should resolve to a minimatch /
brace-expansion combination that is not affected by
GHSA-mh99-v99m-4gvg.
The smallest preferred fix is a compatible Shopify Function dependency update
whose graphql-config/minimatch ranges support a patched brace-expansion
release, without requiring consumers to force an out-of-range major override.
Additional context
The package is used by the build toolchain and is not imported by the
generated Function JavaScript or WASM artifact in our verification. We are
still treating the audit result as fail-closed and would prefer an upstream
dependency update over an incompatible package override.
- Linguagem predominante
- TypeScript
- Estrelas
- 35
- Forks
- 9
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de Shopify/shopify-function-javascript
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
Shopify/shopify-function-javascript#127 · 1 comentário ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 25/100
Shopify/shopify-function-javascript#98 · 1 comentário ·
Todas as issues de Shopify/shopify-function-javascript
Issues semelhantes
-
VerificationGate: ATTRIBUTION quote guard never matches a normal quotation (\b around the quote) Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
danielmiessler/LifeOS#2234 ·
-
T: Bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
-
Mend: dependency security vulnerability untriaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100