registry  /  @fastpace-ai/fp  /  0.47.0

@fastpace-ai/fp@0.47.0

fastpace — trust harness for AI-assisted development. Installs skills, agents, hooks, and guardrails into any repo.

Static Scan Results

scanned 1d ago · by rust-scanner

Static analysis flagged 17 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 310 file(s), 2.29 MB of source, external domains: 127.0.0.1, accounts.google.com, api.bitbucket.org, api.fastpace.net, api.linear.app, bitbucket.org, claude.com, cli.github.com, console.cloud.google.com, docs.example.com, docs.googleapis.com, fastpace.dev, fastpace.net, github.com, gitlab.com, hooks.slack.com, id.atlassian.com, json-schema.org, json.schemastore.org, mycompany.atlassian.net, nodejs.org, oauth2.googleapis.com, registry.npmjs.org, sentry.io, trust.fastpace.net, www.googleapis.com

Source & flagged code

10 flagged · loading source
assets/redteam/scenarios.jsonView file
9patternName = aws_access_key severity = critical line = 9 matchedText = "input":..." },
Critical
Critical Secret

Package contains a critical-looking secret pattern.

assets/redteam/scenarios.jsonView on unpkg · L9
9patternName = aws_access_key severity = critical line = 9 matchedText = "input":..." },
Critical
Secret Pattern

AWS access key ID in assets/redteam/scenarios.json

assets/redteam/scenarios.jsonView on unpkg · L9
16patternName = github_pat severity = critical line = 16 matchedText = "input":..." },
Critical
Secret Pattern

GitHub personal access token in assets/redteam/scenarios.json

assets/redteam/scenarios.jsonView on unpkg · L16
assets/hooks/correction-detector.jsView file
28const crypto = require('crypto'); L29: const { execFileSync } = require('child_process'); L30: const { readStdin, loadConfig, repoRoot, allow, hookEnabled } = require('./_lib');
High
Child Process

Package source references child process execution.

assets/hooks/correction-detector.jsView on unpkg · L28
bin/lock-in.jsView file
5L6: const cmd = require('../src/commands/lock-in'); L7: const VERSION = require('../package.json').version;
Medium
Dynamic Require

Package source references dynamic require/import behavior.

bin/lock-in.jsView on unpkg · L5
src/risk-register.jsView file
34for (const l of lines) { L35: let e; try { e = JSON.parse(l); } catch { continue; } L36: if (e.severity !== 'security') continue;
Low
Weak Crypto

Package source references weak cryptographic algorithms.

src/risk-register.jsView on unpkg · L34
src/airgap.jsView file
12// install-offline.sh # one-line installer (Bash) L13: // install-offline.ps1 # one-line installer (PowerShell, Windows) L14: // pkg/ # the `@fastpace-ai/fp` package contents, L15: // # exactly as `npm pack` would lay it out: L16: // # bin/, src/, assets/, package.json, L17: // # CHANGELOG.md ... L79: function buildBundle(cwd, opts = {}) { L80: const fpRoot = path.resolve(__dirname, '..'); L81: const version = opts.version || readPackageVersion(fpRoot); ... L169: if (!stat.isDirectory()) return null; L170: const m = JSON.parse(fs.readFileSync(path.join(full, 'manifest.json'), 'utf8')); L171: const tarball = full + '.tar.gz';
Medium
Install Persistence

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

src/airgap.jsView on unpkg · L12
src/refs/oauth-google.jsView file
3// Google OAuth loopback flow with PKCE for installed apps. L4: // https://developers.google.[redacted]-app L5: // ... L14: const { URL } = require('url'); L15: const { spawn } = require('child_process'); L16: L17: const DEFAULT_CLIENT_ID = process.env.FASTPACE_GOOGLE_CLIENT_ID L18: || 'fastpace-public-client-id-set-via-env.apps.googleusercontent.com';
High
Same File Env Network Execution

A single source file combines environment access, network access, and code or shell execution; review context before blocking.

src/refs/oauth-google.jsView on unpkg · L3
3// Google OAuth loopback flow with PKCE for installed apps. L4: // https://developers.google.[redacted]-app L5: // ... L14: const { URL } = require('url'); L15: const { spawn } = require('child_process'); L16: L17: const DEFAULT_CLIENT_ID = process.env.FASTPACE_GOOGLE_CLIENT_ID L18: || 'fastpace-public-client-id-set-via-env.apps.googleusercontent.com'; ... L28: L29: function base64url(buf) { L30: return buf.toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, ''); ... L39: function tryOpenBrowser(url) {
High
Sandbox Evasion Gated Capability

Source gates dangerous network, credential, or execution behavior behind CI, host, platform, time, or geo fingerprint checks.

src/refs/oauth-google.jsView on unpkg · L3
src/bench.jsView file
44patternName = aws_access_key severity = critical line = 44 matchedText = prompt: ...m?',
Critical
Secret Pattern

AWS access key ID in src/bench.js

src/bench.jsView on unpkg · L44

Findings

4 Critical4 High5 Medium4 Low
CriticalCritical Secretassets/redteam/scenarios.json
CriticalSecret Patternassets/redteam/scenarios.json
CriticalSecret Patternassets/redteam/scenarios.json
CriticalSecret Patternsrc/bench.js
HighChild Processassets/hooks/correction-detector.js
HighShell
HighSame File Env Network Executionsrc/refs/oauth-google.js
HighSandbox Evasion Gated Capabilitysrc/refs/oauth-google.js
MediumDynamic Requirebin/lock-in.js
MediumNetwork
MediumEnvironment Vars
MediumInstall Persistencesrc/airgap.js
MediumStructural Risk Force Deep Review
LowWeak Cryptosrc/risk-register.js
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings