Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

homework-grade

v1.0.0

Automatically downloads student homework from QQ email, unzips files, performs AI grading based on templates, and generates an Excel grade report.

0· 53·0 current·0 all-time
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The code implements the advertised functionality (IMAP download from QQ, unzip, AI grading, Excel output). However, the implementation requires an OpenAI API key (OPENAI_API_KEY) and expects local template files, neither of which are declared in the skill metadata (requires.env is empty and templates are not bundled). requirements.txt omits the openai client. These are legitimate needs for AI grading but should be declared; omission is an incoherence.
!
Instruction Scope
The instructions say '调用AI评分' but do not disclose that the full student code will be sent to an external AI provider. The code reads all .py files and sends them to OpenAI. The skill also writes attachments to disk, extracts zip archives with zip_ref.extractall (no sanitization), and executes student .py files via subprocess.run — all of which expose the environment to untrusted input. The SKILL.md does not warn about these behaviors or recommend sandboxing.
Install Mechanism
There is no install spec (instruction-only in registry), but the bundle includes code and a requirements.txt. requirements.txt lists pandas and openpyxl but omits the openai dependency required by the code. This mismatch means the runtime may fail or the operator may implicitly install additional packages, which increases risk.
!
Credentials
The skill accepts email_user and email_auth_code as inputs (appropriate for IMAP access). However, the ai_grader module expects OPENAI_API_KEY via environment variable but the skill metadata does not declare this credential. That omission is significant because student source code will be sent to a third-party API using that key. No other unrelated credentials are requested, but the undeclared API key and unannounced external transmission are disproportionate to what the SKILL.md communicates.
Persistence & Privilege
The skill does not request always:true and does not modify other skills or system-wide settings. It stores files under data/... within the skill workspace. Persistence and privilege level are reasonable for the task, but combined with execution of untrusted code this still poses runtime risk.
What to consider before installing
This skill mostly does what it says, but there are several red flags you should resolve before using it with real student data or credentials: - Undeclared OpenAI usage: The grader reads student code and calls OpenAI via OPENAI_API_KEY, but that key is not declared in the skill metadata and not listed in requirements.txt. Ask the author to declare OPENAI_API_KEY as a required credential and add the openai package to requirements. - External data exfiltration: Student source files are sent to an external AI provider (OpenAI). If student code is sensitive/personal, obtain consent or avoid sending it externally. - Executing untrusted code: The skill runs student .py files with subprocess.run. This can run arbitrary malicious code. Only run in an isolated, ephemeral sandbox/container with no sensitive network/filesystem access. - Unsafe zip extraction: zip_ref.extractall is used without sanitizing paths (zip-slip). Ensure filenames are sanitized or extract inside a strict sandbox. - Missing templates/resources: template_manager returns templates/assignment_{id}, but no templates are bundled. Confirm where templates come from and ensure they are trustworthy. Recommended actions before installing or running: 1) Require the author to update skill.yaml to declare OPENAI_API_KEY and add openai to requirements.txt; document that student code will be sent to OpenAI. 2) Run the skill in a locked-down container or VM (no network or limited network) until you validate behavior. 3) Inspect or provide the templates directory, and consider local-only grading if you cannot allow external AI calls. 4) Patch code to validate zip entries and avoid path traversal; do not run student code on the host—use sandboxing/time/resource limits and consider static analysis instead of execution. 5) If you must use it, use a throwaway QQ account and rotate its auth code afterwards. Given these gaps and risky behaviors, treat the skill as suspicious until the author addresses the above points.

Like a lobster shell, security has layers — review code before you run it.

latestvk97as4fxycpmv8bhh7kw5490gx83s5r7

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Comments