Files
AIagent/VERSION.md
T
lee 546eef3372 feat(v1.21-beta): 代码安全审计与全面优化
基线: v1.20 (e58137c) | 分支: agent1.21bate

## P0 严重修复 (14项)
- 安全: 命令注入漏洞修复 (SpecificTimeTaskService)
- 安全: 路径穿越漏洞修复 (AgentEndpoint)
- 安全: 下载安全加固 (AdvancedAsyncDownloader)
- 数据: CPU avg1/avg5/avg15 赋值错误修复 (CPUServiceImpl)
- 数据: 磁盘读写字节/速率赋值反转修复 (DiskServiceImpl)
- 逻辑: updateTaskInterval 丢失原始任务修复 (DynamicTaskService)
- 并发: GlobalConfig 100+ 静态字段 volatile + 并发集合
- 性能: SessionManager O(n)->O(1) Channel反向映射
- 并发: SessionManager 序列号 AtomicInteger
- 并发: CompensatedTrigger CAS 竞态修复
- 泄漏: UDPListenHandler ByteBuf 内存泄漏修复
- NPE: BaseNettyServer stop() 空指针修复
- 线程: AsyncCommandExecutor 无界线程池改有界+守护线程
- 泄漏: AdvancedAsyncDownloader 连接和线程池资源释放

## P1 重要修复 (5项)
- NetServiceImpl: Process 资源泄漏 + 超时控制
- DockerServiceImpl: 数组越界保护 + 资源释放
- MemoryServiceImpl: 除零风险修复
- SystemServiceImpl: 除零风险修复 + 异常处理规范化

## P2 代码质量 (6项)
- 100+ System.out/err -> AssertLog 日志框架
- e.printStackTrace() -> 结构化日志
- InterruptedException 中断状态恢复
- BaseNettyConfig Boolean 包装类型改基本类型
- BaseException cause 构造函数修复
- 新增安全配置项 (命令白名单/HMAC/下载安全/握手认证)

## 新增安全模块
- security/AuthHandshakeHandler.java - Netty握手认证
- security/HmacSignVerifier.java - HMAC签名验证
- security/SecureCommandExecutor.java - 安全命令执行器
- security/SecureFileDownloader.java - 安全文件下载器
- security/SecurityProperties.java - 安全配置属性
- security/SystemCommandRunner.java - 系统命令运行器
- 对应单元测试 4个

版本更新: pom.xml 0.0.1-SNAPSHOT -> 1.21-beta
          application.yml 1.0 -> 1.21

涉及文件: 34个 (21 modified + 13 new)
代码变更: +1085/-868 lines
2026-07-22 12:58:52 +08:00

3.0 KiB
Raw Blame History

tr-agent-client 版本记录

版本规则

  • 主版本号.次版本号-阶段标识
  • 阶段标识: beta(测试版) / rc(候选版) / release(正式版)

版本历史

v1.21-beta (2026-07-22)

基线版本: v1.20 (commit: e58137c) 分支: agent1.21bate 变更范围: 代码安全审计与优化,涉及 21 个文件,+1085/-868 行

P0 严重修复 (安全 & 数据正确性)

  1. 命令注入漏洞修复 - SpecificTimeTaskService: 添加命令安全校验、白名单机制、危险字符检测
  2. 路径穿越漏洞修复 - AgentEndpoint: 添加 normalize() + startsWith() 路径校验
  3. 下载安全加固 - AdvancedAsyncDownloader: 添加协议白名单、文件大小限制、路径穿越防护
  4. CPU负载数据丢失修复 - CPUServiceImpl: avg1/avg5/avg15 三行全调 setAvg1()1分钟和15分钟数据丢失
  5. 磁盘读写数据反转修复 - DiskServiceImpl: 读写字节和读写速率赋值完全反转
  6. 任务更新丢失修复 - DynamicTaskService: updateTaskInterval 用空 Runnable 替代了原始任务
  7. 线程安全修复 - GlobalConfig: 100+ 静态字段添加 volatile,集合改为 ConcurrentHashMap/CopyOnWriteArrayList
  8. Session查找性能修复 - SessionManager: 新增 Channel->Session 反向映射,O(n)->O(1)
  9. 序列号线程安全修复 - SessionManager: getSerialNumber 改用 AtomicInteger
  10. 竞态条件修复 - CompensatedTrigger: get+set 竞态改用 CAS 循环
  11. 内存泄漏修复 - UDPListenHandler: ByteBuf 未释放
  12. NPE修复 - BaseNettyServer: stop() 方法 NPE 风险
  13. 无界线程池修复 - AsyncCommandExecutor: 改为有界线程池 + 守护线程
  14. 资源泄漏修复 - AdvancedAsyncDownloader: 添加 connection.disconnect() 和线程池关闭

P1 重要修复 (资源管理 & 性能)

  1. 进程资源泄漏修复 - NetServiceImpl: Process 对象未销毁,添加 destroy + waitFor 超时
  2. Docker资源泄漏修复 - DockerServiceImpl: 数组越界保护 + Process 资源释放
  3. 除零风险修复 - MemoryServiceImpl: 内存总量为0时的除零异常
  4. 除零风险修复 - SystemServiceImpl: 磁盘总量为0时的除零异常
  5. 资源泄漏修复 - DockerServiceImpl/NetServiceImpl: Process/Reader 资源泄漏

P2 代码质量优化

  1. 日志规范化 - 100+ 处 System.out/err 替换为 AssertLog 日志框架
  2. 异常处理规范化 - 所有 e.printStackTrace() 替换为结构化日志
  3. 中断处理规范化 - InterruptedException 添加中断状态恢复 (Thread.currentThread().interrupt())
  4. 包装类型修复 - BaseNettyConfig: Boolean 包装类型改基本类型,消除 NPE 风险
  5. 异常构造修复 - BaseException: cause 构造函数未设置 code/msg
  6. 安全配置 - application-dev.yml: 新增安全配置项(命令白名单/HMAC签名/下载安全/握手认证)

v1.20 (基线)

commit: e58137c "修正脚本执行策略上报信息" 状态: 优化前最后一个稳定版本,本次更新的基线