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## 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
## 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.