Loading npm security reports…
ocean-brain@0.20.0: Clean npm security report (Allow) | LPM Firewall
Allowed — no malicious behavior detected
No malicious behavior detected. 26 low-signal pattern(s) reviewed.
AI Security Reviewscanned 4d ago · by lpm-firewall-ai The install hook runs Prisma client generation, and server startup runs database migrations using the package schema. The flagged process execution and engine download support those functions; the reviewed paths show no unrelated collection or concealed payload execution.
Static reason
High-risk behavior combination matched malicious policy.
Trigger
Package installation runs Prisma generation; starting the server runs Prisma migrations.
Impact
These actions support application setup and local search; no malicious impact was identified.
Mechanism
The scripts invoke the bundled Prisma CLI with the application schema. Prisma may obtain its engines from binaries.prisma.sh or a configured mirror. Vector search loads sqlite-vec into a local database.
AI rationale
The install hook runs Prisma client generation, and server startup runs database migrations using the package schema. The flagged process execution and engine download support those functions; the reviewed paths show no unrelated collection or concealed payload execution.
Evidence
server/prisma/schema.prisma
Decision evidencepublic snapshot AI called this Clean at 92.0% confidence as Benign with low false-positive risk.
Evidence for AI clean decision
The postinstall script runs Prisma generate against the package’s schema. Server startup runs Prisma migrate deploy against the package’s schema. Prisma’s engine URL defaults to its official binaries.prisma.sh host, with an environment variable for an alternate mirror. The flagged child process usage in vector search loads the sqlite-vec extension into a local database. Evidence against
The reviewed install and startup commands are tied to Prisma schema generation and migrations. No unrelated data collection, credential transfer, or concealed execution was identified in the reviewed paths. Behavioral surface
Source ChildProcess Crypto DynamicRequire EnvironmentVars Eval Filesystem Network
Supply chain HighEntropyStrings Minified PossibleObfuscation Telemetry UrlStrings
Source & flagged code18 flagged • scripts.postinstall = node ./scripts/postinstall-prisma.mjs
High Install Time Lifecycle Scripts
Package defines install-time lifecycle scripts.
package.json View on unpkg server/dist/features/search/sqlite-vector-index.js View file 76 const initializeSearchDatabase = async (database) => {
L77: await exec(
L78: database,
High Child Process
Package source references child process execution.
server/dist/features/search/sqlite-vector-index.js View on unpkg · L76 server/client/dist/assets/NotePropertiesPanel-BgsNh3Hp.js View file Findings2 Critical 10 High 8 Medium 6 Low
Critical Remote Asset Decode Execute node_modules/prisma/build/index.js
Critical Trojan Source Unicode node_modules/confbox/dist/_chunks/libs/json5.mjs
High Install Time Lifecycle Scripts package.json
High Child Process server/dist/features/search/sqlite-vector-index.js
High Eval server/client/dist/assets/NotePropertiesPanel-BgsNh3Hp.js
High Same File Env Network Execution node_modules/@prisma/client/runtime/binary.js
High Command Output Exfiltration node_modules/@prisma/client/runtime/binary.js
High Obfuscated Payload Loader node_modules/prisma/build/index.js
High Cross File Remote Execution Context node_modules/@prisma/client/generator-build/index.js
High Ships High Entropy Blob
Affected versions and remediation This report applies to ocean-brain@0.20.0 .
See all versions of ocean-brain for other recorded verdicts.
Review the evidence and your use of ocean-brain@0.20.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-10-31 16:23:45.915Z (UTC) .
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced .
Manifest
No manifest risk signals triggered.
scanned 286 file(s), 7.11 MB of source, external domains: app.example.com, cdn.jsdelivr.net, chevrotain.io, en.wikipedia.org, example.com, fb.me, github.com, html.spec.whatwg.org, integration-app.invalid, langium.org, mantine.dev, ocean-brain.invalid, prosemirror.net, radix-ui.com, react.dev, stuk.github.io, www.ibm.com, www.w3.org
1 import{j as Q,q as Et,g as Ht,r as ot}from"./floating-ui.react-dom-BWTnA00G.js";import{c as At,z as Yt,U as Vt,u as qt,a as Xt,q as Nt,ai as Jt,T as vt,t as Dt,w as It,I as Pt,B as...
L2: \0`,H+=u(C,2),H+=D.magic,H+=u(b,2),H+=u(S,2),H+=u($.crc32,4),H+=u($.compressedSize,4),H+=u($.uncompressedSize,4),H+=u(L.length,2),H+=u(N.length,2),{fileRecord:m.LOCAL_FILE_HEADER+H...
High Eval
Package source references dynamic code evaluation.
server/client/dist/assets/NotePropertiesPanel-BgsNh3Hp.js View on unpkg · L1 89 const serverEntry = pathToFileURL(path.resolve(serverRoot, "dist/start.js")).href;
L90: await import(serverEntry);
L91: } catch (error) {
Medium Dynamic Require
Package source references dynamic require/import behavior.
dist/index.js View on unpkg · L89 1 var assert = require('assert');
L2: var ourProcess = require('./browser');
Medium Unsafe Vm Context
Package source executes code through a VM context API.
node_modules/process/test.js View on unpkg · L1 4269 ${H("`npx @prisma/codemods update-2.12 ./`")}
L4270: Read more at ${Ze("https://pris.ly/2.12")}`;var C_e=[{text:"Tip: Need your database queries to be 1000x faster? Accelerate offers you that and more:",link:"https://pris.ly/tip-2-ac...
L4271: `),r.close()});let n=new YF,i=new JF;await KF().then(a=>abt(e,n,ibt(r),i,a)).catch(a=>{I_e(`An error occurred while handling NPS survey: ${a}`)}).finally(()=>r.close())}function ib...
...
L4280: `),{};let a=await e.question(`Optional: Provide additional feedback or press Enter to skip.
L4281: Additional feedback: `),o=a.trim()===""?void 0:a;return{rating:i,feedback:o}}function B_e(){return Rq.default.join((0,k_e.default)("prisma").config,"nps.json")}async function obt()...
L4282: Generate artifacts (e.g. Prisma Client)
Critical Remote Asset Decode Execute
Source fetches a remote non-code asset, decodes its contents, and dynamically executes the decoded payload.
node_modules/prisma/build/index.js View on unpkg · L4269 4 >>> no match, partial?`,r,g,n,v),g===c))}var b;if(typeof p=="string"?(b=f===p,this.debug("string match",p,f,b)):(b=f.match(p),this.debug("pattern match",p,f,b)),!b)return!1}if(o===...
L5: %s`,k,k,b,a);let I=b.type==="*"?_$:b.type==="?"?T$:"\\"+b.type;o=!0,a=a.slice(0,b.reStart)+I+"\\("+k}C(),u&&(a+="\\\\");let R=kBe[a.charAt(0)];for(let k=l.length-1;k>-1;k--){let I=...
L6: `,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICO...
High Obfuscated Payload Loader
Source contains an obfuscated payload loader that reconstructs and executes hidden code.
node_modules/prisma/build/index.js View on unpkg · L4 1 #!/usr/bin/env node
L2: "use strict";var QNe=Object.create;var L_=Object.defineProperty;var XNe=Object.getOwnPropertyDescriptor;var ZNe=Object.getOwnPropertyNames;var e4e=Object.getPrototypeOf,t4e=Object....
L3: globstar while`,r,g,n,v,x),this.matchOne(r.slice(g),n.slice(v),i))return this.debug("globstar found match!",g,c,x),!0;if(x==="."||x===".."||!a.dot&&x.charAt(0)==="."){this.debug("d...
...
L10: >>> no match, partial?`,e,f,r,g),f===u))}var x;if(typeof l=="string"?(x=p===l,this.debug("string match",l,p,x)):(x=p.match(l),this.debug("pattern match",l,p,x)),!x)return!1}if(a===...
L11: See: https://github.com/isaacs/node-glob/issues/167`);return new Li(e,r).found}function Li(e,r){if(!e)throw new Error("must provide pattern");if(typeof r=="function"||arguments.len...
L12: See: https://
Low Weak Crypto
Package source references weak cryptographic algorithms.
node_modules/prisma/build/index.js View on unpkg · L1 node_modules/@prisma/client/runtime/binary.js View file 1 "use strict";var vb=Object.create;var no=Object.defineProperty;var Pb=Object.getOwnPropertyDescriptor;var Yb=Object.getOwnPropertyNames;var Gb=Object.getPrototypeOf,Ob=Object.proto...
L2: `);let n;for(;(n=kT.exec(r))!=null;){let A=n[1],i=n[2]||"";i=i.trim();let s=i[0];i=i.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),s==='"'&&(i=i.replace(/\\n/g,`
High Same File Env Network Execution
A single source file combines environment access, network access, and code or shell execution; review context before blocking.
node_modules/@prisma/client/runtime/binary.js View on unpkg · L1 125 )
L126: `)}close(){this.#r.close()}get(e){oh(e);let r=this.#u(e);return r?{body:r.body?Buffer.from(r.body.buffer,r.body.byteOffset,r.body.byteLength):void 0,statusCode:r.statusCode,statusM...
L127: ${i}`;break;case"retry":BS(i)&&(r[A]=i);break;case"id":mS(i)&&(r[A]=i);break;case"event":i.length>0&&(r[A]=i);break}}processEvent(e){e.retry&&BS(e.retry)&&(this.state.reconnectionT...
L128: `);return e.length<t?e:e.slice(-t)}function Bf(){ai.length=0}var Vn=ce;var kl=["darwin","darwin-arm64","debian-openssl-1.0.x","debian-openssl-1.1.x","debian-openssl-3.0.x","rhel-op...
L129: ${JSON.stringify(o,null,2)}`),o}async function QN(){let t="/etc/os-release";try{let e=await Yl.default.readFile(t,{encoding:"utf-8"});return pN(e)}catch{return{targetDistro:void 0,...
High Command Output Exfiltration
Source combines command execution, command-output handling, and outbound requests; review data flow before blocking.
node_modules/@prisma/client/runtime/binary.js View on unpkg · L125 node_modules/confbox/dist/_chunks/libs/json5.mjs View file 4 contains invisible/control Unicode U+200C (zero width non-joiner)
`:case`\r`:case`\u2028`:case`\u2029`:x(),m=`default`;return;case void 0:return x(),C(`eof`)}x()},value(){switch(v){case`{`:case`[`:return C(`punctuator`,x());case`n`:return x(),w(`ull`),C(`null`,null);case`t`:return x(),w(`rue`),C(`boolean`
Critical Trojan Source Unicode
Source contains bidi control or invisible Unicode characters associated with Trojan Source attacks.
node_modules/confbox/dist/_chunks/libs/json5.mjs View on unpkg · L4 node_modules/@prisma/client/generator-build/index.js View file 395 Cross-file remote execution chain: node_modules/@prisma/client/generator-build/index.js spawns node_modules/@prisma/client/runtime/binary.js; helper contains network access plus dynamic code execution.
L395: function checkPathExt2(path14, options2) {
L396: var pathext = options2.pathExt !== void 0 ? options2.pathExt : process.env.PATHEXT;
L397: if (!pathext) {
...
L468: var core2;
L469: if (process.platform === "win32" || global.TESTING_WINDOWS) {
L470: core2 = require_windows();
...
L531: // windows always checks the cwd first
L532: ...isWindows2 ? [process.cwd()] : [],
L533: ...(opt.path || process.env.PATH || /* istanbul ignore next: very unusual */
...
L783: parsed.args = ["/d", "/s", "/c", `"${shellCommand}"`];
L784: parsed.command = process.env.comspec || "cmd.exe";
L785: parsed.opti
High Cross File Remote Execution Context
Source spawns a local helper that also contains network and dynamic execution context; review data flow before blocking.
node_modules/@prisma/client/generator-build/index.js View on unpkg · L395 node_modules/prisma/build/query_engine_bg.cockroachdb.wasm View file • path = node_modules/prisma/build/query_engine_bg.cockroachdb.wasm
kind = wasm_module
sizeBytes = 2320630
magicHex = [redacted]
Medium Ships Wasm Module
Package ships WebAssembly modules.
node_modules/prisma/build/query_engine_bg.cockroachdb.wasm View on unpkg • path = node_modules/mercurius/bench.sh
kind = build_helper
sizeBytes = 658
magicHex = [redacted]
Medium Ships Build Helper
Package ships non-JavaScript build or shell helper files.
node_modules/mercurius/bench.sh View on unpkg node_modules/@fastify/static/test/content-type/index.css.br View file • path = node_modules/@fastify/static/test/content-type/index.css.br
kind = payload_in_excluded_dir
sizeBytes = 2
magicHex = a101
High Payload In Excluded Dir
Package hides binary, compressed, or executable-looking payloads in test/fixture/hidden paths.
node_modules/@fastify/static/test/content-type/index.css.br View on unpkg • path = node_modules/@fastify/static/test/content-type/index.css.br
kind = compressed_blob
sizeBytes = 2
magicHex = a101
Medium Ships Compressed Blob
Package ships compressed or archive-like blobs.
node_modules/@fastify/static/test/content-type/index.css.br View on unpkg node_modules/@fastify/static/test/static-pre-compressed/sample.jpg.br View file • path = node_modules/@fastify/static/test/static-pre-compressed/sample.jpg.br
kind = high_entropy_blob
sizeBytes = 45640
magicHex = [redacted]
High Ships High Entropy Blob
Package ships high-entropy non-source blobs.
node_modules/@fastify/static/test/static-pre-compressed/sample.jpg.br View on unpkg node_modules/@graphql-tools/utils/cjs/comments.js#virtual:normalized:round1 View file • stage = ast_semantic_analysis; reason = ast_parse_error; limitedFiles = 37
High Semantic Analysis Limited
A bounded semantic-analysis stage reached its safety limit; remaining detectors completed, but this package requires AI review.
node_modules/@graphql-tools/utils/cjs/comments.js#virtual:normalized:round1 View on unpkg node_modules/@fastify/static/test/static-pre-compressed/sample.jpg.br
High Payload In Excluded Dir node_modules/@fastify/static/test/content-type/index.css.br
High Semantic Analysis Limited node_modules/@graphql-tools/utils/cjs/comments.js#virtual:normalized:round1
Medium Dynamic Require dist/index.js
Medium Unsafe Vm Context node_modules/process/test.js
Medium Ships Wasm Module node_modules/prisma/build/query_engine_bg.cockroachdb.wasm
Medium Ships Build Helper node_modules/mercurius/bench.sh
Medium Ships Compressed Blob node_modules/@fastify/static/test/content-type/index.css.br
Medium Structural Risk Force Deep Review
Low Weak Crypto node_modules/prisma/build/index.js
2 signature(s) · provenance
Install lifecycle postinstall
Behavioral surface ChildProcess Crypto DynamicRequire EnvironmentVars Eval Filesystem Network HighEntropyStrings Minified PossibleObfuscation Telemetry UrlStrings Manifest: clean