rewrite_question
技能功能与声明一致,但存在硬编码外部IP(47.77.199.56)和内嵌JWT凭证(作为默认fallback)等高危指标,构成凭证泄漏和潜在数据外送风险。
为什么得出这个结论
3/4 个维度触发发现 2 项声明之外的能力或越权行为。
提取到 1 个高危 IOC 或外联信号。
报告包含 3 步攻击链,另有 2 项高危或严重发现。
发现 3 项需要关注的依赖或供应链线索。
攻击链
初始入口 · rewrite_question.py:579
权限提升 · rewrite_question.py:579
最终危害 · rewrite_question.py:559
风险分是怎么被拉高的
47.77.199.56硬编码为GEMINI_API_URL默认值(out:network:WRITE),且HTTP无TLS保护
rewrite_question.py:579-588 内嵌约500字符JWT作为默认token,暴露于源码中
API_KEY和token无版本锁定,若代码库被攻击则凭证直接泄露
最关键的证据
硬编码JWT token暴露于源码
_get_gemini_config()函数中内嵌约500字符JWT Bearer token作为默认fallback值,当环境变量未配置时使用。此token对应企业内部BI系统身份认证,直接暴露于源码存在被提取利用风险。
rewrite_question.py:579 硬编码外部IP地址作为默认API端点
GEMINI_API_URL的默认值为http://47.77.199.56/api/v1beta,指向外部IP地址而非本地服务。且使用HTTP(非HTTPS)传输,存在中间人攻击风险。此IP在SKILL.md中未声明。
rewrite_question.py:559 第三方依赖无版本锁定
requirements.txt/pip依赖未指定版本范围(pymilvus、httpx、python-dotenv等),存在供应链攻击风险。
rewrite_question.py:1 外部网络连接未在SKILL.md中声明
SKILL.md声明的能力仅限于'文本处理/LLM调用',但未说明默认连接到外部IP 47.77.199.56,也未说明Milvus数据库连接。实际网络行为超出文档声明范围。
SKILL.md:1 声明能力 vs 实际能力
rewrite_question.py:614 读取.env文件 rewrite_question.py:559 硬编码外部IP作为默认API端点 index.js:55 使用spawn调用Python,无shell注入 rewrite_question.py:563-566 读取GEMINI_API_KEY/TOKEN等环境变量 可疑产物与外联
47.77.199.56 rewrite_question.py:559
http://47.77.199.56/api/v1beta rewrite_question.py:559
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| httpx | * | pip | 否 | 无版本锁定 |
| pymilvus | * | pip | 否 | 无版本锁定;连接外部向量数据库 |
| python-dotenv | * | pip | 否 | 无版本锁定 |
文件构成
rewrite_question.py SKILL.md