Files
Nexus/docs/archive/audits/2026-06-04-phase2/audit-phase2-2026-06-04-waveP2-4.md
T
Nexus Deploy 0100ab2582 docs: consolidate archive, SSOT guide, and agent entry stubs
Move line-walk/delta/phase2/frontend audits and legacy memory into
docs/archive/, add functional development SSOT, thin AGENTS/CLAUDE stubs,
and regenerate changelog/audit indexes via consolidate_docs.py.
2026-06-04 23:01:03 +08:00

3.2 KiB
Raw Blame History

Phase 2 深审 — Wave P2-4servers.py 全文)

日期: 2026-06-04
范围: 服务器 CRUD/Agent/导入/批量 SSH 全文 + 凭据加密/文件能力探测
标准: standards/line-walk-audit-standard-v2.md 8 步

登记

# 文件 语言 行数 N Read 范围
1 server/api/servers.py Python 1742 11742 全文(分段 Read 至 EOF
2 server/infrastructure/database/crypto.py Python 54 154 全文
3 server/infrastructure/ssh/files_capability.py Python 63 163 全文
4 server/utils/files_elevation.py Python 55 1–55 全文(P2-1 已读,本波交叉验证)
5 server/infrastructure/ssh/remote_shell.py Python 63 163 全文(P2-1 已读,setup-files-sudo 关联)

入口表(servers.py 26 路由)

类别 路由数 鉴权
CRUD / 列表 / stats GET/POST/PUT/DELETE 全部 JWT
CSV import POST /import JWT + 1MB/500行
批量 Agent POST /batch/* JWT + Semaphore(5)
Agent 单台 POST `/{id}/install uninstall
敏感 reveal POST /{id}/agent-key, agent-install-cmd JWT + bcrypt re-auth
files GET/POST files-capability, setup-files-sudo JWT
health POST /check JWT

Closure 表

H 文件:行号 判定 理由
H-Auth servers.py:26×路由 SAFE 26 端点均 get_current_admin
H-Mask servers.py:1692-1698 SAFE password_set / agent key 前缀截断
H-Encrypt servers.py:1096-1099,559-562 SAFE Fernet encrypt 入库
H-Allowlist servers.py:1163-1187 SAFE UPDATE 字段白名单;agent_api_key 排除
H-Reauth servers.py:1256-1260,1479-1483 SAFE agent-key/install-cmd 需当前密码
H-Reveal servers.py:1492-1502 SAFE install-cmd 不用全局 API_KEY
H-AgentKey servers.py:1282-1288 SAFE 生成后 display_once 响应
H-Fallback servers.py:626,1321 RISK batch/single install 可回退 settings.API_KEY
H-Shell servers.py:631-633,1330-1332 SAFE install shlex.quote url/key/port
H-Sudo servers.py:36-60 RISK 临时 sudoers 白名单;运维必要
H-SudoPwd servers.py:1025-1027 SAFE sudo -S 密码走 stdin 非 argv
H-CSV servers.py:376-388,445-446 SAFE formula injection 防御 + 1MB 上限
H-CSV servers.py:499-501 SAFE MAX_IMPORT_ROWS=500
H-Batch servers.py:615,686,772,850 SAFE Semaphore(5) 并发上限
H-Redis servers.py:179-201,873-877 SAFE 心跳 overlay;失败 log warning
H-Audit servers.py: CUD/batch SAFE 写操作 AuditLog
H-Crypto crypto.py:20-26 SAFE 无 ENCRYPTION_KEY 则 RuntimeError
H-Crypto crypto.py:52-54 SAFE decrypt 失败 raise,非静默
H-Capability files_capability.py:31-39 SAFE 只读 probe,无密码回传
H-Elevation files_elevation.py:48-55 SAFE apply_files_elevation_payload

len(H)=20, Closure=20

FINDING

无 P0/P1 新 FINDING。

DoD

  • servers.py 1742 行全文 Read(补 D3 分段)
  • len(H) == Closure
  • local_verify 通过

验证

bash scripts/local_verify.sh — 全绿