可信 — 风险评分 5/100
上次扫描:1 天前 重新扫描
5 /100
canvas-lms-student
Read-only Canvas LMS integration for student workflows — list courses, assignments, download files, export deadlines to calendar, search content
A straightforward, read-only Canvas LMS integration skill with clean code, accurate documentation, and no malicious behavior detected.
技能名称canvas-lms-student
分析耗时52.4s
引擎pi
可以安装
Approve for use. This skill performs exactly what it declares — read-only access to Canvas LMS course data — using the official canvasapi library with no hidden functionality.

安全发现 2 项

严重性 安全发现 位置
低危
Shell permission declared but not used 文档欺骗
SKILL.md metadata declares 'anyBins: python3' and implies shell:WRITE capability, but no script executes shell commands, subprocess, or os.system calls. All functionality is pure Python I/O and HTTP.
anyBins:
        - python3
        - python
→ Remove anyBins from metadata if no binary execution is intended, or add shebang scripts if CLI wrapper is planned.
SKILL.md:9
提示
Dependencies use caret upper bounds 供应链
requirements.txt specifies 'canvasapi>=3.0.0' and 'requests>=2.25.0' with no upper bound, which is standard for pip but means a major breaking version bump could silently change behavior.
canvasapi>=3.0.0
requests>=2.25.0
→ Consider pinning to a specific minor version (e.g., canvasapi>=3.0.0,<4.0.0) for reproducibility.
requirements.txt:1
资源类型声明权限推断权限状态证据
文件系统 WRITE WRITE ✓ 一致 download_files.py writes to user-specified --output dir; get_assignment_detail.p…
网络访问 READ READ ✓ 一致 All scripts use canvasapi/requests GET only; no POST, PUT, DELETE, or PATCH call…
命令执行 WRITE NONE ✓ 一致 No subprocess, os.system, or shell execution found in any script; only standard …
环境变量 READ READ ✓ 一致 canvas_client.py reads CANVAS_BASE_URL and CANVAS_API_TOKEN only; token used sol…
技能调用 NONE NONE Scripts only call each other via Python import (list_courses.resolve_course_iden…
剪贴板 NONE NONE No clipboard access detected
浏览器 NONE NONE No browser automation or WebFetch
数据库 NONE NONE No database access
7 项发现
🔗
中危 外部 URL 外部 URL
https://your-school.instructure.com
README.md:54
🔗
中危 外部 URL 外部 URL
https://canvas.university.edu
SKILL.md:44
🔗
中危 外部 URL 外部 URL
https://canvas.instructure.com/api/v1/
references/api-overview.md:10
🔗
中危 外部 URL 外部 URL
https://canvas.university.edu/api/v1/
references/api-overview.md:11
🔗
中危 外部 URL 外部 URL
https://canvas.instructure.com/api/v1/courses
references/api-overview.md:19
🔗
中危 外部 URL 外部 URL
https://calendar.google.com
scripts/export_calendar.py:160
📧
提示 邮箱 邮箱地址
[email protected]
README.md:29

目录结构

16 文件 · 71.0 KB · 2248 行
Python 7f · 1532L Markdown 8f · 714L Text 1f · 2L
├─ 📁 references
│ ├─ 📝 api-overview.md Markdown 67L · 1.3 KB
│ ├─ 📝 assignments.md Markdown 57L · 1.4 KB
│ ├─ 📝 calendar-export.md Markdown 66L · 1.6 KB
│ ├─ 📝 courses.md Markdown 51L · 1.1 KB
│ ├─ 📝 files.md Markdown 59L · 1.4 KB
│ └─ 📝 search.md Markdown 78L · 1.8 KB
├─ 📁 scripts
│ ├─ 🐍 canvas_client.py Python 135L · 4.6 KB
│ ├─ 🐍 download_files.py Python 271L · 9.1 KB
│ ├─ 🐍 export_calendar.py Python 170L · 5.8 KB
│ ├─ 🐍 get_assignment_detail.py Python 237L · 7.6 KB
│ ├─ 🐍 get_assignments.py Python 242L · 8.7 KB
│ ├─ 🐍 list_courses.py Python 176L · 6.0 KB
│ └─ 🐍 search_canvas.py Python 301L · 10.5 KB
├─ 📝 README.md Markdown 100L · 2.1 KB
├─ 📄 requirements.txt Text 2L · 34 B
└─ 📝 SKILL.md Markdown 236L · 8.0 KB

依赖分析 2 项

包名版本来源已知漏洞备注
canvasapi >=3.0.0 pip Official Canvas LMS Python SDK; no version cap
requests >=2.25.0 pip Standard HTTP library; no version cap

安全亮点

✓ All scripts are read-only; no write, delete, or submit operations to Canvas API
✓ Uses official canvasapi library exclusively — no raw HTTP except for file downloads via requests with Bearer token
✓ No credential exfiltration: CANVAS_API_TOKEN is used only for Canvas API authentication
✓ No shell execution, subprocess, or os.system calls in any script
✓ No base64 encoding, obfuscation, or anti-analysis patterns
✓ File downloads go to user-specified output directory only
✓ SKILL.md accurately describes all tool behaviors and limitations
✓ No access to sensitive local paths (~/.ssh, ~/.aws, .env)
✓ No hidden instructions in comments or strings
✓ Clean error handling that doesn't suppress security-relevant exceptions
✓ No persistence mechanisms (no cron, startup scripts, or backdoors)