Back to skill

Security audit

Excelize

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward guide for installing and using a Python Excel library, with the main caution that its package install is not version-pinned.

Install in a virtual environment and pin a reviewed excelize version if you need reproducible or higher-assurance use. Review files before running examples because the library can read and overwrite spreadsheet files you point it at.

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

Unpinned Third-Party Dependency Installation

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 16–18
Vulnerability Type: Unpinned third-party package installation
Risk Level: Medium

Vulnerable Code Snippet:

bash
pip install excelize

Technical Analysis

The installation instruction retrieves the latest version of the excelize package without an exact version constraint or an integrity hash. Consequently, the installed artifact can change after the Skill has been reviewed.

Python packages may execute package-controlled build or installation logic, while subsequent examples directly import and run the installed package. If the package distribution account, release process, package index, or dependency chain is compromised, malicious code could execute in the user's environment.

This finding concerns supply-chain integrity. The audit found no evidence that the referenced package is currently malicious.

Attack Path

  1. An attacker compromises the package publication account, distribution channel, or one of the package's dependencies.
  2. The attacker publishes a malicious release that is resolved by the unpinned installation command.
  3. A user or agent follows the Skill and runs pip install excelize.
  4. Pip downloads and installs the attacker-controlled release.
  5. Malicious logic executes during installation or when the examples import and use excelize.

Impact Assessment

Successful exploitation could allow arbitrary code execution with the privileges of the account running pip or Python. Depending on that account's permissions, the attacker could access or alter local files, spreadsheet contents, environment variables, application credentials, and network-accessible resources. The impact is normally confined to the installing user's privilege boundary unless installation is performed with elevated privileges.

Remediation
View remediation

Remediation Suggestions

  • Pin excelize to an exact, reviewed version rather than resolving the latest release.
  • Verify package artifacts with cryptographic hashes and install with pip's --require-hashes option through a locked requirements file.
  • Use a dependency lock file and review updates before changing the pinned version.
  • Install the package inside an isolated virtual environment under a non-privileged account.
  • Document the verified official package source and avoid untrusted package indexes or extra index URLs.
  • Add automated dependency and provenance scanning to detect compromised, vulnerable, or unexpectedly changed releases.
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

Static analysis

No suspicious patterns detected.