Back to skill

Security audit

Expanso tls-inspect

Security checks for vulnerabilities and agentic risk

Overview

The skill is framed as a TLS certificate inspector, but one path can run unintended shell commands from host input and another returns fabricated certificate-valid results.

Review before installing or running. Do not expose the MCP server on a network, and do not rely on its certificate results. Treat CLI host input as sensitive: only pass trusted hostnames until the shell command construction and certificate validation logic are fixed.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (4)

T09 · Insecure Skill Coding Practices

Error
Location
pipeline-cli.yaml:22
Finding

Arbitrary Command Execution Through Unsanitized Host Input

Content
View full analysis
/dev/null | openssl x509 -noout -text -dates -fingerprint -sha256 2>/dev/null || echo "CONNECTION_FAILED" ``` ### Technical Analysis The pipeline reads an arbitrary line from standard input and stores it in `meta host` without syntactic validation. The value is subsequently interpolated into a command string passed to `sh -c`. Quoting interpolated input with double quotes does not reliably prevent command injection because shell substitutions embedded in the rendered string, such as command substitutions, are interpreted when `sh` parses the final command. An attacker can therefore supply shell syntax instead of a valid hostname. Using `sh -c` unnecessarily introduces a shell interpreter into a workflow that only needs to invoke OpenSSL with fixed arguments. ### Attack Path 1. An attacker supplies a crafted host value through the CLI pipeline's standard input. 2. The mapping processor stores the value unchanged in `meta host` and `host_with_port`. 3. Template interpolation inserts the attacker-controlled value into the shell program. 4. The `command` processor invokes `sh -c`. 5. The shell evaluates injected syntax, such as command substitution, while processing the OpenSSL command. 6. The attacker's co ...[truncated 964 chars]
Remediation
View remediation

other

Error
Location
pipeline-mcp.yaml:20
Finding

MCP Endpoint Fabricates TLS Certificate and Validity Results

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
pipeline-cli.yaml:61
Finding

CLI Reports Any Parseable Certificate as Valid Without Verification

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
pipeline-mcp.yaml:7
Finding

Unauthenticated Inspection Service Listens on All Network Interfaces

Content
View full analysis
Remediation
View remediation
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.