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

48 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 重要修复 (资源管理 & 性能)
15. **进程资源泄漏修复** - NetServiceImpl: Process 对象未销毁,添加 destroy + waitFor 超时
16. **Docker资源泄漏修复** - DockerServiceImpl: 数组越界保护 + Process 资源释放
17. **除零风险修复** - MemoryServiceImpl: 内存总量为0时的除零异常
18. **除零风险修复** - SystemServiceImpl: 磁盘总量为0时的除零异常
19. **资源泄漏修复** - DockerServiceImpl/NetServiceImpl: Process/Reader 资源泄漏
#### P2 代码质量优化
20. **日志规范化** - 100+ 处 System.out/err 替换为 AssertLog 日志框架
21. **异常处理规范化** - 所有 e.printStackTrace() 替换为结构化日志
22. **中断处理规范化** - InterruptedException 添加中断状态恢复 (Thread.currentThread().interrupt())
23. **包装类型修复** - BaseNettyConfig: Boolean 包装类型改基本类型,消除 NPE 风险
24. **异常构造修复** - BaseException: cause 构造函数未设置 code/msg
25. **安全配置** - application-dev.yml: 新增安全配置项(命令白名单/HMAC签名/下载安全/握手认证)
### v1.20 (基线)
**commit**: e58137c "修正脚本执行策略上报信息"
**状态**: 优化前最后一个稳定版本,本次更新的基线