# Changelog — P1 安全修复（审计第二批）

**日期**: 2026-05-22

## 修复项

| ID | 修复 |
|----|------|
| F2b-01/02/03 | `sync_engine_v2` sysctl/echo/cp 整段 `shlex.quote`；回滚路径白名单 |
| F2b-04/11/15 | 危险命令在 `sync_v2`、`sync_engine_v2`、`scripts/exec` **拒绝执行** |
| F2b-07/08 | Agent URL 随 `API_BASE_URL` 使用 HTTPS（`agent_url.py`） |
| F2b-09 | 凭据测试 API 不再返回含密码的 shell 命令 |
| F2a-07 | TOTP 关闭需当前密码 + TOTP 验证码；递增 `token_version` |
| F2a-08 | 安装完成后关闭 `env-check`/`state`；新装默认 `SSH_STRICT_HOST_CHECKING=true` |
| F2a-09 | `create-admin` 更新 `.env` 使用 `_escape_env_value` |
| F2a-16 | API Key 查看需重新输入管理员密码 + 审计 |
| F2a-14 | `scripts` 路由：`/credentials` 注册在 `/{id}` 之前 |
| F2c-02 | 安装向导写入严格 SSH 主机校验 |
| F2c-04 | Telegram 告警 HTML 转义 |
| — | `web/agent`：`compare_digest` + `sudo sh -c` 引用 |

## 涉及文件

- `server/application/services/sync_engine_v2.py`, `script_service.py`, `server_service.py`, `auth_service.py`
- `server/api/sync_v2.py`, `scripts.py`, `auth.py`, `settings.py`, `install.py`
- `server/infrastructure/agent_url.py`, `telegram/__init__.py`
- `web/agent/agent.py`, `web/app/settings.html`
