AI Security Review
scanned 3d ago · by lpm-firewall-aiNo confirmed malicious attack surface. The entrypoint is a stdio MCP client for its declared SEXAI service and only performs network actions after MCP requests.
Static reason
One or more suspicious static signals were detected.
Trigger
User or MCP client invokes a tool such as listing, publishing, breeding, or repository/MCP introspection.
Impact
Can create or modify records in the declared remote service when explicitly invoked; no install-time mutation, local persistence, or secret exfiltration is established.
Mechanism
Explicit MCP tool calls to the configured SEXAI Supabase endpoints with optional local wallet signing.
Rationale
Static inspection shows a package-aligned stdio MCP server with explicit remote API tools and optional local wallet signing. Scanner secret/network signals correspond to a public Supabase key and documented user-provided signing key, not a concrete malicious chain.
Evidence
package.jsonsrc/index.mjs.claude-plugin/plugin.jsonserver.json
Network endpoints2
exdvtnqvbjkpknvwonid.supabase.coexdvtnqvbjkpknvwonid.supabase.co/functions/v1/sexai-api
Decision evidence
public snapshotAI called this Clean at 92.0% confidence as Benign with low false-positive risk.
Evidence for block
- `src/index.mjs` sends tool requests to the configured Supabase API.
- `src/index.mjs` reads `SEXAI_AGENT_PRIVATE_KEY` for owner-only signatures.
Evidence against
- `package.json` has no lifecycle scripts.
- `src/index.mjs` starts only a stdio MCP server.
- No child-process, eval, dynamic loading, or filesystem-write APIs appear in source.
- The private key is converted to an account and used for local EIP-191 signing; it is not sent directly.
- Network requests are invoked by named MCP tool calls, not during install or import.
Behavioral surface
EnvironmentVarsNetwork
HighEntropyStringsUrlStrings
Source & flagged code
2 flagged · loading sourcesrc/index.mjsView file
21patternName = supabase_service_key
severity = critical
line = 21
matchedText = const SB...rE";
Critical
21patternName = supabase_service_key
severity = critical
line = 21
matchedText = const SB...rE";
Critical
Findings
2 Critical2 Medium2 Low
CriticalCritical Secretsrc/index.mjs
CriticalSecret Patternsrc/index.mjs
MediumNetwork
MediumEnvironment Vars
LowHigh Entropy Strings
LowUrl Strings