Back to skill

Security audit

Fast PPT

Security checks for vulnerabilities and agentic risk

Overview

This skill honestly describes cloud conversion, but it sends whole documents to a third-party service over plain HTTP, so users should review it before installing.

Install only if you are comfortable sending the full contents of selected documents to siping.me/pingPPT for cloud processing, and avoid confidential, regulated, personal, medical, financial, or contract-restricted files. Prefer a verified HTTPS API endpoint before uploading sensitive material.

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

Error
Location
SKILL.md:111
Finding

Cleartext Transmission of Complete User Documents to a Third-Party API

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:41, SKILL.md:111-135; also documented in README.md:103
Vulnerability Type: Unencrypted transmission of sensitive data
Risk Level: High

Vulnerable Code

markdown
| Agent API endpoint (upload/poll/internal download) | `http://47.103.80.109:8080` |
bash
API="${PINGAI_PPT_API_URL:-http://47.103.80.109:8080}"
bash
curl -sS \
  -F "file=@$FILE" \
  -F "theme=$THEME" \
  "$API/v1/jobs"
bash
curl -sS \
  -F "file=@$FILE" \
  -F "mode=convert_only" \
  "$API/v1/jobs"

The same insecure default is exposed to users in README.md:

bash
export PINGAI_PPT_API_URL=http://47.103.80.109:8080   # Agent API

Technical Analysis

The skill instructs the Agent to upload complete user documents to a third-party service using plain HTTP. HTTP provides neither transport encryption nor cryptographic authentication of the remote server.

Although the documentation discloses that files leave the local system and requires user consent, consent to cloud processing does not mitigate insecure transport. Any party capable of observing or modifying traffic between the Agent and the API can inspect the multipart upload, replace the submitted document, alter job-status responses, or modify internal download responses.

The direct use of an IP address over HTTP also prevents normal HTTPS hostname and certificate validation. The API is documented as requiring no authentication, further reducing protection against unauthorized submission and interaction with job endpoints.

Attack Path

  1. A user invokes the skill with a PDF, DOCX, PPTX, Markdown, or text document and consents to third-party processing.
  2. The Agent selects the default endpoint http://47.103.80.109:8080.
  3. curl sends the complete file in a plaintext multipart HTTP request to /v1/jobs.
  4. An attacker positioned on the local network, gateway, ISP path, compromised proxy, or another relevant network segment cap ...[truncated 1108 chars]
Remediation
View remediation

Remediation Suggestions

  1. Provide the API exclusively through HTTPS with a certificate issued for a validated hostname.

  2. Replace the default endpoint with an HTTPS URL, for example:

    bash
    API="${PINGAI_PPT_API_URL:-https://api.ppt.siping.me}"
    
  3. Remove all documented HTTP fallbacks and fail closed if the configured URL does not use HTTPS.

  4. Preserve standard curl certificate and hostname verification. Do not add --insecure or otherwise disable TLS validation.

  5. Add authenticated API access using short-lived, narrowly scoped credentials rather than leaving upload and job APIs unauthenticated.

  6. Ensure job identifiers are cryptographically unpredictable and enforce authorization checks on polling and download endpoints.

  7. Protect generated-file links with short-lived signed tokens and prevent unauthorized enumeration or retrieval.

  8. Validate that any download_url returned by the service uses HTTPS and belongs to an approved host before presenting or following it.

  9. Consider end-to-end file encryption where documents may contain sensitive information, with decryption restricted to the intended processing environment.

  10. Update README.md, SKILL.md, examples, and environment-variable guidance to remove the direct plaintext IP endpoint.

  11. Conduct transport-security testing to verify TLS enforcement, certificate validation, HTTP-to-HTTPS rejection, and resistance to on-path response modification.

Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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
Findings (2)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill declares broad trigger phrases such as '改成ppt' and '做成幻灯片', which are common natural-language requests and may cause the skill to activate when a user did not specifically intend to use this third-party cloud conversion workflow. In this skill, accidental activation is more dangerous than usual because it can lead to sensitive files being prepared for upload to an external server, increasing the risk of unintended data disclosure even though the skill does include consent language.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The usage guidance and invocation examples are presented entirely in Chinese, including the suggested phrases users should say to activate the skill. There is no indication that other languages are supported or that the Chinese-only interaction is an intentional, justified regional restriction.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.