registry  /  ggk-happy  /  1.2.35

ggk-happy@1.2.35

⚠ Under review

Mobile and Web client for Claude Code and Codex

Static Scan Results

scanned 5h ago · by rust-scanner

Static analysis flagged 19 finding(s) at 93.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.; previous stored version diff introduced dangerous source

Decision evidence

public snapshot
Behavioral surface
Source
ChildProcessCryptoDynamicRequireEnvironmentVarsFilesystemNetworkShellWebSocket
Supply chain
HighEntropyStringsUrlStrings
ManifestNo manifest risk signals triggered.
scanned 33 file(s), 1.46 MB of source, external domains: 127.0.0.1, accounts.google.com, api.cluster-fluster.com, api.openai.com, auth.openai.com, claude.ai, console.anthropic.com, developers.google.com, github.com, goo.gle, guguke.ask-ggk.com, happy-api.ask-ggk.com, happy.ask-ggk.com, happy.engineering, minio.ask-ggk.com, oauth2.googleapis.com, registry.npmjs.org, www.apple.com, www.googleapis.com

Source & flagged code

12 flagged · loading source
package.jsonView file
scripts.postinstall = node scripts/postinstall.cjs
High
Install Time Lifecycle Scripts

Package defines install-time lifecycle scripts.

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

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

package.jsonView on unpkg
bin/happy.mjsView file
2L3: import { execFileSync } from 'child_process'; L4: import { fileURLToPath } from 'url';
High
Child Process

Package source references child process execution.

bin/happy.mjsView on unpkg · L2
7// Check if we're already running with the flags L8: const hasNoWarnings = process.execArgv.includes('--no-warnings'); L9: const hasNoDeprecation = process.execArgv.includes('--no-deprecation');
High
Shell

Package source references shell execution.

bin/happy.mjsView on unpkg · L7
dist/lib.cjsView file
2L3: var persistence = require('./types-DaduoF13.cjs'); L4: require('axios');
Medium
Dynamic Require

Package source references dynamic require/import behavior.

dist/lib.cjsView on unpkg · L2
dist/index-N0EnBaLx.cjsView file
matchType = previous_version_dangerous_delta matchedPackage = ggk-happy@1.2.30 matchedIdentity = npm:Z2drLWhhcHB5:1.2.30 similarity = 0.879 summary = stored previous version shares package body but lacks this dangerous source file
Critical
Previous Version Dangerous Delta

This package version adds a dangerous source file absent from the previous stored version; route for source-aware review.

dist/index-N0EnBaLx.cjsView on unpkg
16var claudeAgentSdk = require('@anthropic-ai/claude-agent-sdk'); L17: var axios = require('axios'); L18: require('node:events'); ... L21: var os$1 = require('os'); L22: var child_process = require('child_process'); L23: var cuid2 = require('@paralleldrive/cuid2'); ... L152: ...existing, L153: metadata: { L154: ...existing.metadata, ... L234: const projectId = path.resolve(workingDirectory).replace(/[^a-zA-Z0-9-]/g, "-"); L235: const claudeConfigDir = process.env.CLAUDE_CONFIG_DIR || path.join(os.homedir(), ".claude"); L236: return path.join(claudeConfigDir, "projects", projectId);
High
Sandbox Evasion Gated Capability

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

dist/index-N0EnBaLx.cjsView on unpkg · L16
16Cross-file remote execution chain: dist/index-N0EnBaLx.cjs spawns scripts/claude_local_launcher.cjs; helper contains network access plus dynamic code execution. L16: var claudeAgentSdk = require('@anthropic-ai/claude-agent-sdk'); L17: var axios = require('axios'); L18: require('node:events'); ... L21: var os$1 = require('os'); L22: var child_process = require('child_process'); L23: var cuid2 = require('@paralleldrive/cuid2'); ... L152: ...existing, L153: metadata: { L154: ...existing.metadata, ... L234: const projectId = path.resolve(workingDirectory).replace(/[^a-zA-Z0-9-]/g, "-"); L235: const claudeConfigDir = process.env.CLAUDE_CONFIG_DIR || path.join(os.homedir(), ".claude"); L236: return path.join(claudeConfigDir, "projects", projectId);
High
Cross File Remote Execution Context

Source spawns a local helper that also contains network and dynamic execution context; review data flow before blocking.

dist/index-N0EnBaLx.cjsView on unpkg · L16
16var claudeAgentSdk = require('@anthropic-ai/claude-agent-sdk'); L17: var axios = require('axios'); L18: require('node:events'); ... L21: var os$1 = require('os'); L22: var child_process = require('child_process'); L23: var cuid2 = require('@paralleldrive/cuid2'); ... L152: ...existing, L153: metadata: { L154: ...existing.metadata, ... L234: const projectId = path.resolve(workingDirectory).replace(/[^a-zA-Z0-9-]/g, "-"); L235: const claudeConfigDir = process.env.CLAUDE_CONFIG_DIR || path.join(os.homedir(), ".claude"); L236: return path.join(claudeConfigDir, "projects", projectId);
Medium
Install Persistence

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

dist/index-N0EnBaLx.cjsView on unpkg · L16
scripts/download-tools.shView file
path = scripts/download-tools.sh kind = build_helper sizeBytes = 4241 magicHex = [redacted]
Medium
Ships Build Helper

Package ships non-JavaScript build or shell helper files.

scripts/download-tools.shView on unpkg
tools/archives/difftastic-arm64-linux.tar.gzView file
path = tools/archives/difftastic-arm64-linux.tar.gz kind = high_entropy_blob sizeBytes = 11425536 magicHex = [redacted]
High
Ships High Entropy Blob

Package ships high-entropy non-source blobs.

tools/archives/difftastic-arm64-linux.tar.gzView on unpkg
path = tools/archives/difftastic-arm64-linux.tar.gz kind = compressed_blob sizeBytes = 11425536 magicHex = [redacted]
Medium
Ships Compressed Blob

Package ships compressed or archive-like blobs.

tools/archives/difftastic-arm64-linux.tar.gzView on unpkg

Findings

1 Critical6 High8 Medium4 Low
CriticalPrevious Version Dangerous Deltadist/index-N0EnBaLx.cjs
HighInstall Time Lifecycle Scriptspackage.json
HighChild Processbin/happy.mjs
HighShellbin/happy.mjs
HighSandbox Evasion Gated Capabilitydist/index-N0EnBaLx.cjs
HighCross File Remote Execution Contextdist/index-N0EnBaLx.cjs
HighShips High Entropy Blobtools/archives/difftastic-arm64-linux.tar.gz
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumDynamic Requiredist/lib.cjs
MediumNetwork
MediumEnvironment Vars
MediumInstall Persistencedist/index-N0EnBaLx.cjs
MediumShips Build Helperscripts/download-tools.sh
MediumShips Compressed Blobtools/archives/difftastic-arm64-linux.tar.gz
MediumStructural Risk Force Deep Review
LowScripts Present
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings