registry  /  reflex-search  /  1.5.3

reflex-search@1.5.3

A local-first, structure-aware code search engine for AI agents

AI Security Review

scanned 5d ago · by lpm-firewall-ai

No confirmed malicious attack surface in the JavaScript package wrapper. It is a platform binary installer/launcher that downloads release artifacts for the reflex-search CLI.

Static reason
One or more suspicious static signals were detected.
Trigger
npm install postinstall or user invoking rfx
Impact
Installs and runs the package-aligned rfx binary; no source-level exfiltration or unauthorized mutation found
Mechanism
GitHub release binary download, archive extraction, and CLI delegation
Rationale
The suspicious primitives are explained by a normal native-binary npm wrapper: postinstall downloads the declared platform artifact, extracts it, and the bin entrypoint runs it. Static source inspection found no credential collection, covert endpoints, persistence, destructive behavior, or reviewer/AI control-surface manipulation.
Evidence
package.jsoninstall.jsbinary.jsbinary-install.jsrun-rfx.jsnpm-shrinkwrap.jsonnode_modules/.bin_real
Network endpoints1
github.com/reflex-search/reflex/releases/download/v1.5.3

Decision evidence

public snapshot
AI called this Clean at 88.0% confidence as Benign with medium false-positive risk.
Evidence for block
  • package.json defines postinstall: node ./install.js
  • binary-install.js downloads and extracts platform archives during install
  • binary-install.js uses spawnSync for tar/unzip/powershell and later runs installed rfx binary
Evidence against
  • Network use is limited to GitHub release URL declared in package.json
  • install.js only calls install(false) from local binary.js
  • binary.js selects OS/arch artifact from package.json supportedPlatforms
  • No credential/env harvesting, persistence, destructive project traversal, or exfiltration logic found
  • run-rfx.js only delegates CLI args to installed rfx binary
Behavioral surface
Source
ChildProcessFilesystemNetwork
Supply chain
UrlStrings
ManifestNo manifest risk signals triggered.
scanned 4 file(s), 10.0 KB of source, external domains: example.com

Source & flagged code

2 flagged · loading source
package.jsonView file
scripts.postinstall = node ./install.js
High
Install Time Lifecycle Scripts

Package defines install-time lifecycle scripts.

package.jsonView on unpkg
scripts.postinstall = node ./install.js
Medium
Ambiguous Install Lifecycle Script

Install-time lifecycle script is not statically allowlisted and needs review.

package.jsonView on unpkg

Findings

1 High2 Medium3 Low
HighInstall Time Lifecycle Scriptspackage.json
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumNetwork
LowScripts Present
LowFilesystem
LowUrl Strings