Local-first, agent-friendly Markdown knowledge base with a cross-platform CLI and web editor
AI Security Review
scanned 7d ago · by lpm-firewall-ai
The inspected JavaScript establishes runtime loading of native code with process and MCP configuration capabilities, but not an attack. The available native analysis is incomplete and does not resolve the relevant platform binaries, so the package needs further review.
Importing the runtime and invoking a native helper.
Impact
No harmful effect is established, but the binary implementation prevents resolving what those operations do.
Mechanism
The wrapper selects a platform binary and exposes methods for parsing TOML, reading process start information, and changing MCP server configuration.
AI rationale
The inspected JavaScript establishes runtime loading of native code with process and MCP configuration capabilities, but not an attack. The available native analysis is incomplete and does not resolve the relevant platform binaries, so the package needs further review.
AI called this Manual Review at 62.0% confidence as Unknown with medium false-positive risk.
AI review observations
The manifest exposes a CLI and JavaScript entrypoint; its inspected scripts contain no install lifecycle hook.
The runtime loader loads a platform-specific native addon, including a Linux x64 musl binary.
The native wrapper exports process and MCP configuration operations, including server removal and upsert.
The available offline analysis covers a different platform binary and says its bounded call graph has uninspected targets; it does not resolve the native behavior relevant to this review.
Evidence against
The inspected JavaScript shows native-addon dispatch and configuration helper exports, but establishes no concrete attack behavior.
1import{o as e}from"./rolldown-runtime-tZXQYakl.mjs";import{$c as t,$u as n,Bf as r,Bl as i,Ca as a,Ef as o,Ff as s,G as c,If as l,Mf as u,Sa as d,Tf as ee,U as f,Vl as p,W as m,Yc ...
L2: `)[0]??``).replace(/\S*\/journal\/\S*/g,`<journal path>`).replace(/\b[0-9a-f]{32}\b/gi,`<id>`);return`exit ${e.status}${t===``?``:`: ${t}`}`}function J(e,t,n){return{schemaVersion:...
High
Child Process
Package source references child process execution.
1import{o as e}from"./rolldown-runtime-tZXQYakl.mjs";import{$c as t,$u as n,Bf as r,Bl as i,Ca as a,Ef as o,Ff as s,G as c,If as l,Mf as u,Sa as d,Tf as ee,U as f,Vl as p,W as m,Yc ...
L2: `)[0]??``).replace(/\S*\/journal\/\S*/g,`<journal path>`).replace(/\b[0-9a-f]{32}\b/gi,`<id>`);return`exit ${e.status}${t===``?``:`: ${t}`}`}function J(e,t,n){return{schemaVersion:...
...
L12: `)?`
L13: `:``;K(e,`${JSON.stringify(r,null,2)}${i}`)}catch{let r=kn(n,t.contentDirSpellings);r!==n&&K(e,r)}}function Pn(e,t){let n=U(e,`utf-8`),r=kn(n,t.contentDirSpellings);r!==n&&K(e,r)}f...
L14: `)}\n`:null}catch{return null}}function sr(e){let t=R(e,`.git`,`ok`);if(!V(t))return null;let n=ve(`git`,[`-C`,t,`log`,`--oneline`,`-50`],b({encoding:`utf-8`,timeout:2e3}));return ...
High
Same File Env Network Execution
A single source file combines environment access, network access, and code or shell execution; review context before blocking.
87var t=null;try{t=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,...
L88: changing to the minimum size of: 2`),this._maxSize=2)}record(e){this.updateByIncrement(e,1)}setStartTime(e){this.startTime=e}toPointValue(){return{hasMinMax:this._recordMinMax,min:...
L89: \t- OR - create a new view with the name ${e.name} and description '${e.description}' and InstrumentSelector ${r}
86*/
L87: var t=null;try{t=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,...
L88: changing to the minimum size of: 2`),this._maxSize=2)}record(e){this.updateByIncrement(e,1)}setStartTime(e){this.startTime=e}toPointValue(){return{hasMinMax:this._recordMinMax,min:...
L89: \t- OR - create a new view with the name ${e.name} and description '${e.description}' and InstrumentSelector ${r}
...
L97: causes have become circular...`;let o=r(e);return o?(t.add(e),a+`
L98: caused by: `+i(o,t)):a},a=e=>i(e,new Set),o=(e,t,i)=>{if(!n(e))return``;let a=i?``:e.message||``;if(t.has(e))return a+`: ...`;let s=r(e);if(s){t.add(e);let n=typeof e.cause==`funct...
L99: `:`
High
Command Output Exfiltration
Source combines command execution, command-output handling, and outbound requests; review data flow before blocking.
1Cross-file remote execution chain: dist/dist-BGPdSmN8.mjs spawns dist/chunk-5QMZ5MUS-BuB3i_B5.mjs; helper contains network access plus dynamic code execution.
L1: import{a as e,i as t,n,o as r,r as i,t as a}from"./rolldown-runtime-tZXQYakl.mjs";import{$ as o,$a as s,$c as c,$d as l,$i as u,$n as d,$o as f,$r as p,$s as m,$t as h,$u as g,A as...
L2: `,t),r=n===-1?e.length:n;if(r>t&&e[r-1]===`\r`&&--r,r-t>1024)return 0;let i=e.slice(t,r);return i.length===0||!hoe.test(i)&&!goe.test(i)?0:i.length}const voe=/&#(?:x[0-9A-Fa-f]+|X[...
...
L66: </div>`}];function koe(e){return["```html preview",e.html,"```"].join(`
L67: `)}const Aoe=[{name:`--chart-1`,light:`oklch(0.62 0.19 259)`,dark:`oklch(0.72 0.14 259)`},{name:`--chart-2`,light:`oklch(0.58 0.14 145)`,dark:`oklch(0.73 0.13 145)`},{name:`--char
High
Cross File Remote Execution Context
Source spawns a local helper that also contains network and dynamic execution context; review data flow before blocking.
1import{t as e}from"./chunk-DXB73IDG-MLBj3lvC.mjs";function t(){let e=[{prop:`Function`,target:globalThis,violationType:`function_constructor`,strategy:`throw`,reason:`Function cons...
L2: `);n.register(`data:text/javascript,${encodeURIComponent(e)}`),i.importHooksRegistered=!0}}catch(e){console.debug(`[DefenseInDepthBox] Could not register import() hooks:`,e instanc...
dist/chunk-5QMZ5MUS-B37CnsNb.mjs#virtual:string-array:round1View on unpkg · L1
1import{t as e}from"./chunk-DXB73IDG-MLBj3lvC.mjs";function t(){let e=[{prop:`Function`,target:globalThis,violationType:`function_constructor`,strategy:`throw`,reason:`Function cons...
L2: `);n.register(`data:text/javascript,${encodeURIComponent(e)}`),i.importHooksRegistered=!0}}catch(e){console.debug(`[DefenseInDepthBox] Could not register import() hooks:`,e instanc...
•Manifest-reachable source captures an API credential, sends it to a fixed unofficial gateway, and persists that redirection in agent or shell configuration.
dist/cli.mjs:
import{o as e}from"./rolldown-runtime-tZXQYakl.mjs";import{$a as t,$s as n,$u as r,Af as i,Bf as a,Ed as o,Ef as s,Eo as c,F as l,Fo as u,Fr as d,Gc as f,Hc as p,Hd as m,Ho as h,Ic...
`)}const _a={out:e=>process.stdout.write(`${e}\n`),err:e=>process.stderr.write(`${e}\n`)},va=T({title:E().optional(),error:E().optional(),message:E().optional()});function ya(){let...
`)){let e=n.trim();if(e===``)continue;let r=e.indexOf(`=`);r!==-1&&(t[e.slice(0,r)]=e.slice(r+1))}return t}function Ea(e){return new Promise((t,n)=>{let r=[];e.on(`data`,e=>r.push(...
`;return`${I(`Error:`)} this project's git remote is ${n}, which is not a Git
High
Credential Redirect Persistence
Manifest-reachable source sends a prompted API credential to a fixed unofficial gateway and persists the redirection.
1import{o as e}from"./rolldown-runtime-tZXQYakl.mjs";import{$c as t,$u as n,Bf as r,Bl as i,Ca as a,Ef as o,Ff as s,G as c,If as l,Mf as u,Sa as d,Tf as ee,U as f,Vl as p,W as m,Yc as h,bf as g,el as te,jf as _,kf as v,l as y,u as ne}from"./md-manager-BGnqyqi1-BzZ_8EQ9.mjs";import{Ao as b,At as x,Ea as S,Qn as C,Ri as w,Si as T,Tr as E,Ts as D,as as O,bi as k,cr as re,fr as A,is as j,m as ie,mi as ae,ns as M,os as N,si as P,xi as oe,zi as se}from"./dist-BGPdSmN8.mjs";import{t as ce}from"./yazl-BBz29IQN.mjs";import{ct as le,st as ue,wt as F}from"./init-C9OxriS2.mjs";import{l as de,w as fe}from". ...
87var t=null;try{t=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,...
L88: changing to the minimum size of: 2`),this._maxSize=2)}record(e){this.updateByIncrement(e,1)}setStartTime(e){this.startTime=e}toPointValue(){return{hasMinMax:this._recordMinMax,min:...
L89: \t- OR - create a new view with the name ${e.name} and description '${e.description}' and InstrumentSelector ${r}
86*/
L87: var t=null;try{t=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,...
L88: changing to the minimum size of: 2`),this._maxSize=2)}record(e){this.updateByIncrement(e,1)}setStartTime(e){this.startTime=e}toPointValue(){return{hasMinMax:this._recordMinMax,min:...
L89: \t- OR - create a new view with the name ${e.name} and description '${e.description}' and InstrumentSelector ${r}
...
L97: causes have become circular...`;let o=r(e);return o?(t.add(e),a+`
L98: caused by: `+i(o,t)):a},a=e=>i(e,new Set),o=(e,t,i)=>{if(!n(e))return``;let a=i?``:e.message||``;if(t.has(e))return a+`: ...`;let s=r(e);if(s){t.add(e);let n=typeof e.cause==`funct...
L99: `:`
High
Command Output Exfiltration
Source combines command execution, command-output handling, and outbound requests; review data flow before blocking.
1Cross-file remote execution chain: dist/dist-BGPdSmN8.mjs spawns dist/chunk-5QMZ5MUS-BuB3i_B5.mjs; helper contains network access plus dynamic code execution.
L1: import{a as e,i as t,n,o as r,r as i,t as a}from"./rolldown-runtime-tZXQYakl.mjs";import{$ as o,$a as s,$c as c,$d as l,$i as u,$n as d,$o as f,$r as p,$s as m,$t as h,$u as g,A as...
L2: `,t),r=n===-1?e.length:n;if(r>t&&e[r-1]===`\r`&&--r,r-t>1024)return 0;let i=e.slice(t,r);return i.length===0||!hoe.test(i)&&!goe.test(i)?0:i.length}const voe=/&#(?:x[0-9A-Fa-f]+|X[...
...
L66: </div>`}];function koe(e){return["```html preview",e.html,"```"].join(`
L67: `)}const Aoe=[{name:`--chart-1`,light:`oklch(0.62 0.19 259)`,dark:`oklch(0.72 0.14 259)`},{name:`--chart-2`,light:`oklch(0.58 0.14 145)`,dark:`oklch(0.73 0.13 145)`},{name:`--char
1import{t as e}from"./chunk-DXB73IDG-MLBj3lvC.mjs";function t(){let e=[{prop:`Function`,target:globalThis,violationType:`function_constructor`,strategy:`throw`,reason:`Function cons...
L2: `);n.register(`data:text/javascript,${encodeURIComponent(e)}`),i.importHooksRegistered=!0}}catch(e){console.debug(`[DefenseInDepthBox] Could not register import() hooks:`,e instanc...
dist/chunk-5QMZ5MUS-B37CnsNb.mjs#virtual:string-array:round1View on unpkg · L1
1import{t as e}from"./chunk-DXB73IDG-MLBj3lvC.mjs";function t(){let e=[{prop:`Function`,target:globalThis,violationType:`function_constructor`,strategy:`throw`,reason:`Function cons...
L2: `);n.register(`data:text/javascript,${encodeURIComponent(e)}`),i.importHooksRegistered=!0}}catch(e){console.debug(`[DefenseInDepthBox] Could not register import() hooks:`,e instanc...
•Manifest-reachable source captures an API credential, sends it to a fixed unofficial gateway, and persists that redirection in agent or shell configuration.
dist/cli.mjs:
import{o as e}from"./rolldown-runtime-tZXQYakl.mjs";import{$a as t,$s as n,$u as r,Af as i,Bf as a,Ed as o,Ef as s,Eo as c,F as l,Fo as u,Fr as d,Gc as f,Hc as p,Hd as m,Ho as h,Ic...
`)}const _a={out:e=>process.stdout.write(`${e}\n`),err:e=>process.stderr.write(`${e}\n`)},va=T({title:E().optional(),error:E().optional(),message:E().optional()});function ya(){let...
`)){let e=n.trim();if(e===``)continue;let r=e.indexOf(`=`);r!==-1&&(t[e.slice(0,r)]=e.slice(r+1))}return t}function Ea(e){return new Promise((t,n)=>{let r=[];e.on(`data`,e=>r.push(...
`;return`${I(`Error:`)} this project's git remote is ${n}, which is not a Git
High
Credential Redirect Persistence
Manifest-reachable source sends a prompted API credential to a fixed unofficial gateway and persists the redirection.