You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@shopify/shopify_function@2.0.1 exact-pins @graphql-codegen/cli@5.0.6, which transitively pulls @graphql-codegen/plugin-helpers@5.1.1, which depends on lodash@~4.17.0. Newer versions of plugin-helpers (6.2.1+, released 2026-04-04) drop the lodash dependency entirely. Bumping @graphql-codegen/cli to a current 6.x or 7.x release transitively resolves all 13 lodash-chain advisories that consuming projects see in npm audit.
PR #87 (Bump @graphql-codegen/cli from 5.0.6 to 6.1.1) has been open since 2026-01-12 and would fix this. It just needs review and merge.
Reproduction
In any project that depends on @shopify/shopify_function@2.0.1 (e.g. a Shopify Function extension generated via shopify app generate extension):
npm audit flags both GHSA-r5fr-rjxr-66jc (CVSS 8.1, code injection via _.template) and GHSA-f23m-r3pf-42rh (CVSS 6.5, prototype pollution in _.unset / _.omit). All 13 advisories report fixAvailable: false because @shopify/shopify_function@2.0.1 is the latest published version and exact-pins the codegen versions, so consuming npm install cannot bump the chain on its own.
Why this is awkward to work around downstream
Consumers can apply an npm overrides block to force lodash: "^4.18.1", which we did in our project. But every consuming Shopify Function project has to repeat the workaround. And each Dependabot scan still re-flags the chain because the override is invisible to the advisory database walker.
Proposed fix
Merge PR #87 (Bump @graphql-codegen/cli from 5.0.6 to 6.1.1), or open a fresh PR bumping @graphql-codegen/cli to ^7.0.0.
Why this works:
@graphql-codegen/cli@6.1.1 declares @graphql-codegen/plugin-helpers: "^6.1.0". Caret resolution floats to the latest 6.x, currently 6.3.0, which dropped the lodash dependency.
@graphql-codegen/cli@7.0.0 declares @graphql-codegen/plugin-helpers: "^7.0.0", also lodash-free.
Either path fully clears the 13 lodash-chain advisories without further dependency edits.
Severity (honest)
The deployed Wasm function does not include lodash or any @graphql-codegen/* package, so this is not a runtime exploit. The risk is dev-time only: developer machines and CI runners load the vulnerable lodash code when running npx graphql-codegen or shopify app function typegen. The actual exploit primitives in both advisories (_.template injection, _.unset / _.omit prototype pollution) are not reached by plugin-helpers@5.1.1, which calls lodash/merge.js only. So the realistic risk is "noise in npm audit output and Dependabot triage burden across every consuming project," not "active CVE in production."
Filing this anyway because:
The fix is one Dependabot PR merge. Mechanical, low risk.
Summary
@shopify/shopify_function@2.0.1exact-pins@graphql-codegen/cli@5.0.6, which transitively pulls@graphql-codegen/plugin-helpers@5.1.1, which depends onlodash@~4.17.0. Newer versions ofplugin-helpers(6.2.1+, released 2026-04-04) drop the lodash dependency entirely. Bumping@graphql-codegen/clito a current 6.x or 7.x release transitively resolves all 13 lodash-chain advisories that consuming projects see innpm audit.PR #87 (Bump @graphql-codegen/cli from 5.0.6 to 6.1.1) has been open since 2026-01-12 and would fix this. It just needs review and merge.
Reproduction
In any project that depends on
@shopify/shopify_function@2.0.1(e.g. a Shopify Function extension generated viashopify app generate extension):Output (captured 2026-05-08):
npm ls lodashconfirms the chain:npm auditflags bothGHSA-r5fr-rjxr-66jc(CVSS 8.1, code injection via_.template) andGHSA-f23m-r3pf-42rh(CVSS 6.5, prototype pollution in_.unset/_.omit). All 13 advisories reportfixAvailable: falsebecause@shopify/shopify_function@2.0.1is the latest published version and exact-pins the codegen versions, so consumingnpm installcannot bump the chain on its own.Why this is awkward to work around downstream
Consumers can apply an
npm overridesblock to forcelodash: "^4.18.1", which we did in our project. But every consuming Shopify Function project has to repeat the workaround. And each Dependabot scan still re-flags the chain because the override is invisible to the advisory database walker.Proposed fix
Merge PR #87 (Bump @graphql-codegen/cli from 5.0.6 to 6.1.1), or open a fresh PR bumping
@graphql-codegen/clito^7.0.0.Why this works:
@graphql-codegen/cli@6.1.1declares@graphql-codegen/plugin-helpers: "^6.1.0". Caret resolution floats to the latest 6.x, currently6.3.0, which dropped the lodash dependency.@graphql-codegen/cli@7.0.0declares@graphql-codegen/plugin-helpers: "^7.0.0", also lodash-free.Either path fully clears the 13 lodash-chain advisories without further dependency edits.
Severity (honest)
The deployed Wasm function does not include
lodashor any@graphql-codegen/*package, so this is not a runtime exploit. The risk is dev-time only: developer machines and CI runners load the vulnerable lodash code when runningnpx graphql-codegenorshopify app function typegen. The actual exploit primitives in both advisories (_.templateinjection,_.unset/_.omitprototype pollution) are not reached byplugin-helpers@5.1.1, which callslodash/merge.jsonly. So the realistic risk is "noise innpm auditoutput and Dependabot triage burden across every consuming project," not "active CVE in production."Filing this anyway because:
overridesworkaround.Versions
@shopify/shopify_function@2.0.1(latest, published 2026-01-30)Related