Back to skill

Security audit

credential-vault-design

Security checks for vulnerabilities and agentic risk

Overview

This is a local credential vault, but its secret-handling controls are weaker than its safety claims suggest.

Review before installing if you expect an agent-safe credential broker. Use it only as a local, user-operated vault unless you add stronger controls: pin and audit dependencies, avoid command-line secret arguments, avoid logging stdout from get commands, and require explicit confirmation before revealing stored passwords.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (4)

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The `get` command prints the requested password directly to stdout, which can expose secrets to shell history capture workflows, terminal logging, CI/job logs, or other local process/output collectors. In a credential-vault tool, this behavior is especially sensitive because the whole purpose is to minimize plaintext credential exposure, so unrestricted console disclosure increases the chance of accidental leakage.

Unpinned Dependencies

Low
Category
Supply Chain
Content
pykeepass>=4.0.3
cryptography>=42.0.0
Confidence
90% confidence
Finding
The dependency specification for pykeepass is unpinned and allows any newer version to be installed, which makes builds non-reproducible and can silently introduce a compromised or breaking release through the supply chain. In a credential-vault skill, dependency integrity matters more than usual because the package may process or unlock sensitive secrets.

Unpinned Dependencies

Low
Category
Supply Chain
Content
pykeepass>=4.0.3
cryptography>=42.0.0
Confidence
98% confidence
Finding
The cryptography dependency is unpinned and currently permits installation of version 42.0.0 or other future versions, making the environment non-deterministic and increasing supply-chain risk. This is more dangerous in a credential vault context because cryptographic libraries directly protect high-value secrets, so an unsafe or unexpected version can materially weaken confidentiality or availability.

Known Vulnerable Dependency: cryptography==42.0.0 — 10 advisory(ies): GHSA-537c-gmf6-5ccf (Vulnerable OpenSSL included in cryptography wheels); CVE-2024-26130 (cryptography NULL pointer dereference with pkcs12.serialize_key_and_certificates); CVE-2024-12797 (Vulnerable OpenSSL included in cryptography wheels) +7 more

High
Category
Supply Chain
Confidence
97% confidence
Finding
The requirement allows cryptography 42.0.0, a version with multiple published advisories, including issues tied to bundled OpenSSL and a NULL pointer dereference in PKCS#12 handling. In a local credential vault, a vulnerable cryptographic dependency is especially sensitive because it may process keys, certificates, or vault data, potentially leading to crashes, denial of service, or weakened cryptographic protections depending on reachable code paths and platform packaging.

Static analysis

No suspicious patterns detected.