扫描报告
20 /100
bp-monthly-report-skill
Use when drafting a monthly BP report from a fixed template, BP period and node identifiers, and real BP or progress-report evidence. This skill enforces a staged workflow: normalize the template, map BP anchors, collect evidence, build fine-grained cards, then draft the report in a fixed section order.
This is a legitimate BP monthly report generation skill with undeclared script execution capabilities. The scripts perform business-critical API calls to an internal company BP system and generate structured report artifacts. No malicious behavior detected, but the gap between documented and actual capabilities warrants concern.
可以安装
Declare all script capabilities (network:READ via internal API calls, filesystem:WRITE for artifact generation, shell:WRITE for YAML parsing) explicitly in SKILL.md. Document that Python scripts under scripts/ handle the heavy lifting. Pin the requests library version. Hardcode the internal API base URL as a constant rather than repeating it across scripts.
安全发现 4 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 中危 | Doc-to-code capability mismatch | SKILL.md:1 |
| 中危 | Hardcoded internal API base URL repeated across scripts | scripts/collect_bp_month_evidence.py:28:28 |
| 低危 | Unpinned requests dependency | scripts/collect_bp_month_evidence.py:16:16 |
| 低危 | Hardcoded absolute paths in render scripts | scripts/render_chenshuting_march_scheme_reports.py:209:209 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 网络访问 | NONE | READ | ✗ 越权 | scripts/collect_bp_month_evidence.py:31 — requests.post() to internal BP API; sc… |
| 命令执行 | NONE | WRITE | ✗ 越权 | scripts/build_dual_report_artifacts.py:94 — subprocess.check_output(['ruby', '-e… |
| 文件系统 | NONE | WRITE | ✗ 越权 | scripts/build_dual_report_artifacts.py — write_text(), Path.write_text(), shutil… |
| 环境变量 | NONE | NONE | — | No os.environ iteration or credential access found |
1 项发现
中危 外部 URL 外部 URL
https://sg-al-cwork-web.mediportal.com.cn/open-api scripts/collect_bp_month_evidence.py:28 目录结构
19 文件 · 213.8 KB · 5623 行 Markdown 13f · 3015L
Python 6f · 2608L
├─
▾
assets
│ ├─
P001-T001-MONTH-TPL-01_月报模板_v1.md
Markdown
│ └─
人力资源中心_月报填写规范_组织示例_v1.md
Markdown
├─
▾
references
│ ├─
artifact-layout.md
Markdown
│ ├─
bp-system.md
Markdown
│ ├─
business-description.zh-CN.md
Markdown
│ ├─
design-solution.zh-CN.md
Markdown
│ ├─
fill-patterns.md
Markdown
│ ├─
rolling-baseline.md
Markdown
│ ├─
section-order.md
Markdown
│ ├─
source-schema.md
Markdown
│ ├─
traffic-lights.md
Markdown
│ └─
workflow.md
Markdown
├─
▾
scripts
│ ├─
build_dual_report_artifacts.py
Python
│ ├─
collect_bp_month_evidence.py
Python
│ ├─
dump_bp_anchor_map.py
Python
│ ├─
generate_scheme_v2_monthly_reports.py
Python
│ ├─
render_chenshuting_march_scheme_reports.py
Python
│ └─
render_fuzhongming_january_scheme_v2.py
Python
└─
SKILL.md
Markdown
依赖分析 2 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
requests | * | pip | 否 | Version not pinned — imported without version constraint in collect_bp_month_evidence.py |
subprocess | stdlib | python3 stdlib | 否 | Used in build_dual_report_artifacts.py for YAML parsing via Ruby |
安全亮点
✓ No credential harvesting — app_key is passed as a CLI argument, not scraped from environment or files
✓ No data exfiltration — all network traffic stays within the organization's internal BP API domain
✓ No obfuscation techniques — no base64 encoding, eval(), or atob() patterns found
✓ No sensitive path access — scripts do not access ~/.ssh, ~/.aws, .env, or similar credential paths
✓ No external IP connections — all network targets resolve to the same internal company domain
✓ No reverse shell, C2, or remote code execution backdoors
✓ No hidden instructions in HTML comments or documentation
✓ No curl|bash or wget|sh remote script execution patterns
✓ Report rendering scripts only perform text substitution and file writes within controlled directories