安全决策报告

rewrite_question

技能功能与声明一致,但存在硬编码外部IP(47.77.199.56)和内嵌JWT凭证(作为默认fallback)等高危指标,构成凭证泄漏和潜在数据外送风险。

安装决策优先 来源: 手动上传 扫描时间: 2026/4/5
文件 3
IOC 2
越权项 2
发现 4
最直接的威胁证据
01
攻击者获得源代码仓库读取权限或环境变量访问权 初始入口 · rewrite_question.py
02
从源码中提取硬编码JWT token和API_KEY 权限提升 · rewrite_question.py
03
使用提取的凭证向47.77.199.56的API进行认证,获取BI系统访问权限或窃取Milvus数据库中的QA对数据 最终危害 · rewrite_question.py

为什么得出这个结论

3/4 个维度触发
阻止
声明与实际能力

发现 2 项声明之外的能力或越权行为。

阻止
隐藏执行与外联

提取到 1 个高危 IOC 或外联信号。

阻止
攻击链与高危发现

报告包含 3 步攻击链,另有 2 项高危或严重发现。

复核
依赖与供应链卫生

发现 3 项需要关注的依赖或供应链线索。

攻击链

01
攻击者获得源代码仓库读取权限或环境变量访问权

初始入口 · rewrite_question.py:579

02
从源码中提取硬编码JWT token和API_KEY

权限提升 · rewrite_question.py:579

03
使用提取的凭证向47.77.199.56的API进行认证,获取BI系统访问权限或窃取Milvus数据库中的QA对数据

最终危害 · rewrite_question.py:559

风险分是怎么被拉高的

硬编码外部IP为默认API端点 +15

47.77.199.56硬编码为GEMINI_API_URL默认值(out:network:WRITE),且HTTP无TLS保护

硬编码JWT凭证内嵌于源码 +15

rewrite_question.py:579-588 内嵌约500字符JWT作为默认token,暴露于源码中

凭证暴露于源码的供应链风险 +10

API_KEY和token无版本锁定,若代码库被攻击则凭证直接泄露

最关键的证据

高危 凭证窃取

硬编码JWT token暴露于源码

_get_gemini_config()函数中内嵌约500字符JWT Bearer token作为默认fallback值,当环境变量未配置时使用。此token对应企业内部BI系统身份认证,直接暴露于源码存在被提取利用风险。

rewrite_question.py:579
移除代码中的硬编码token,强制要求通过环境变量或.env文件注入。添加启动时校验逻辑,当检测到使用默认凭证时报错退出。
高危 敏感访问

硬编码外部IP地址作为默认API端点

GEMINI_API_URL的默认值为http://47.77.199.56/api/v1beta,指向外部IP地址而非本地服务。且使用HTTP(非HTTPS)传输,存在中间人攻击风险。此IP在SKILL.md中未声明。

rewrite_question.py:559
将默认值改为localhost或明确提示需要配置;强制使用HTTPS;调查47.77.199.56的IP归属,确认是否为授权的内部API网关。
中危 供应链

第三方依赖无版本锁定

requirements.txt/pip依赖未指定版本范围(pymilvus、httpx、python-dotenv等),存在供应链攻击风险。

rewrite_question.py:1
为所有pip依赖添加版本锁定(如httpx>=0.27.0,<1.0),定期更新依赖审计漏洞。
低危 文档欺骗

外部网络连接未在SKILL.md中声明

SKILL.md声明的能力仅限于'文本处理/LLM调用',但未说明默认连接到外部IP 47.77.199.56,也未说明Milvus数据库连接。实际网络行为超出文档声明范围。

SKILL.md:1
在SKILL.md中明确声明需要访问的外部服务地址和凭证来源。

声明能力 vs 实际能力

文件系统 通过
声明 READ
推断 READ
rewrite_question.py:614 读取.env文件
网络访问 阻止
声明 NONE
推断 WRITE
rewrite_question.py:559 硬编码外部IP作为默认API端点
命令执行 通过
声明 NONE
推断 NONE
index.js:55 使用spawn调用Python,无shell注入
环境变量 阻止
声明 NONE
推断 READ
rewrite_question.py:563-566 读取GEMINI_API_KEY/TOKEN等环境变量

可疑产物与外联

高危 IP 地址
47.77.199.56

rewrite_question.py:559

中危 外部 URL
http://47.77.199.56/api/v1beta

rewrite_question.py:559

依赖与供应链

包名版本来源漏洞备注
httpx * pip 无版本锁定
pymilvus * pip 无版本锁定;连接外部向量数据库
python-dotenv * pip 无版本锁定

文件构成

3 个文件 · 943 行
Python 1 个文件 · 769 行JavaScript 1 个文件 · 128 行Markdown 1 个文件 · 46 行
需关注文件 · 2
rewrite_question.py Python · 769 行
硬编码JWT token暴露于源码 · 硬编码外部IP地址作为默认API端点 · 第三方依赖无版本锁定 · 47.77.199.56 · http://47.77.199.56/api/v1beta
SKILL.md Markdown · 46 行
外部网络连接未在SKILL.md中声明
其他文件 · index.js

安全亮点

功能逻辑清晰,与SKILL.md声明的用途一致(上下文重写)
无subprocess/shell管道执行,无命令注入风险
无eval()/exec()调用,代码无明显混淆
无遍历os.environ匹配敏感关键字的凭证收割行为
HTTP POST仅发往配置的API端点,无数据外泄到第三方