Back to skill

Security audit

SSL Certificate Checker

Security checks for vulnerabilities and agentic risk

Overview

The skill is a straightforward SSL certificate checker, but users should treat generated HTML reports cautiously because scanned data is not escaped.

Install only if you are comfortable running a network-checking Python script against domains you specify. Avoid opening HTML reports generated from untrusted domain lists or hostile endpoints until the report output is fixed to escape dynamic values; JSON or terminal output is lower risk.

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 (1)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/check_ssl.py:187
Finding

Stored HTML Injection in Generated Certificate Reports

Content
View full analysis
{error}' if error else "" rows += f""" {r['hostname']}:{r['port']} {subject} {status_icon} {r['status'].replace('_', ' ').title()} {days} {expiry} {issuer} {', '.join(r['san'][:5])} {error_row}""" ``` ### Technical Analysis The HTML report generator inserts dynamic values directly into HTML without context-appropriate escaping. The affected values include: - User-supplied hostnames - Certificate subject common names - Certificate issuer names - Subject Alternative Name entries - Network and certificate error messages - Status and other report fields Because these values are interpolated as markup rather than encoded as text, an attacker-controlled value containing HTML elements or event-handler attributes can alter the generated document. For example, a crafted hostname containing an HTML payload remains present in the result object even if DNS resolution fails and is subsequently inserted into the report. The generated report does not apply HTML escaping or a restrictive Content Security Policy. Consequently, active HTML content such as an element with an inline event handler may execute when the user opens the report in a browser. ### Attack Path 1. An attacker convinces the user or an automated process to include a c ...[truncated 1458 chars]
Remediation
View remediation
``` The policy should be tested against the report's actual resource requirements. HTML escaping remains mandatory even when a CSP is present. 6. Add regression tests covering hostile values in every rendered field, including payloads such as: ```text "> ``` Tests should verify that these values appear as encoded text and are never interpreted as HTML elements. ]]>
Vulnerability Patterns
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (2)

Tp4

High
Category
MCP Tool Poisoning
Confidence
92% confidence
Finding

The skill description is largely aligned with the code for core certificate expiry checking, issuer details, SAN enumeration, multiple-domain monitoring, HTML reporting, and non-standard port support. However, parts of the declared purpose overstate the implementation. The script relies on Python's default TLS verification during the handshake, so it may fail on invalid chains, but it does not explicitly inspect, enumerate, or report chain validity details. It also does not evaluate wider SSL/TLS configuration characteristics such as protocol versions, ciphers, weak settings, or broader domain security posture before deployment. Because those capabilities are specifically claimed in the description but not materially implemented, this is a description-behavior mismatch.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.