Back to skill

Security audit

Body Emotion Sensor

Security checks for vulnerabilities and agentic risk

Overview

This skill is transparent about using a local CLI to keep persistent emotion state, but users should be careful with the unpinned package install and persistent language setting.

Install only if you want an agent behavior layer that stores local emotion state and affects replies across turns. Use a dedicated virtual environment, consider pinning or reviewing the package version before installation, and require explicit confirmation before running commands that change persistent preferences such as `bes language zh`.

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:89
Finding

Unpinned Third-Party Package Installation

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 89–96
Vulnerability Type: Unpinned dependency installation
Risk Level: Medium

Vulnerable Code

markdown
3. Ask for approval before any install command.
4. If the user approves installation, run:

```bash
pip install body-emotion-sensor
text

### Technical Analysis

The skill instructs the agent to install `body-emotion-sensor` from the default Python package index without an exact version constraint, integrity hashes, a lock file, or locally auditable package source. User approval makes the installation transparent but does not protect against a compromised future release, package-index account takeover, dependency compromise, or unexpected changes between installations.

Because the installed package creates the `bes` command that the skill later invokes, package code executes with the operating-system permissions of the agent or user running `pip` and `bes`.

### Attack Path

1. An attacker compromises the package's publishing account, its release pipeline, or one of its transitive dependencies.
2. The attacker publishes a malicious release that still resolves under the unversioned package name.
3. A user approves the documented installation.
4. `pip install body-emotion-sensor` resolves and installs the malicious or compromised release.
5. Malicious behavior may execute during installation or when the agent subsequently invokes `bes`.
6. The skill calls the installed CLI during readiness checks, session bootstrap, and reply processing, providing repeated execution opportunities.

### Impact Assessment

A compromised package can execute with the privileges of the account running the installation and CLI. Subject to those privileges, it could read or modify accessible files, tamper with the documented workspace state and history, alter CLI output used to shape agent replies, access environment data, or initiate network activity. The project contains no evidence that elevated privi
...[truncated 107 chars]
Remediation
View remediation

Remediation Suggestions

  • Pin the dependency to an exact, reviewed release, for example body-emotion-sensor==X.Y.Z.
  • Distribute a lock file or constraints file that also pins transitive dependencies.
  • Require cryptographic hashes by installing from a reviewed requirements file with pip install --require-hashes.
  • Document and enforce the canonical package index rather than relying implicitly on the environment's configured index.
  • Make the reviewed package source available so its CLI and installation behavior can be audited.
  • Install into a dedicated virtual environment with minimal filesystem and network privileges.
  • Establish a controlled upgrade process that reviews and tests each new package version before updating the pin.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (1)

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

The skill suggests changing the user's language setting to Chinese based on inferred user language rather than requiring explicit opt-in. Because this writes persistent local configuration (bes language zh), it can modify user preferences unexpectedly and may create confusing or unwanted behavior across future sessions.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.