registry  /  @lenne.tech/cli  /  1.35.1

@lenne.tech/cli@1.35.1

lenne.Tech CLI: lt

Static Scan Results

scanned 4h ago · by rust-scanner

Static analysis flagged 13 finding(s) at 72.0% confidence. This version is warn-only unless an AI or security-team review confirms malicious behavior.

Static reason
One or more suspicious static signals were detected.

Decision evidence

public snapshot
Behavioral surface
Source
ChildProcessCryptoDynamicRequireEnvironmentVarsFilesystemNetworkShell
Supply chain
HighEntropyStringsUrlStrings
ManifestNo manifest risk signals triggered.
scanned 171 file(s), 1.44 MB of source, external domains: 127.0.0.1, api.github.com, caddyserver.com, developers.cloudflare.com, developers.openai.com, docs.anthropic.com, docs.nestjs.com, git-scm.com, github.com, infinitered.github.io, lenne.tech, nodejs.org, raw.githubusercontent.com, regex101.com, registry.npmjs.org, stackblitz.com, www.apple.com

Source & flagged code

5 flagged · loading source
package.jsonView file
scripts.postinstall = node bin/postinstall.js 2>/dev/null || true
High
Install Time Lifecycle Scripts

Package defines install-time lifecycle scripts.

package.jsonView on unpkg
scripts.postinstall = node bin/postinstall.js 2>/dev/null || true
Medium
Ambiguous Install Lifecycle Script

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

package.jsonView on unpkg
bin/postinstall.jsView file
7L8: const { execSync } = require('child_process'); L9: const { appendFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } = require('fs');
Medium
Dynamic Require

Package source references dynamic require/import behavior.

bin/postinstall.jsView on unpkg · L7
7L8: const { execSync } = require('child_process'); L9: const { appendFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } = require('fs'); ... L30: function detectShell() { L31: const shell = process.env.SHELL || ''; L32: if (shell.includes('zsh')) return 'zsh'; ... L60: function getCompletionPaths(shell) { L61: const home = homedir(); L62: const ltDir = join(home, '.local', 'share', 'lt', 'completions'); ... L73: completionFile: join(ltDir, '_lt'), L74: configFile: join(home, '.zshrc'), L75: // Source the file directly - it uses compdef internally
Medium
Install Persistence

Source writes installer persistence such as shell profile or service configuration.

bin/postinstall.jsView on unpkg · L7
docs/lt-dev-ticket-workflow.pdfView file
path = docs/lt-dev-ticket-workflow.pdf kind = high_entropy_blob sizeBytes = 1419322 magicHex = [redacted]
High
Ships High Entropy Blob

Package ships high-entropy non-source blobs.

docs/lt-dev-ticket-workflow.pdfView on unpkg

Findings

2 High6 Medium5 Low
HighInstall Time Lifecycle Scriptspackage.json
HighShips High Entropy Blobdocs/lt-dev-ticket-workflow.pdf
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumDynamic Requirebin/postinstall.js
MediumNetwork
MediumEnvironment Vars
MediumInstall Persistencebin/postinstall.js
MediumStructural Risk Force Deep Review
LowNon Install Lifecycle Scripts
LowScripts Present
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings