Local-first, agent-friendly Markdown knowledge base with a cross-platform CLI and web editor
AI Security Review
scanned 1mo ago · by lpm-firewall-ai
No malicious install hook or confirmed exfiltration was found. Automatic user-global AI-agent skill replacement on ok start warrants a warning as a first-party extension lifecycle risk.
The package can alter AI-agent skill content outside the current project after a user starts the CLI.
Mechanism
Automatic AI-editor skill installation and replacement.
AI rationale
No malicious install hook or confirmed exfiltration was found. Automatic user-global AI-agent skill replacement on ok start warrants a warning as a first-party extension lifecycle risk.
1import{i as e,o as t,t as n}from"./rolldown-runtime-tZXQYakl.mjs";import{Ad as r,Hu as i,Id as a,Md as o,Nd as s,Nl as c,Pd as l,ju as u}from"./md-manager-BGnqyqi1-Bwg54lLG.mjs";im...
L2: `),B(()=>t?.onBackendSelected?.({backend:`keyring`})),new ze(new Re(t?.onKeychainRead),new V(e))}catch(n){let r=n instanceof Error?`${n.name}: ${n.message}`:String(n);return proces...
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...
1import{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,$i as l,$l as u,$n as d,$o as f,$r as p,$s as m,$t as h,$u as g,A as...
L2: /**
...
L10: *
L11: * http://www.apache.org/licenses/LICENSE-2.0
L12: *
High
Same File Env Network Execution
A single source file combines environment access, network access, and code or shell execution; review context before blocking.
20*/
L21: 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,...
L22: 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:...
L23: \t- OR - create a new view with the name ${e.name} and description '${e.description}' and InstrumentSelector ${r}
...
L31: causes have become circular...`;let o=r(e);return o?(t.add(e),a+`
L32: 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...
L33: `:`
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-CwMAFvDv.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,$i as l,$l as u,$n as d,$o as f,$r as p,$s as m,$t as h,$u as g,A as...
L2: /**
...
L10: *
L11: * http://www.apache.org/licenses/LICENSE-2.0
L12: *
...
L21: 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,...
L22: 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
High
Cross File Remote Execution Context
Source spawns a local helper that also contains network and dynamic execution context; review data flow before blocking.
•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,Bo as n,Ec as r,Gu as i,Hd as a,Io as o,Iu as s,Kc as c,Ld as l,Ma as u,Ml as d,Nd as f,Nl as p,Pa as m,Ps as h,Q...
`)}const Ai={out:e=>process.stdout.write(`${e}\n`),err:e=>process.stderr.write(`${e}\n`)};function ji(e){return new A(`audit`).description(`Unified validation audit (markdown lint ...
`)){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 Li(e){return new Promise((t,n)=>{let r=[];e.on(`data`,e=>r.push(...
`)}var ga=class extends Error{constructor(e,t,n){super(ha(n)),this.request=e,
High
Credential Redirect Persistence
Manifest-reachable source sends a prompted API credential to a fixed unofficial gateway and persists the redirection.
1import{i as e,o as t,t as n}from"./rolldown-runtime-tZXQYakl.mjs";import{Ad as r,Hu as i,Id as a,Md as o,Nd as s,Nl as c,Pd as l,ju as u}from"./md-manager-BGnqyqi1-Bwg54lLG.mjs";import{Cn as d,Eo as f,In as p,Ki as m,Mo as h,Zn as g,_o as _,jo as v,m as y,no as ee}from"./dist-CwMAFvDv.mjs";import{A as b,L as te,M as x,N as S,O as C,Q as ne,T as re,Y as w,ct as ie,d as ae,et as oe,f as se,it as ce,j as le,k as ue,nt as de,o as fe,q as pe,rt as me,st as he,tt as ge,ut as _e,v as ve,w as ye,x as be,y as xe}from"./init-DLDxilxo.mjs";import{t as Se}from"./is-object-BGze3w87.mjs";import{t as Ce}from ...
4`)}:{state:`unreadable`,reason:`invalid-json`}}function Gt(e){switch(e){case`invalid-json`:return`the file is not a valid JSON object; repair its JSON, then retry`;case`path-changed`:return`the path changed while waiting for its lock; retry to check its current state`;case`unavailable-root`:return`the filesystem root is unavailable; reconnect the drive or network share, then retry`;default:return le(e)}}function Z(e,t){return{kind:`
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...
1import{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,$i as l,$l as u,$n as d,$o as f,$r as p,$s as m,$t as h,$u as g,A as...
L2: /**
...
L10: *
L11: * http://www.apache.org/licenses/LICENSE-2.0
L12: *
High
Same File Env Network Execution
A single source file combines environment access, network access, and code or shell execution; review context before blocking.
20*/
L21: 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,...
L22: 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:...
L23: \t- OR - create a new view with the name ${e.name} and description '${e.description}' and InstrumentSelector ${r}
...
L31: causes have become circular...`;let o=r(e);return o?(t.add(e),a+`
L32: 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...
L33: `:`
•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,Bo as n,Ec as r,Gu as i,Hd as a,Io as o,Iu as s,Kc as c,Ld as l,Ma as u,Ml as d,Nd as f,Nl as p,Pa as m,Ps as h,Q...
`)}const Ai={out:e=>process.stdout.write(`${e}\n`),err:e=>process.stderr.write(`${e}\n`)};function ji(e){return new A(`audit`).description(`Unified validation audit (markdown lint ...
`)){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 Li(e){return new Promise((t,n)=>{let r=[];e.on(`data`,e=>r.push(...
`)}var ga=class extends Error{constructor(e,t,n){super(ha(n)),this.request=e,
High
Credential Redirect Persistence
Manifest-reachable source sends a prompted API credential to a fixed unofficial gateway and persists the redirection.
1Cross-file remote execution chain: dist/dist-CwMAFvDv.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,$i as l,$l as u,$n as d,$o as f,$r as p,$s as m,$t as h,$u as g,A as...
L2: /**
...
L10: *
L11: * http://www.apache.org/licenses/LICENSE-2.0
L12: *
...
L21: 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,...
L22: 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
High
Cross File Remote Execution Context
Source spawns a local helper that also contains network and dynamic execution context; review data flow before blocking.