Loading npm security reports…
@shopify/cli@4.3.0: Clean npm security report (Allow) | LPM Firewall
Allowed — no malicious behavior detected
No malicious behavior detected. 22 low-signal pattern(s) reviewed.
AI Security Reviewscanned 4mo ago · by lpm-firewall-ai Static inspection found a large bundled Shopify CLI with oclif hooks and command implementations, but no npm lifecycle execution, foreign AI-agent control-surface writes, persistence, destructive behavior, or unaligned credential exfiltration. Scanner hits map to expected CLI capabilities and bundled dependencies/assets rather than concrete attack behavior.
Static reason
High-risk behavior combination matched malicious policy.
Trigger
User runs the shopify CLI or a specific Shopify command.
Impact
Expected Shopify auth, app/theme/store/Hydrogen management, local project scaffolding, analytics/version checks, and tunnel support; no install-time persistence or exfiltration found.
Mechanism
Shopify CLI command execution and oclif hooks
AI rationale
Static inspection found a large bundled Shopify CLI with oclif hooks and command implementations, but no npm lifecycle execution, foreign AI-agent control-surface writes, persistence, destructive behavior, or unaligned credential exfiltration. Scanner hits map to expected CLI capabilities and bundled dependencies/assets rather than concrete attack behavior.
Evidence
package.json bin/run.js dist/bootstrap.js dist/index.js dist/hooks/prerun.js dist/chunk-S5IFJ737.js dist/chunk-T6CC5WUU.js dist/toml_patch_bg.wasm dist/hooks/app-init.js dist/hooks/postrun.js dist/hooks/plugin-plugins.js dist/hooks/tunnel-start.js dist/hooks/tunnel-provider.js
Network endpoints9
accounts.shopify.com partners.shopify.com admin.shopify.com app.shopify.com dev.shopify.com destinations.shopifysvc.com otlp-http-production-cli.shopifysvc.com shopify.dev registry.npmjs.org
Decision evidencepublic snapshot AI called this Clean at 93.0% confidence as Benign with low false-positive risk.
Evidence for AI clean decision
Evidence against
package.json has no npm lifecycle install hooks; only bin shopify points to bin/run.js. bin/run.js only enables Node compile cache, suppresses warnings, and imports dist/bootstrap.js. dist/hooks/*.js are oclif runtime hooks for init/prerun/postrun/metadata/tunnel/plugin behavior, not npm install-time execution. Network code targets Shopify-aligned services such as accounts.shopify.com, partners.shopify.com, admin.shopify.com, shopify.dev, and myshopify domains. child_process in dist/chunk-S5IFJ737.js is bundled node-macaddress/interface probing and package-manager/git/template workflow support, invoked by CLI commands. WASM/font blobs are toml_patch_bg.wasm and JetBrains Mono WOFF2 assets, consistent with CLI/theme/Hydrogen tooling. Behavioral surface
Source ChildProcess Crypto DynamicRequire EnvironmentVars Eval Filesystem NativeBindings Network WebSocket
Source & flagged code13 flagged 1 import{a as l,c as a,d as B,f as C}from"./chunk-NNOSZ447.js";import{a as I,c as d,e as Q,g as u}from"./chunk-VKWPEFWQ.js";var b=d((he,R)=>{"use strict";u();var g={},X=process.nextT...
L2: `).split(`
High Child Process
Package source references child process execution.
dist/chunk-S5IFJ737.js View on unpkg · L1 1 import{a as l,c as a,d as B,f as C}from"./chunk-NNOSZ447.js";import{a as I,c as d,e as Q,g as u}from"./chunk-VKWPEFWQ.js";var b=d((he,R)=>{"use strict";u();var g={},X=process.nextT...
L2: `).split(`
L3: `).slice(1),i=[],o=0;o<t.length;o+=1){var c=t[o].trim();c!==""&&i.push(c)}e(null,i)})}});var K=d((Ae,F)=>{u();var se=I("child_process").execFile;F.exports=function(e){se("/bin/ls",...
High Sandbox Evasion Gated Capability
Source gates dangerous network, credential, or execution behavior behind CI, host, platform, time, or geo fingerprint checks.
dist/chunk-S5IFJ737.js View on unpkg · L1 Findings1 Critical 7 High 6 Medium 8 Low
Critical Protestware dist/chunk-TUNUEOHO.js
High Child Process dist/chunk-S5IFJ737.js
High Same File Env Network Execution dist/chunk-BQWK3C47.js
High Command Output Exfiltration dist/chunk-BQWK3C47.js
High Sandbox Evasion Gated Capability dist/chunk-S5IFJ737.js
High Cross File Remote Execution Context dist/chunk-J3H4LPN6.js
High Ships High Entropy Blob dist/assets/hydrogen/virtual-routes/assets/jetbrainsmono-variable-font.woff2
High Oversized Source File dist/chunk-ET2CGROE.js
Medium Dynamic Require dist/chunk-T6CC5WUU.js
Medium Network
Medium Environment Vars
Medium Ships Wasm Module
Affected versions and remediation This report applies to @shopify/cli@4.3.0 .
See all versions of @shopify/cli for other recorded verdicts.
Review the evidence and your use of @shopify/cli@4.3.0 before allowing it. Restrict the permissions described in this report. Choose an independently verified alternative or release. This report does not establish that other versions are safe. Evidence last updated: 2026-07-05 02:19:27.378Z (UTC) .
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced .
Supply chain HighEntropyStrings Minified Obfuscated Protestware Telemetry UrlStrings
Manifest No manifest risk signals triggered.
scanned 449 file(s), 15.1 MB of source, external domains: 127.0.0.1, aaa.nonexistanturl.com, admin.shopify.com, api.shopify.com, bitbucket.org, bugzilla.mozilla.org, cdn.jsdelivr.net, cdn.shopify.com, code.google.com, codeload.github.com, commonmark.org, community.shopify.com, community.shopify.dev, dev.apollodata.com, developer.mozilla.org, developers.google.com, dotenvx.com, drafts.csswg.org, e.c, ejs.co, en.wikipedia.org, error-analytics-production.shopifysvc.com, error-analytics-sessions-production.shopifysvc.com, evilmartians.com, example.com, example.myshopify.com, fb.me, gajus.com, gist.githubusercontent.com, git-scm.com, git.io, github.com, googlechrome.github.io, h2o.fyi, hacks.mozilla.org, help.shopify.com, help.yahoo.com, html.spec.whatwg.org, hydrogen.shopify.dev, jimmy.warting.se, json-schema.org, lodash.com, marketplace.visualstudio.com, metrics.myshopify.dev, monorail-edge.shopifysvc.com, mths.be, mystore.myshopify.com, nodejs.dev, notify.bugsnag.com, notify.bugsnag.smartbear.com
Oversized source lightweight scan
dist/chunk-ET2CGROE.js 3.40 MB file, sampled 256 KB
Filesystem ChildProcess HighEntropyStrings Minified
dist/morph-CGOZEPPZ.js 5.10 MB file, sampled 256 KB
Filesystem ChildProcess EnvironmentVars Crypto HighEntropyStrings Minified UrlStrings www.apache.org
66
${(0,ns.default)(n,2)}`};function _d(t){if(gd.settings.debug)return t.stack;let{bang:e,code:n,message:s,name:r,ref:i,suggestions:o}=t,a=s?`${r||"Error"}: ${s}`:void 0,u=n?`Code: ${...
L67: `),h=(0,dd.default)(c,pd.errtermwidth-6,{hard:!0,trim:!1});return h=(0,ns.default)(h,3),h=(0,ns.default)(h,1,{includeEmptyLines:!0,indent:e||""}),h=(0,ns.default)(h,1),h}});var $t=...
L68: `&&this._write(n,`
Medium Dynamic Require
Package source references dynamic require/import behavior.
dist/chunk-T6CC5WUU.js View on unpkg · L66 12 `;ve.escapeXML=function(t){return t==null?"":String(t).replace(ih,oh)};function To(){return Function.prototype.toString.call(this)+`;
L13: `+ah}try{typeof Object.defineProperty=="function"?Object.defineProperty(ve.escapeXML,"toString",{value:To}):ve.escapeXML.toString=To}catch{console.warn("Unable to set escapeXML.toS...
L14: `),o=Math.max(s-3,0),a=Math.min(i.length,s+3),u=r(n),l=i.slice(o,a).map(function(f,c){var h=c+o+1;return(h==s?" >> ":" ")+h+"| "+f}).join(`
Low Eval
Package source references a known benign dynamic code generation pattern.
dist/chunk-T6CC5WUU.js View on unpkg · L12 1 import{g as r}from"./chunk-VKWPEFWQ.js";r();import t from"crypto";function o(e){return t.createHash("sha1").update(e).digest("hex")}function c(e){return t.createHash("md5").update(...
Low Weak Crypto
Package source references weak cryptographic algorithms.
dist/chunk-5C7HDTHJ.js View on unpkg · L1 30 `).replace(/\n/g,`
L31: `).replace(/(\.\.\/)+node_modules\//g,n=>J.dim(n))}catch(t){console.warn("Could not generate bundle analysis summary:",t.message)}}function Ga(e){let t;return{name:"hydrogen:bundle...
L32: `)[0],m=u.match(/tryMessage: '(.*)',$/m)?.[1];if(d)return{message:d,details:m}}let[r="",...n]=e.replaceAll("[FAILED]","").replace(/\s{2,}/g,`
...
L35: `),i="[Codegen] "+r,a=n.join(`
L36: `);if(t){let u=t.replaceAll("\\","/")+"/";a=a.replaceAll(u,"")}return{message:i,details:a}}function gn({rootDirectory:e,appDirectory:t,configFilePath:r}){let n,i,a=process.argv.fin...
L37: `}\n │\n └─── ${Ue.link("Complete analysis: "+se,se)}\n\n`)}await Ci(b)/(1024*1024)>=Ju&&Z(`\u{1F6A8} Smaller worker bundles are faster to deploy and run.${j?"":"\n Minify ...
High Same File Env Network Execution
A single source file combines environment access, network access, and code or shell execution; review context before blocking.
dist/chunk-BQWK3C47.js View on unpkg · L30 20 `)+(e.length>ut?`
L21: \u2022 ...and ${e.length-ut+1} more`:"")}):z({headline:"All standard Shopify routes present"})}function hn(e){e.length&&ne({headline:"Reserved routes present",body:`Your Hydrogen p...
L22: These routes are reserved by Shopify and may cause issues with your storefront:
...
L30: `).replace(/\n/g,`
L31: `).replace(/(\.\.\/)+node_modules\//g,n=>J.dim(n))}catch(t){console.warn("Could not generate bundle analysis summary:",t.message)}}function Ga(e){let t;return{name:"hydrogen:bundle...
L32: `)[0],m=u.match(/tryMessage: '(.*)',$/m)?.[1];if(d)return{message:d,details:m}}let[r="",...n]=e.replaceAll("[FAILED]","").replace(/\s{2,}/g,`
...
L35: `),i="[Codegen] "+r,a=n.join(`
L36: `);if(t){let u=t.replaceAll("\\","/")+"/";a=a.replaceAll(u,"")}return{message:i,details:a}}fun
High Command Output Exfiltration
Source combines command execution, command-output handling, and outbound requests; review data flow before blocking.
dist/chunk-BQWK3C47.js View on unpkg · L20 1 Cross-file remote execution chain: dist/chunk-J3H4LPN6.js spawns dist/npa-A4YSCQ5Q.js; helper contains network access plus dynamic code execution.
L1: import{a as Q}from"./chunk-AAK376RT.js";import{a as Me}from"./chunk-P2OI2P2M.js";import{a as He}from"./chunk-XVUHUA36.js";import{a as Ce}from"./chunk-636CTEW7.js";import{l as ze,r ...
L2: `).join(`
L3: `+r),i.push(s+"m+"+te.exports.humanize(this.diff)+"\x1B[0m")}else i[0]=ot()+e+" "+i[0]}function ot(){return v.inspectOpts.hideDate?"":new Date().toISOString()+" "}function rt(...i)...
L4: `)}function at(i){i?process.env.DEBUG=i:delete process.env.DEBUG}function lt(){return process.env.DEBUG}function ct(i){i.inspectOpts={};let e=Object.keys(v.inspectOpts);for(let t=0...
L5: `).map(e=>e.trim()).join(" ")};ke.O=function(i){return this.inspectOpts
High Cross File Remote Execution Context
Source spawns a local helper that also contains network and dynamic execution context; review data flow before blocking.
dist/chunk-J3H4LPN6.js View on unpkg · L1 1 import{a as te}from"./chunk-AO3RFGNV.js";import{O as W,va as B,xa as b,ya as Q,z as P}from"./chunk-G4OQABDT.js";import{b as T}from"./chunk-N5LVGFDS.js";import{a as oe,b as re}from"...
L2:
Critical Protestware
Package source matches protestware-related patterns.
dist/chunk-TUNUEOHO.js View on unpkg · L1 • path = dist/toml_patch_bg.wasm
kind = wasm_module
sizeBytes = 264937
magicHex = [redacted]
Medium Ships Wasm Module
Package ships WebAssembly modules.
dist/toml_patch_bg.wasm View on unpkg • path = bin/run.cmd
kind = build_helper
sizeBytes = 34
magicHex = [redacted]
Medium Ships Build Helper
Package ships non-JavaScript build or shell helper files.
bin/run.cmd View on unpkg dist/assets/hydrogen/virtual-routes/assets/jetbrainsmono-variable-font.woff2 View file • path = dist/assets/hydrogen/virtual-routes/assets/jetbrainsmono-variable-font.woff2
kind = high_entropy_blob
sizeBytes = 71264
magicHex = [redacted]
High Ships High Entropy Blob
Package ships high-entropy non-source blobs.
dist/assets/hydrogen/virtual-routes/assets/jetbrainsmono-variable-font.woff2 View on unpkg • path = dist/chunk-ET2CGROE.js
kind = oversized_source_file
sizeBytes = 3560605
magicHex = [redacted]
High Oversized Source File
Package contains source files above the static scanner size ceiling.
dist/chunk-ET2CGROE.js View on unpkg dist/toml_patch_bg.wasm
Medium Ships Build Helper bin/run.cmd
Medium Structural Risk Force Deep Review
Low Eval dist/chunk-T6CC5WUU.js
Low Weak Crypto dist/chunk-5C7HDTHJ.js
exports map
bin → shopify
Runtime node >=22.12.0 os darwin, linux, win32
Artifact 26.8 MB · 581 files 1 signature(s) · provenance
Install lifecycle No install hooks · other: build, bundle, clean, lint +3
Behavioral surface ChildProcess Crypto DynamicRequire EnvironmentVars Eval Filesystem NativeBindings Network WebSocket HighEntropyStrings Minified Obfuscated Protestware Telemetry UrlStrings Manifest: clean