Back to skill

Security audit

AI通识课资深专家V8.1AIPC

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent AI-teaching workflow, but its setup and cloud paths need review because they download and execute unverified external artifacts and make stronger privacy claims than the code enforces.

Install only after reviewing the setup path. Run it as a normal user, not an administrator, pin and verify FFmpeg/model artifacts before bootstrap, use a trusted HTTPS cloud endpoint, avoid sending student or personal data through the cloud exchange, and replace the documented Grafana password and latest image tags before any deployment.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (4)

T03 · Remote Payload Retrieval and Execution

Error
Location
scripts/setup_resources.py:55
Finding

Unauthenticated Third-Party FFmpeg Executables Are Downloaded and Run

Content
View full analysis
None: """Download URL to dest.""" log.info(f" Downloading: {url}") log.warn(f" Destination: {dest} (timeout {timeout}s)") old_timeout = socket.getdefaulttimeout() socket.setdefaulttimeout(timeout) try: urllib.request.urlretrieve(url, str(dest)) finally: socket.setdefaulttimeout(old_timeout) ``` ```python with zipfile.ZipFile(zip_path, "r") as zf: ffmpeg_zip_path = _find_in_zip(zf, "ffmpeg.exe") ffprobe_zip_path = _find_in_zip(zf, "ffprobe.exe") if not ffmpeg_zip_path or not ffprobe_zip_path: log.error("[ffmpeg] ffmpeg.exe or ffprobe.exe was not found") return False with zf.open(ffmpeg_zip_path) as src, open(ffmpeg_dest, "wb") as dst: shutil.copyfileobj(src, dst) with zf.open(ffprobe_zip_path) as src, open(ffprobe_dest, "wb") as dst: shutil.copyfileobj(src, dst) ``` ```python if _verify_exe(ffmpeg_dest, ("-version",)): log.info(f"[ffmpeg] Installation succeeded: {ffmpeg_dest}") ``` The verification function executes the downloaded file: ```python result = subprocess.run( [str(exe_path), flag], capture_output=True, timeout=15, ) ``` ### Technical Analysis The setup process downloads a ZIP archive containing Windows executables from a third-party GitHub release, extracts `ffmpeg.exe` and `ffprobe.exe`, and executes `ffmpeg.exe -version`. The archive and extracted binaries are not authenticated with a pinned SHA-256 digest, signed manifest, or trusted publisher signatur ...[truncated 1527 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/edge_cloud_dispatch.py:424
Finding

Cloud Privacy Controls Fail Open and Do Not Sanitize Every Outbound Field

Content
View full analysis
tuple[dict, bool]: abstract = request.get("abstract") or {} data = abstract.get("abstract_data") try: from pii_redactor import redact_abstract_data redacted, detected = redact_abstract_data(data) abstract["abstract_data"] = redacted abstract["pii_detected"] = detected request["abstract"] = abstract return request, detected except ImportError: return request, abstract.get("pii_detected", False) ``` The result is marked as safe after a regex match was replaced: ```python request, pii_detected = self._apply_pii_redaction(request) if pii_detected: request["abstract"]["pii_detected"] = False ``` The unredacted `intent` and `context` fields are included in cloud requests: ```python abstract = request.get("abstract") or {} intent = request.get("intent", "") context = abstract.get("context", "") user_msg = ( f"Intent: {intent}\n" f"Context: {context}\n" f"Metadata: " f"{json.dumps(abstract.get('abstract_data', {}), ensure_ascii=False)[:8000]}" ) ``` The destination is entirely environment-controlled: ```python endpoint = os.environ.get("EDGE_CLOUD_ENDPOINT", "") if not endpoint: raise RuntimeError("EDGE_CLOUD_ENDPOINT is not configured") api_key = os.environ.get("EDGE_CLOUD_API_KEY", "") ... payload = json.dumps(provider_payload, ensure_ascii=False).encode("utf-8") req = urllib.request.Request( url, data=payload, headers=headers, method="POST", ) with urllib.request.urlopen(req, timeout=connect_timeout) as resp: body = resp.read().decode("ut ...[truncated 2205 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
scripts/setup_text_model.py:71
Finding

Downloaded Model Artifacts Are Not Pinned or Cryptographically Verified

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Error
Location
references/deployment-guide.md:769
Finding

Deployment Guidance Uses Mutable Container Images and Predictable Administrative Credentials

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Taint TrackingDirect Taint Flow, Variable-Mediated Taint Flow, Credential Exfiltration Chain
  • 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 (325)

Tainted flow: 'connect_timeout' from os.environ.get (line 743, credential/environment) → urllib.request.urlopen (network output)

Critical
Category
Data Flow
Confidence
90% confidence
Finding

Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.

Content

Scanner excerpt · scripts/edge_cloud_dispatch.py (reported line 782)May include surrounding context.

python
req = urllib.request.Request(url, data=payload, headers=headers, method="POST")

    try:
        with urllib.request.urlopen(req, timeout=connect_timeout) as resp:
            body = resp.read().decode("utf-8")
            provider_resp = json.loads(body)
    except socket.timeout as exc:

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

Automatic virtualenv creation, pip installation, process re-execution, and runtime path configuration are privileged setup operations not clearly bounded by the skill’s educational framing. This can lead to overbroad execution in hosts that expected a narrow content-generation assistant.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.destructive_delete_command, suspicious.dynamic_code_execution, suspicious.exposed_secret_literal

Documentation contains a destructive delete command without an explicit confirmation gate.

Warn
Code
suspicious.destructive_delete_command
Location
references/deployment-guide.md:1619

Dynamic code execution detected.

Critical
Code
suspicious.dynamic_code_execution
Location
support/p5.min.js:1

Dynamic code execution detected.

Critical
Code
suspicious.dynamic_code_execution
Location
support/p5.sound.min.js:2

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
references/deployment-guide.md:592