registry / stream-chat / 9.50.0
stream-chat@9.50.0
JS SDK for the Stream Chat API
AI Security Review
scanned 4mo ago · by lpm-firewall-aiStatic inspection shows an official Stream Chat SDK whose network, token, crypto, and websocket behavior are aligned with chat client/server functionality. The lifecycle finding is noisy: the postinstall script is guarded by existsSync for a missing Husky installer and no package source writes foreign files or agent control surfaces.
Static reason
High-risk behavior combination matched malicious policy.
Trigger
npm install for inert hook; runtime SDK API calls after application use
Impact
No install-time mutation or exfiltration confirmed; runtime network behavior is package-aligned chat API telemetry and requests
Mechanism
Stream Chat client API and guarded absent Husky installer
AI rationale
Static inspection shows an official Stream Chat SDK whose network, token, crypto, and websocket behavior are aligned with chat client/server functionality. The lifecycle finding is noisy: the postinstall script is guarded by existsSync for a missing Husky installer and no package source writes foreign files or agent control surfaces.
Evidence
package.jsonsrc/index.tssrc/client.tssrc/connection.tssrc/connection_fallback.tssrc/insights.tssrc/signing.tsscripts/install-husky.mjs
Network endpoints4
chat.stream-io-api.comchat-insights.getstream.io/insights/${insightType}/longpoll via configured Stream baseURLWebSocket /connect via configured Stream baseURL
Decision evidence
public snapshotAI called this Clean at 94.0% confidence as Benign with low false-positive risk.
Evidence for AI clean decision
- package.json defines postinstall and prepare scripts
- src/insights.ts can send runtime diagnostic payloads including token/user details to Stream insights when invoked
Evidence against
- postinstall only checks for scripts/install-husky.mjs, and no scripts directory or install-husky.mjs exists in the package
- No src matches for child_process, shell execution, fs writes, AI-agent control-surface paths, or persistence files
- Entrypoint src/index.ts only re-exports SDK modules; no import-time network or filesystem mutation found
- Network use is SDK-aligned: Stream Chat API, WebSocket connect, longpoll, uploads, and Stream insights
- Secrets/tokens are user-supplied SDK auth material used for Stream API signing/auth, not harvested from env/files
Behavioral surface
ChildProcessCryptoEnvironmentVarsNetworkWebSocket
HighEntropyStringsUrlStrings
Source & flagged code
2 flaggedpackage.jsonView file
•scripts.postinstall = node -e "require('fs').existsSync('scripts/install-husky.mjs') && import('./scripts/install-husky.mjs')"
Critical
Red Install Lifecycle Script
Install-time lifecycle script matches a deterministic static-gate block pattern.
package.jsonView on unpkg•scripts.postinstall = node -e "require('fs').existsSync('scripts/install-husky.mjs') && import('./scripts/install-husky.mjs')"
High
Install Time Lifecycle Scripts
Package defines install-time lifecycle scripts.
package.jsonView on unpkgFindings
1 Critical1 High2 Medium5 Low
CriticalRed Install Lifecycle Scriptpackage.json
HighInstall Time Lifecycle Scriptspackage.json
MediumNetwork
MediumEnvironment Vars
LowNon Install Lifecycle Scripts
LowScripts Present
LowHigh Entropy Strings
LowUrl Strings
LowNo License
Affected versions and remediation
This report applies to stream-chat@9.50.0.
See all versions of stream-chat for other recorded verdicts.
- Review the evidence and your use of stream-chat@9.50.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: .
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced.