Skill Trust Decision

asiasea-bi

BI数据代理工具通过Base64编码将API凭证嵌入可公开访问的HTML报告中,绕过文档声明的凭证隔离机制,存在认证令牌外泄风险。

Install decision first Source: Manual upload Scanned: Apr 5, 2026
Files 5
Artifacts 11
Violations 2
Findings 4
Most direct threat evidence
01
用户通过自然语言查询BI数据,触发handle函数 Entry · main.py
02
获取业务系统认证令牌并存入session Escalation · main.py
03
generate_html_report将API URL和auth headers base64编码嵌入HTML Escalation · main.py

Why this conclusion was reached

2/4 dimensions flagged
Block
Declared vs actual capability

2 undeclared or violating capabilities were inferred.

Review
Hidden execution and egress

11 lower-risk artifacts were extracted and still need context.

Block
Attack chain and severe findings

The report includes 4 attack-chain steps and 2 severe findings.

Review
Dependencies and supply chain hygiene

1 dependency or supply-chain issues need attention.

Attack Chain

01
用户通过自然语言查询BI数据,触发handle函数

Entry · main.py:373

02
获取业务系统认证令牌并存入session

Escalation · main.py:130

03
generate_html_report将API URL和auth headers base64编码嵌入HTML

Escalation · main.py:167

04
HTML报告上传至OSS公开访问,攻击者获取预览URL后可提取凭证调用业务API

Impact · main.py:112

What drove the risk score up

凭证混淆编码 +25

main.py:167-170 使用base64编码API配置,注释称'防止非技术人员读取',实际目的是隐藏凭证传输

凭证外泄HTML报告 +25

main.py:172 将包含auth headers的完整配置base64编码后嵌入可公开访问的HTML报告,任何人可通过预览URL获取凭证

阴影功能-文档未声明 +10

SKILL.md声称'凭证隔离'和'静态DOM快照安全',但代码将凭证嵌入HTML并通过fetch直连业务API

Most important evidence

High Credential Theft

API认证凭证通过Base64编码嵌入可公开访问的HTML

generate_html_report函数将包含完整API URL和认证headers的配置对象base64编码后嵌入HTML报告。<script>标签内通过atob()解码并使用fetch直连业务API(e.asagroup.cn)。这意味着任何获得报告预览URL的人都可以提取凭证并调用后端系统。

main.py:167-172
禁止将认证凭证嵌入客户端资源。使用服务端代理模式:客户端仅提交查询参数,服务端持有凭证并转发请求。
High Doc Mismatch

文档声明与实际行为严重不符

SKILL.md声称'凭证隔离,确保核心物理数据的绝对安全',但代码实际将凭证通过base64编码嵌入HTML,客户端可直接访问业务API。这构成典型的文档欺骗行为。

SKILL.md:1-36
文档必须如实描述凭证处理方式。若功能需要客户端直连API,应使用短期令牌而非持久凭证。
Medium Obfuscation

代码混淆以规避人工审查

代码注释'混淆 API 配置,防止非技术人员直接读取明文 Token'表明有意隐藏凭证传输行为。这种混淆在正常业务代码中无合理理由。

main.py:167
添加混淆行为的合理解释或移除该机制。凭证应通过安全通道传递而非编码隐藏。
Medium Supply Chain

外部CDN依赖且无完整性校验

HTML报告从jindengta-archive.oss-cn-beijing.aliyuncs.com加载ECharts库,无SRI(subresource integrity)校验,存在CDN被篡改或供应链攻击风险。

main.py:167
优先使用本地静态资源或npm包内嵌。若必须使用CDN,添加SRI校验。

Declared capability vs actual capability

Network Block
Declared READ
Inferred WRITE
main.py:167-172 将API凭证编码后嵌入HTML,通过客户端fetch外传
Filesystem Block
Declared NONE
Inferred READ
main.py:25-45 读写.session_{user_id}.json存储认证令牌

Suspicious artifacts and egress

Medium External URL
https://o.yayuit.cn/dw/api/auth/supported-systems

main.py:84

Medium External URL
https://o.yayuit.cn/dw/api/system/api-registry?system_id=

main.py:93

Medium External URL
https://o.yayuit.cn/dw/api/auth/system-token?system_id=

main.py:102

Medium External URL
https://o.yayuit.cn/dw/api/skills/archive/upload

main.py:112

Medium External URL
https://o.yayuit.cn/dw/api/skills/archive/publish

main.py:125

Medium External URL
https://jindengta-archive.oss-cn-beijing.aliyuncs.com/theme/web/bi/echarts.min.js

main.py:167

Medium External URL
https://e.asagroup.cn/asae-e/yearBudget/query

main.py:598

Medium External URL
https://e.asagroup.cn/asae-e/bx

main.py:609

Medium External URL
https://o.yayuit.cn/dw/api/system/api-registry

skill.json:10

Medium External URL
https://o.yayuit.cn/dw/api/auth/system-token

skill.json:11

Info Email
[email protected]

README.md:32

Dependencies and supply chain

PackageVersionSourceKnown vulnNotes
requests * pip No 第三方HTTP库,无版本锁定
jindengta-archive.oss-cn-beijing.aliyuncs.com/echarts.min.js unknown CDN No 外部CDN资源,无SRI校验

File composition

5 files · 779 lines
Python 1 files · 652 linesMarkdown 3 files · 111 linesJSON 1 files · 16 lines
Files of concern · 4
main.py Python · 652 lines
API认证凭证通过Base64编码嵌入可公开访问的HTML · 代码混淆以规避人工审查 · 外部CDN依赖且无完整性校验 · https://o.yayuit.cn/dw/api/auth/supported-systems · https://o.yayuit.cn/dw/api/system/api-registry?system_id= · https://o.yayuit.cn/dw/api/auth/system-token?system_id= · https://o.yayuit.cn/dw/api/skills/archive/upload · https://o.yayuit.cn/dw/api/skills/archive/publish · https://jindengta-archive.oss-cn-beijing.aliyuncs.com/theme/web/bi/echarts.min.js · https://e.asagroup.cn/asae-e/yearBudget/query · https://e.asagroup.cn/asae-e/bx
README.md Markdown · 43 lines
SKILL.md Markdown · 36 lines
文档声明与实际行为严重不符
skill.json JSON · 16 lines
https://o.yayuit.cn/dw/api/system/api-registry · https://o.yayuit.cn/dw/api/auth/system-token
Other files · LICENSE.md

Security positives

会话管理采用用户隔离,session文件名经过sanitize处理
时间解析支持多种自然语言表达,覆盖常用场景
错误处理较完善,有try-except和业务层code校验
使用类型提示增加代码可读性