[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"repo-stars":3,"vuln-CVE-2026-54051":6},{"stargazers_count":4,"fetched_at":5},7,"2026-07-21T09:16:04.996Z",{"id":7,"descriptions":8,"cisa":9,"weaknesses":10,"exploits":40,"aliases":41,"duplicate_of":9,"upstream":43,"downstream":44,"duplicates":45,"related":46,"reserved_at":9,"published_at":47,"modified_at":47,"state":48,"summary":49,"references_raw":56,"kevs":74,"epss":9,"epss_history":75,"metrics":76,"affected":84},"CVE-2026-54051","Network-AI is a TypeScript/Node.js multi-agent orchestrator. Prior to version 5.9.1, the agent sandbox gates shell commands behind an allowlist (`SandboxPolicy.isCommandAllowed`), which THREAT_MODEL.md calls the main control against a compromised agent (Adversary 3.2). The allowlist glob-matches the whole command string, but `ShellExecutor` runs that string through `/bin/sh -c`. So any wildcard allow such as `git *`, `npm *` or `node *` also matches `git status; \u003Canything>`, and a scoped command becomes arbitrary execution. The issue is fixed in v5.9.1. `ShellExecutor` now executes via `spawn(file, args, { shell: false })` using a quote-aware parsed argv, so no shell is invoked. `SandboxPolicy.isCommandAllowed` and the new `SandboxPolicy.tokenizeCommand` reject any unquoted shell metacharacter (`; & | $ ` ` ` ( ) \u003C > { }` newline) or unterminated quote before the allowlist glob match; quoted metacharacters are preserved as literal argument data. Users should upgrade to `network-ai@5.9.1` or later. As defense in depth, avoid broad wildcard allowlist entries such as `node *` / `npm *` which are direct code execution by design.",null,[11],{"_key":12,"id":12,"name":13,"description":14,"type":15,"status":16,"abstraction":17,"likelihood_of_exploit":18,"capec":19},"CWE-78","Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')","The product constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component.","weakness","Stable","Base","High",[20,24,28,32,36],{"id":21,"name":22,"techniques":23},"CAPEC-108","Command Line Execution through SQL Injection",[],{"id":25,"name":26,"techniques":27},"CAPEC-15","Command Delimiters",[],{"id":29,"name":30,"techniques":31},"CAPEC-43","Exploiting Multiple Input Interpretation Layers",[],{"id":33,"name":34,"techniques":35},"CAPEC-6","Argument Injection",[],{"id":37,"name":38,"techniques":39},"CAPEC-88","OS Command Injection",[],[],[42],"GHSA-qw6v-5fcf-5666",[],[],[],[],"2026-07-20T16:24:20.791Z","PUBLISHED",{"cisa_kev":50,"cisa_ransomware":50,"cisa_vendor":9,"epss_severity":9,"epss_score":9,"severity":51,"severity_score":52,"severity_version":53,"severity_source":54,"severity_vector":55,"severity_status":48},false,"critical",9.9,"v3.1","cve.org","CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",[57,64,69],{"url":58,"sources":59,"tags":61},"https://github.com/Jovancoding/Network-AI/security/advisories/GHSA-qw6v-5fcf-5666",[60,54],"osv_npm",[62,63],"WEB","X Refsource CONFIRM",{"url":65,"sources":66,"tags":67},"https://github.com/Jovancoding/Network-AI",[60],[68],"PACKAGE",{"url":70,"sources":71,"tags":72},"https://github.com/Jovancoding/Network-AI/commit/379f77656b578144e03415c5b134d8309a4b5792",[54],[73],"X Refsource MISC",[],[],[77,81],{"source":60,"cvss_v2_0":9,"cvss_v3_0":9,"cvss_v3_1":78,"cvss_v4_0":9},{"baseScore":52,"baseSeverity":9,"vectorString":55,"impactScore":79,"exploitabilityScore":80},10,7.9,{"source":54,"cvss_v2_0":9,"cvss_v3_0":9,"cvss_v3_1":82,"cvss_v4_0":9},{"baseScore":52,"baseSeverity":83,"vectorString":55,"impactScore":79,"exploitabilityScore":80},"CRITICAL",[85,96],{"ecosystem":9,"name":86,"vendor":87,"product":88,"cpe_part":89,"purl_type":9,"purl_namespace":9,"purl_name":9,"source":9,"versions":90},"Network-AI","jovancoding","network-ai","a",[91],{"version":92,"is_range":93,"range_type":54,"version_start":9,"version_start_type":9,"version_end":94,"version_end_type":95,"fixed_in":9},"\u003C 5.9.1",true,"5.9.1","excluding",{"ecosystem":97,"name":88,"vendor":97,"product":88,"cpe_part":9,"purl_type":98,"purl_namespace":9,"purl_name":88,"source":9,"versions":99},"Npm","npm",[100],{"version":101,"is_range":93,"range_type":102,"version_start":9,"version_start_type":9,"version_end":94,"version_end_type":95,"fixed_in":9},"lt5_9_1","semver"]