Back to skill

Security audit

Beestat

Security checks for vulnerabilities and agentic risk

Overview

This is a straightforward Beestat/ecobee helper, with sensitive home data and API-key handling that users should treat carefully.

Before installing, verify that `beestat-cli` is the package you intend to trust, consider pinning a reviewed version, and avoid exposing `BEESTAT_API_KEY` in shared shells, logs, screenshots, or committed files. Treat command output as private household data, especially occupancy and sensor history.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:17
Finding

Unpinned Global Installation of a Third-Party npm Package

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 17–21
Vulnerability Type: Unpinned and unverifiable third-party dependency installation
Risk Level: Medium

Vulnerable Code

markdown
## Installation

```bash
npm install -g beestat-cli
text

### Technical Analysis

The installation instructions globally install the latest version of `beestat-cli` without specifying an exact version, integrity hash, lockfile, verified source repository, or publisher-validation procedure. Consequently, the package contents executed by users can change after this Skill has been reviewed.

npm installation may run package lifecycle scripts, while subsequent use executes the installed CLI. Because the Skill requires `BEESTAT_API_KEY`, the installed package may also operate in a process environment containing that credential. The CLI is expected to access sensitive household telemetry, including occupancy, thermostat status, temperatures, and HVAC history.

The repository contains no copy of the package source, dependency manifest, or lockfile with which to verify the installed implementation. This does not establish that the current package is malicious, but it creates a supply-chain exposure if the npm package, publisher account, or a transitive dependency is compromised.

### Attack Path

1. An attacker compromises the `beestat-cli` npm package, its publisher account, or one of its installation/runtime dependencies.
2. The attacker publishes a malicious release under the package name used by the documented command.
3. A user or agent runs `npm install -g beestat-cli`, automatically selecting the attacker-controlled release.
4. Malicious code executes through an npm lifecycle script or when the installed CLI is invoked.
5. The code runs with the installing user's privileges and may read accessible environment variables, including `BEESTAT_API_KEY`.
6. When invoked, the compromised CLI may intercept or exfiltrate thermostat queries and sensitive househo
...[truncated 723 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin beestat-cli to an explicitly reviewed version rather than installing the mutable latest release:
    bash
    npm install --global --ignore-scripts beestat-cli@<reviewed-version>
    
  2. Document the authoritative npm publisher and source repository so users can verify package provenance before installation.
  3. Publish and verify package integrity information, such as the expected npm integrity digest or release artifact checksum.
  4. Review the pinned package and its transitive dependencies, and repeat that review before updating the documented version.
  5. Avoid global installation where possible. Prefer a project-local, locked dependency executed from a controlled environment.
  6. Disable npm lifecycle scripts with --ignore-scripts if the reviewed CLI does not require them.
  7. Run the CLI as a non-privileged user and provide BEESTAT_API_KEY only to the specific process that requires it.
  8. Restrict the API key to the minimum available permissions, rotate it if compromise is suspected, and avoid exposing it in shell history, logs, or persistent configuration files.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill is primarily described as a read/query interface for thermostat telemetry, but it also documents beestat sync, which triggers a remote state-changing operation. Omitting this capability from the declared scope can mislead users or calling agents into invoking a write-like action when they expect read-only behavior, increasing the risk of unintended external side effects.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill accesses household telemetry including occupancy, thermostat status, and air-quality data, which can reveal presence patterns, daily routines, and home conditions. Without a privacy warning or data-sensitivity notice, users may not appreciate that this API exposes sensitive home intelligence that could be misused if shared, logged, or queried inappropriately.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The instructions tell users to store BEESTAT_API_KEY in an environment variable but provide no guidance on protecting the secret. API keys for home telemetry can grant access to sensitive household data, and careless handling can lead to leakage through shell history, process environments, shared profiles, screenshots, or logs.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.