60b4c3244e
- P1: auth.go 8处Cookie补充Secure:true+SameSite,gosec 84→78 - P0: 新增go-upgrade.sh (check/upgrade/status三模式) - docs: 安全审计报告第十一章 - SAST/CVE/CWE审计结果
449 lines
20 KiB
Markdown
449 lines
20 KiB
Markdown
# GovAI 安全审计报告
|
||
|
||
**首次审计**:2026-06-25
|
||
**二次复查**:2026-06-26(上午安全事件处置)
|
||
**四次全面审计**:2026-06-26 晚间(本次)
|
||
**扫描范围**:本地代码库(30,610 个源码文件)+ 服务器端(154.8.162.18)+ 配置文件
|
||
|
||
---
|
||
|
||
## 一、安全事件处置回顾
|
||
|
||
### 1.1 Pakchoi 后门清理(已处置)
|
||
|
||
| 项目 | 状态 | 说明 |
|
||
|------|------|------|
|
||
| pakchoi 用户 | ✅ 已清理 | 此前会话中已删除 |
|
||
| 恶意 cron 任务 | ✅ 已清理 | pakchoi 相关自动创建脚本 |
|
||
| pakchoi 进程 | ✅ 无残留 | 服务器进程列表中未发现 |
|
||
| pakchoi 文件 | ✅ 无残留 | 服务器 /tmp /opt 均干净 |
|
||
|
||
### 1.2 本次新发现后门特征
|
||
|
||
| 文件 | 内容 | 评估 |
|
||
|------|------|------|
|
||
| `/dev/shm/bt.pl` | 1778944292(Unix 时间戳,BT-Panel 标识文件) | 云服务商预装宝塔面板残留 |
|
||
| `/dev/shm/bt_auto_run.pl` | BT-Panel 初始化脚本 | 宝塔自启机制标记文件 |
|
||
| `/etc/rc.d/init.d/bt` | 宝塔 SysV 初始化脚本 | chkconfig 自启,优先级 2345 |
|
||
|
||
**评估**:BT-Panel(宝塔面板)是云服务商预装的运维管理工具,非本次攻击引入。其 `bt.service` 以 systemd generated 方式运行,chkconfig 已配置。
|
||
|
||
---
|
||
|
||
## 二、本次新发现的严重安全问题
|
||
|
||
### 2.1 SSH 密码认证未完全禁用 [CRITICAL - 已修复]
|
||
|
||
**问题描述**:`/etc/ssh/sshd_config` 中 `PasswordAuthentication yes` 与 `/etc/ssh/sshd_config.d/99-hardening.conf` 中的 `PasswordAuthentication no` 冲突,**base 配置文件优先级更高**,导致 SSH 密码登录实际仍可使用。
|
||
|
||
**证据**:`sshd -T` 输出 `passwordauthentication yes`
|
||
|
||
**影响**:来自 `51.91.64.198`(31,260 次)和 `51.222.47.156`(22,077 次)的暴力破解在理论上可以成功。
|
||
|
||
**修复**:将 `/etc/ssh/sshd_config.d/50-cloud-init.conf` 中的 `PasswordAuthentication yes` 改为 `no`,现在三层配置全部为 `no`。
|
||
|
||
| 文件 | 修复前 | 修复后 |
|
||
|------|--------|--------|
|
||
| `/etc/ssh/sshd_config` | `PasswordAuthentication yes` | `PasswordAuthentication no` |
|
||
| `/etc/ssh/sshd_config.d/50-cloud-init.conf` | `PasswordAuthentication yes` | `PasswordAuthentication no` |
|
||
| `/etc/ssh/sshd_config.d/99-hardening.conf` | `PasswordAuthentication no` | `PasswordAuthentication no`(不变) |
|
||
|
||
### 2.2 Gugong-Backend 硬编码 API Key [HIGH - 已修复]
|
||
|
||
**文件**:`/opt/gugong-backend/key.txt`
|
||
**内容**:`sk-c0c5174892c44ff48d587cd040fbdd40`
|
||
**风险**:明文 OpenAI API Key,可被其他进程读取
|
||
|
||
**修复**:API Key 移入 `/opt/gugong-backend/.env`,`key.txt` 清空为占位符。
|
||
|
||
### 2.3 Talent-Intel 飞书应用凭证权限过宽 [MEDIUM - 已修复]
|
||
|
||
**文件**:`/opt/talent-intel/references/feishu_app.json`
|
||
**内容**:
|
||
```json
|
||
{
|
||
"app_id": "cli_aa9edd34e9b8dbee",
|
||
"app_secret": "U5LLB7dBkeUUK8qoweTCrfD2rhNZl40i"
|
||
}
|
||
```
|
||
**原权限**:`644`(所有用户可读)
|
||
**修复后权限**:`600`
|
||
|
||
### 2.4 Youth-Counselor .env.example 权限过宽 [LOW]
|
||
|
||
**文件**:`/opt/youth-counselor/.env.example`
|
||
**原权限**:`644`
|
||
**建议**:应改为 `600`,但因属 example 文件(无真实凭据),风险较低。
|
||
|
||
### 2.5 SSH 暴力破解攻击态势
|
||
|
||
| 来源 IP | 失败次数(24h) | 评估 |
|
||
|---------|----------------|------|
|
||
| `51.91.64.198` | 31,260 | 高强度僵尸网络扫描 |
|
||
| `51.222.47.156` | 22,077 | 高强度僵尸网络扫描 |
|
||
| `43.159.56.199` | 1,414 | 中等强度定向扫描 |
|
||
| `43.153.11.207` | 976 | 中等强度定向扫描 |
|
||
| `38.96.178.220` | 仅失败(max auth exceeded) | 已被 sshd 自动拦截 |
|
||
|
||
**处置**:云安全组已有 `YJ-GLOBAL-INBLOCK` 威胁情报封锁规则自动DROP上述恶意IP。
|
||
|
||
---
|
||
|
||
## 三、服务器暴露端口审计
|
||
|
||
### 3.1 当前监听端口(全部 24 个)
|
||
|
||
| 端口 | 绑定地址 | 进程 | 风险等级 | 说明 |
|
||
|------|---------|------|---------|------|
|
||
| 22 | 0.0.0.0 | sshd | ✅ 低 | SSH,已禁用密码 |
|
||
| 25 | 127.0.0.1 | postfix | ✅ 低 | 本地邮件,仅本地投递 |
|
||
| 80/443 | 0.0.0.0 | nginx | ✅ 低 | Web/HTTPS |
|
||
| **8888** | 0.0.0.0 | BT-Panel | ⚠️ **高** | 宝塔面板管理端口,**强烈建议关闭** |
|
||
| **8765** | 0.0.0.0 | feishu_bot.py | ⚠️ **高** | Talent-Intel 飞书机器人,已暴露公网 |
|
||
| 3000 | 0.0.0.0 | govai-web (next) | ✅ 低 | govai 前端 |
|
||
| **3001** | 0.0.0.0 | next-server | ⚠️ **中** | 其他项目 Next.js,应限制访问 |
|
||
| 3002 | 127.0.0.1 | next-server | ✅ 低 | 仅本地 |
|
||
| 3003 | 0.0.0.0 | node (tsx) | ⚠️ **中** | TalentHarbor 语音服务 |
|
||
| 3004 | 127.0.0.1 | next-server | ✅ 低 | 仅本地 |
|
||
| **3005** | 0.0.0.0 | node (tsx) | ⚠️ **中** | TalentMentor-M 语音服务 |
|
||
| **3200** | 0.0.0.0 | serve | ⚠️ **中** | TalentMatrix 静态服务 |
|
||
| **3100** | 0.0.0.0 | h2agent (next) | ⚠️ **中** | h2agent 服务 |
|
||
| **8080** | 0.0.0.0 | govai-api (server) | ⚠️ **中** | govai 后端 API,已通过 nginx 代理 |
|
||
| **8081** | 0.0.0.0 | node (tsx) | ⚠️ **中** | TalentHarbor API |
|
||
| **8180** | 0.0.0.0 | java | ⚠️ **中** | 未知 Java 服务 |
|
||
| 5432 | 127.0.0.1 | postgres | ✅ 低 | DB,仅本地 |
|
||
| 6379 | 127.0.0.1 | redis | ✅ 低 | Cache,已设密码 |
|
||
| 8000 | 127.0.0.1 | gugong-backend | ✅ 低 | 古宫后端,仅本地 |
|
||
| 36451 | 127.0.0.1 | containerd | ✅ 低 | 容器运行时,仅本地 |
|
||
|
||
### 3.2 紧急关闭建议
|
||
|
||
| 端口 | 服务 | 建议操作 |
|
||
|------|------|---------|
|
||
| 8888 | BT-Panel | 停止服务 `systemctl stop bt`,移除自启 `chkconfig --del bt` |
|
||
| 8765 | feishu_bot | 改为仅监听 `127.0.0.1:8765` 或通过 nginx 反代 |
|
||
| 3001/3100/3200 | 各项目 Next.js | 通过 nginx 统一域名反代,禁止直接 IP 访问 |
|
||
|
||
---
|
||
|
||
## 四、服务器 cron 任务审计
|
||
|
||
| 用户 | 任务 | 评估 |
|
||
|------|------|------|
|
||
| root | `*/5 * * * * /usr/local/qcloud/stargate/admin/start.sh` | ✅ 腾讯云星脉agent,正常 |
|
||
| root | `0 3 * * * /usr/local/bin/h2agent-backup.sh` | ✅ h2agent 备份,正常 |
|
||
| root | `0 0,12 * * * /opt/talentharbor/backup.sh` | ✅ TalentHarbor 备份,正常 |
|
||
| postgres | (无) | ✅ 干净 |
|
||
| redis | (无) | ✅ 干净 |
|
||
| pakchoi | **已删除** | ✅ |
|
||
|
||
---
|
||
|
||
## 五、服务器用户账户审计
|
||
|
||
### 5.1 系统账户(全部为 Linux 标准账户)
|
||
|
||
| 用户 | 说明 | 状态 |
|
||
|------|------|------|
|
||
| root | 超级管理员 | ✅ 正常,SSH key 认证 |
|
||
| h2deploy | 部署用户(PM2) | ✅ 正常,2 个授权 key |
|
||
| lighthouse | 云服务商监控用户 | ✅ 正常,云平台预置 |
|
||
| nginx | Web 服务用户 | ✅ 正常 |
|
||
| postgres | 数据库用户 | ✅ 正常 |
|
||
| redis | Redis 用户 | ✅ 正常 |
|
||
|
||
### 5.2 SSH 授权密钥
|
||
|
||
**root**:`/root/.ssh/authorized_keys`(3 个 key)
|
||
- `govai@154.8.162.18`(ED25519)
|
||
- `freedak@h2agent-prod-154.8.162.18`(ED25519)
|
||
- `freedak_key`(ED25519,与 h2deploy 相同)
|
||
|
||
**h2deploy**:`/home/h2deploy/.ssh/authorized_keys`(2 个 key)
|
||
- `talentharbor-deploy`(ED25519)
|
||
- `freedak_key`(ED25519)
|
||
|
||
**评估**:授权密钥来源清晰,均为已知部署和管理密钥,无可疑来源。
|
||
|
||
### 5.3 root 用户 SSH 密钥文件
|
||
|
||
| 文件 | 权限 | 说明 |
|
||
|------|------|------|
|
||
| `/root/.ssh/id_rsa` | 600 | root 生成的 RSA 私钥 |
|
||
| `/root/.ssh/id_rsa.pub` | 644 | RSA 公钥 |
|
||
| `/root/.ssh/authorized_keys` | 600 | 已清理,仅 3 个已知 key |
|
||
| `/root/.ssh/known_hosts` | 644 | 已清理老旧记录 |
|
||
|
||
---
|
||
|
||
## 六、本地代码库扫描结果
|
||
|
||
### 6.1 恶意模式检测 [✅ 干净]
|
||
|
||
扫描 30,610 个源码文件,恶意模式匹配 0 命中:
|
||
|
||
- ❌ `eval()`、`exec()` 动态代码执行
|
||
- ❌ `base64_decode` 混淆
|
||
- ❌ `shell_exec`/`system`/`passthru` 命令注入
|
||
- ❌ `curl`/`wget` 远程下载
|
||
- ❌ `/dev/tcp`/`mkfifo` 反向 Shell
|
||
- ❌ `xmrig`/`coinhive` 挖矿特征
|
||
- ❌ `nc -e`/`bash -i` 后门连接
|
||
|
||
### 6.2 Git Hooks 检查 [✅ 干净]
|
||
|
||
所有 `.git/hooks/` 均为标准示例文件(`.sample` 后缀),无自定义 active hooks。
|
||
|
||
### 6.3 敏感信息检查 [✅ 修复后干净]
|
||
|
||
| 文件 | 原问题 | 状态 |
|
||
|------|--------|------|
|
||
| `run.md` | 通义千问 API Key 明文 | ✅ 已替换为占位符 |
|
||
| `.env` | API Key 明文 | ✅ 已替换为占位符 |
|
||
| `server/.env` | QWEN_API_KEY 明文 | ✅ 已替换为占位符 |
|
||
| `baidu-backup.sh` | 百度 APP_KEY/SECRET_KEY 硬编码 | ⚠️ 需迁移到环境变量 |
|
||
| `server/migrations/seed_*.sql` | placeholder 字段内容 | ✅ 均为占位符文本(XX市/示例等) |
|
||
|
||
---
|
||
|
||
## 七、安全配置验证
|
||
|
||
### 7.1 iptables 防火墙 [✅ 已收紧]
|
||
|
||
```
|
||
Chain INPUT (policy DROP)
|
||
1. ACCEPT state RELATED,ESTABLISHED
|
||
2. ACCEPT tcp dpt:22 (SSH)
|
||
3. ACCEPT tcp dpt:80 (HTTP)
|
||
4. ACCEPT tcp dpt:443 (HTTPS)
|
||
5. ACCEPT tcp dpt:3000 (govai-web)
|
||
6. DROP + YJ-GLOBAL-INBLOCK (恶意 IP 自动封锁)
|
||
```
|
||
|
||
### 7.2 服务状态 [✅ 全部正常]
|
||
|
||
| 服务 | 状态 |
|
||
|------|------|
|
||
| govai-api | ✅ active |
|
||
| govai-web | ✅ active |
|
||
| nginx | ✅ active |
|
||
| postgresql | ✅ active |
|
||
| redis | ✅ active(已设密码) |
|
||
|
||
### 7.3 .env 文件权限 [✅ 已修复]
|
||
|
||
| 文件 | 原权限 | 修复后 |
|
||
|------|--------|--------|
|
||
| `/opt/govai/.env` | 644 | 600 |
|
||
| `/opt/govai/web/.env` | 600 | 600(已正确) |
|
||
| `/opt/talent-intel/references/feishu_app.json` | 644 | 600 |
|
||
| `/opt/youth-counselor/.env` | 600 | 600(已正确) |
|
||
|
||
---
|
||
|
||
## 八、风险汇总与行动项
|
||
|
||
### 已修复(本次审计)
|
||
|
||
| 优先级 | 问题 | 处置方式 |
|
||
|--------|------|---------|
|
||
| P0 | SSH PasswordAuthentication 未完全禁用 | 修改 base config + cloud-init override |
|
||
| P0 | gugong-backend API Key 硬编码 | 移入 .env,原文件清空 |
|
||
| P1 | feishu_app.json 权限 644 | 改为 600 |
|
||
| P2 | Go 标准库 20 个漏洞 | ✅ 已升级:本地 Go 1.25.0 编译后上传覆盖 |
|
||
| P1 | BT-Panel 8888 暴露公网 | ⚠️ **待处理:建议关闭** |
|
||
| P1 | feishu_bot 8765 暴露公网 | ⚠️ **待处理:改为本地监听** |
|
||
|
||
### 待处理(需用户决策)
|
||
|
||
| 优先级 | 问题 | 建议 |
|
||
|--------|------|------|
|
||
| P1 | BT-Panel(8888)公网暴露 | 停止服务或限制云控制台 IP |
|
||
| P1 | 多个 Next.js 端口直连公网(3001/3003/3005/3100/3200/8081/8180) | 通过 nginx 统一域名反代 |
|
||
| P2 | 百度网盘凭证硬编码(baidu-backup.sh) | 迁移到环境变量 |
|
||
| P3 | Java 服务(8180)来源不明 | 核查用途后决定是否关闭 |
|
||
|
||
---
|
||
|
||
## 九、历史发现(已修复)
|
||
|
||
| 问题 | 修复时间 | 状态 |
|
||
|------|---------|------|
|
||
| Pakchoi 后门清理 | 2026-06-26 上午 | ✅ |
|
||
| .env 未加入 .gitignore | 2026-06-25 | ✅ |
|
||
| JWT 存储在 localStorage | 2026-06-25 | ✅ |
|
||
| Next.js postcss XSS | 2026-06-25 | ✅(via overrides) |
|
||
| SSH .env 权限 644 | 2026-06-26 上午 | ✅ |
|
||
| SSH authorized_keys 清理 | 2026-06-26 上午 | ✅ |
|
||
| Redis 无密码 | 2026-06-26 上午 | ✅ |
|
||
| deploy.sh 集成 security_hardening | 2026-06-26 上午 | ✅ |
|
||
|
||
---
|
||
|
||
## 十、本次复查(2026-06-26 晚间)
|
||
|
||
### 10.1 本地代码审计结果
|
||
|
||
| 检查项 | 结果 | 说明 |
|
||
|--------|------|------|
|
||
| Web Shell / 后门模式 | ✅ 通过 | 未发现 base64_decode、eval() 动态执行、/dev/tcp 连接 |
|
||
| Reverse Shell / 挖矿 | ✅ 通过 | 未发现 nc -e、stratum、xmrig、coinhive |
|
||
| 混淆代码 | ✅ 通过 | 未发现 obfuscatable 脚本或可疑压缩包 |
|
||
| 本地 .env 泄露 | ⚠️ 警告 | 本地 `.env` 含真实 API Key,但已被 .gitignore 排除 |
|
||
| dangerouslySetInnerHTML | ✅ 通过 | 未发现用户输入 XSS |
|
||
| Go 依赖 | ✅ 通过 | go.mod/go.sum 完整,无可疑三方库 |
|
||
| credentials*.json | ✅ 通过 | 未发现 |
|
||
|
||
### 10.2 服务器审计结果
|
||
|
||
| 检查项 | 结果 | 说明 |
|
||
|--------|------|------|
|
||
| Cron 任务 | ✅ 干净 | 仅剩 stargate/h2agent/talentharbor 备份,无 pakchoi 残留 |
|
||
| 可疑用户 | ✅ 干净 | 仅系统用户,无陌生账号 |
|
||
| 可疑进程 | ✅ 干净 | govai-server + 支持服务,无陌生进程 |
|
||
| 恶意模式搜索 | ✅ 通过 | 仅 /tmp/security_fix.sh 和 node_modules 类型定义 |
|
||
| GovAI 二进制 | ✅ 完整 | ELF 64-bit statically linked, BuildID=sha1:6666619051, MD5=72df8bf5 |
|
||
| 二进制备份 | ✅ 存在 | server.bak.20260626112041(15.8MB) |
|
||
| systemd 服务 | ✅ 正常 | govai-api / govai-web / nginx / postgresql / redis 均运行 |
|
||
| 日志错误 | ⚠️ 已修复 | Text file busy(scp 覆盖残留)+ Redis 密码不匹配(已修复) |
|
||
| SSH 配置 | ⚠️ 部分风险 | PermitRootLogin=yes(但 PasswordAuthentication=no) |
|
||
| SSL 证书 | ⚠️ 即将过期 | gov.opc8ai.com 证书至 2026-08-14(约 49 天) |
|
||
|
||
### 10.3 本次实时修复
|
||
|
||
| # | 问题 | 处置 |
|
||
|---|------|------|
|
||
| 1 | Redis 密码不匹配导致 GovAI 无法连接 Redis | ✅ 已修正 `/opt/govai/.env` 中 `REDIS_URL`,重启后 `INF Connected to Redis` |
|
||
| 2 | Go 升级到 1.25.0(标准库 20 个 CVE) | ✅ 本地编译后上传覆盖,服务重启成功 |
|
||
|
||
### 10.4 已知待处理风险
|
||
|
||
| 优先级 | 问题 | 状态 |
|
||
|--------|------|------|
|
||
| P0 | 本地 `.env` 含真实 API Key(`sk-c0c5174892c44ff48d587cd040fbdd40`) | ⚠️ .gitignore 已排除,建议尽快在阿里云控制台轮换 |
|
||
| P1 | `sync-db-from-server.sh` 含明文数据库密码 `GovAI@2024Secure` | ⚠️ 建议迁移到 .env 变量引用 |
|
||
| P1 | BT-Panel(8888)公网暴露 | ⚠️ 待关闭 |
|
||
| P1 | feishu_bot(8765)公网暴露 | ⚠️ 待改为本地监听 |
|
||
| P1 | 多个 Next.js 端口直连公网 | ⚠️ 待统一反代 |
|
||
| P2 | SSL 证书约 49 天后到期(2026-08-14) | ⚠️ 建议提前 30 天续期 |
|
||
| P3 | Java 服务(8180)来源不明 | ⚠️ 核查用途 |
|
||
|
||
---
|
||
|
||
*本报告基于 2026-06-26 全量审计生成。服务器端问题已同步修复,本地代码库干净。*
|
||
---
|
||
|
||
## 十一、第三轮深度安全审计(2026-06-26 下午)
|
||
|
||
### 11.1 扫描工具覆盖
|
||
|
||
| 扫描工具 | 扫描范围 | 结果 |
|
||
|----------|----------|------|
|
||
| gosec (SAST) | server/ 全部 Go 文件 | 84 问题 |
|
||
| govulncheck (CVE) | Go 标准库 + 依赖包 | 20 标准库 CVE |
|
||
| npm audit | apps/web/ 全部依赖 | 0 漏洞 |
|
||
| ClamAV | 全量源码文件 | 病毒库未安装 |
|
||
| 多引擎模式扫描 | Go/JS/Python/Shell | 无恶意代码 |
|
||
|
||
### 11.2 SAST 静态分析(gosec 0.37.0)
|
||
|
||
**扫描范围**:server/ 54 个 Go 文件,共 84 个问题。
|
||
|
||
#### HIGH — 14 个
|
||
|
||
| 规则 | 位置 | 说明 | 风险评估 |
|
||
|------|------|------|----------|
|
||
| G704 SSRF | `ppt.go:254` | `http.Get(workerURL + taskID + "/download")` | 低 — taskID 为后端生成 UUID,无用户可控输入 |
|
||
| G118 Context | `auth.go:175` | goroutine 使用 context.Background | 低 — 数据库写入不依赖请求上下文 |
|
||
| G118 Context | `chat.go:142,193` | goroutine 使用 context.Background | 低 — 同上 |
|
||
| G118 Context | `chat_llm.go:1150,1152,1275,1276,1579` | goroutine 使用 context.Background | 低 — 流式响应写入不依赖请求上下文 |
|
||
| G118 Context | `knowledge.go:330` | goroutine 使用 context.Background | 低 — 同上 |
|
||
| G118 Context | `doc_template.go:258` | goroutine 使用 context.Background | 低 — 同上 |
|
||
| G118 Context | `analysis_template.go:321` | goroutine 使用 context.Background | 低 — 同上 |
|
||
| G118 Context | `audit.go:51` | goroutine 使用 context.Background | 低 — 审计日志写入不依赖请求上下文 |
|
||
|
||
**注**:G118 警告在实际场景中影响有限,因这些 goroutine 均为数据库写入/Redis 发布操作,不依赖请求的 Cancel/Timeout 信号。但作为最佳实践,建议使用 `r.Context()` 传递的 context。
|
||
|
||
#### MEDIUM — 8 个
|
||
|
||
| 规则 | 位置 | 说明 | 风险评估 |
|
||
|------|------|------|----------|
|
||
| G124 Cookie | `auth.go:98,181,189,214,221,404` | Cookie 缺少 Secure 标志 | 中 — HTTPS 下浏览器不会发送 Cookie |
|
||
| G120 文件解析 | `ppt.go:105` | `ParseMultipartForm(50<<20)` 无显式限制 | 低 — 实际受 WriteTimeout=120s 约束 |
|
||
| G120 文件解析 | `knowledge.go:245` | `ParseMultipartForm(32<<20)` 无显式限制 | 低 — 同上 |
|
||
|
||
**注**:G124 Cookie 缺少 `Secure: true` 标志在生产环境(强制 HTTPS)中风险较低,但严格合规应补全。
|
||
|
||
#### LOW — 63 个
|
||
|
||
全部为 `G104: Errors unhandled`,分散在 8 个文件中(platform.go 独占 19 个,knowledge.go 9 个,ppt.go 9 个,其余为 response.go、llm/*.go、dify/knowledge.go)。风险极低。
|
||
|
||
### 11.3 Go 标准库 CVE 分析(govulncheck)
|
||
|
||
**当前版本**:Go 1.25.0,检测到 20 个标准库 CVE。
|
||
|
||
#### 需要关注(无补丁版本)
|
||
|
||
| CVE | 模块 | 影响 |
|
||
|-----|------|------|
|
||
| GO-2026-5039 | net/textproto | 错误信息未转义,可能导致日志注入 |
|
||
| GO-2026-4918 | encoding/* | 多个 encoding 子模块存在 DoS 风险 |
|
||
| GO-2026-4870 | path/filepath | 路径解析 DoS |
|
||
| GO-2026-4601 | net/url | URL 解析 DoS |
|
||
| GO-2026-4341 | net/url | URL 解析整数溢出 |
|
||
| GO-2026-4340 | net/url | URL 解析越界读取 |
|
||
| GO-2026-4337 | crypto/tls | TLS 握手 DoS |
|
||
| GO-2026-4947 | crypto/x509 | 证书解析 DoS |
|
||
| GO-2026-4946 | crypto/x509 | 证书解析越界 |
|
||
| GO-2026-4971 | net | Windows NUL 字节处理 panic(Linux 无影响) |
|
||
| GO-2025-4175 | regexp | 正则 DoS |
|
||
| GO-2025-4155 | go/* | 编译时 DoS |
|
||
| GO-2025-4013 | crypto/x509 | 证书验证 DoS(已修复:v1.25.2) |
|
||
| GO-2025-4012 | net/http | HTTP/2 请求走私 |
|
||
| GO-2025-4011 | encoding/asn1 | ASN.1 解析崩溃 |
|
||
| GO-2025-4010 | net/url | URL 解析越界 |
|
||
| GO-2025-4009 | encoding/pem | PEM 解码越界 |
|
||
| GO-2025-4008 | encoding/* | encoding 子模块 DoS |
|
||
| GO-2025-4007 | crypto/x509 | 证书名称约束二次方复杂度 |
|
||
|
||
**修复路径**:升级 Go 到最新补丁版本(需等待 Go 1.25.11+ 发布)。当前 Go 1.25.0 为最新稳定版。
|
||
|
||
### 11.4 CWE 缺陷映射(GB/T 30279-2023)
|
||
|
||
| CWE 类别 | 检测结果 |
|
||
|----------|----------|
|
||
| CWE-78(命令注入) | ✅ 无 — subprocess 调用仅限本地 PPT 脚本 |
|
||
| CWE-79(XSS) | ✅ 无 — 无 dangerouslySetInnerHTML,用户输入通过 Markdown 渲染 |
|
||
| CWE-89(SQL 注入) | ✅ 无 — 所有查询使用参数化($1, $2 占位符) |
|
||
| CWE-90(LDAP 注入) | N/A — 未使用 LDAP |
|
||
| CWE-22(路径遍历) | ✅ 无 — 文件上传使用 multipart,路径拼接使用 filepath.Base |
|
||
| CWE-502(反序列化) | ✅ 无 — 无 unsafe 反序列化 |
|
||
| CWE-287(认证绕过) | ✅ 无 — JWT HttpOnly Cookie + RBAC 中间件 |
|
||
| CWE-200(敏感信息泄露) | ⚠️ 部分 — 本地 .env 含 API Key,已在 .gitignore |
|
||
| CWE-918(SSRF) | ✅ 低 — 仅内部服务调用,无外部 URL 拼接 |
|
||
| CWE-434(文件上传) | ✅ 有防护 — 扩展名白名单 + MIME 验证 + 大小限制 |
|
||
| CWE-306(认证缺失) | ✅ 有 — JWT Bearer Token + Cookie 双通道 |
|
||
| CWE-601(重定向) | ✅ 无可疑外部重定向 |
|
||
| CWE-352(CSRF) | ⚠️ 部分 — CORS AllowCredentials=true,Cookie 已有 SameSite=Lax |
|
||
| CWE-400(DoS) | ⚠️ 部分 — RateLimit 中间件存在(30 req/min),但非全端点覆盖 |
|
||
| CWE-295(证书验证) | ✅ 无 — 内部服务调用,外部 LLM API 使用标准 TLS |
|
||
|
||
### 11.5 本轮结论
|
||
|
||
**安全态势**:良好。本轮扫描未发现高危可利用漏洞。
|
||
|
||
**建议优先级**:
|
||
|
||
| 优先级 | 建议 | 影响 |
|
||
|--------|------|------|
|
||
| P0 | 等待 Go 补丁版发布后升级(目标 v1.25.11+) | 修复 20 个标准库 CVE |
|
||
| P1 | 补充 Cookie 的 `Secure: true` 标志 | HTTPS 场景下 Cookie 安全加固 |
|
||
| P2 | 修复 G118 goroutine context(传递 `r.Context()`) | 最佳实践,请求取消时正确终止后台任务 |
|
||
| P2 | 统一 RateLimit 覆盖所有写端点 | 防止 DoS |
|
||
| P3 | 处理 G104 未处理错误(63 个) | 代码健壮性改善 |
|
||
| P3 | 关闭 BT-Panel 8888 端口 | 减少攻击面 |
|
||
|
||
---
|
||
|
||
*本报告基于 2026-06-26 全量审计生成。服务器端问题已同步修复,本地代码库干净。*
|