TGViewer
开发者工具箱|编程·开发工具·资源 开发者工具箱|编程·开发工具·资源 @devtoolboxhub · 436 subscribers
Post #1139 7
修复 Nuclei 嵌入式引擎内存与 Goroutine 泄漏

ProjectDiscovery Nuclei 作为 YAML 模板驱动的开源漏洞扫描器,在作为 SDK 嵌入长期运行的微服务或持续扫描任务时,会遇到内存膨胀和 Goroutine 泄漏问题。开发者 ThryLox 调查并提交了 PR #7508,修复了 Issue #7503 中描述的三个主要泄漏点。

泄漏原因包括:HTTP-to-HTTPS 端口跟踪器使用无界 sync.Map 导致无限增长;全局协议状态中的每主机速率限制器 Goroutine 在引擎关闭后未被清理;编译后的模板缓存(parsedTemplatesCache 和 compiledTemplatesCache)在引擎实例间保留,无清除机制。

解决方案为:将 HTTP-to-HTTPS 端口跟踪器替换为有界的可过期 LRU 缓存(上限 4096 条目,24 小时 TTL);在 protocolstate.Close() 中释放速率限制器并清除跟踪器;在 NucleiEngine.Close() 中添加线程安全的 Purge() 方法清除模板缓存。验证表明修复后引擎关闭不再积累内存。

GitHub

#开发者 #工具 #Nuclei #Go #漏洞扫描 #内存泄漏 #Goroutine #ProjectDiscovery #SDK #性能优化
📢 频道:@DevToolboxHub
More from @devtoolboxhub
  1. Oct 4, 2026LangGraphics:一行代码实时可视化 LangGraph 运行 LangGraphics 是一款轻量级工具,专为使用 LangGraph 或 DeepAgents 构建的代…
  2. Oct 4, 2026平台 Operator 现已支持 Application 更新的实时对齐 平台 Operator 通过 Kubernetes 自定义资源 Application 生成 Deploy…
  3. Oct 4, 2026Node.js Marketplace 运行手册:处理压缩堆栈的两类 JavaScript 错误 在选择错误跟踪系统时,Marketplace 团队需要先区分两类需求: 1. 能否…
  4. Oct 3, 2026OpenScout:本地开源模型驱动的活动筛选器 OpenScout 是一个自主运行的开发者活动通知工具,聚合并排序开发者活动、黑客松与开源聚会,按语义相关度打分。它面向一位常驻印…
  5. Oct 3, 2026Flutter 打印 Zebra 标签:去掉 SDK 的纯 Dart 方案 flutter_zpl_printer 是一个开源 Flutter 包,用纯 Dart 实现 Zebra…
  6. Oct 3, 2026WSL2 内存数字为何对不上 Windows 任务管理器显示 VmmemWSL 占用 8 GB,Ubuntu 里 htop 只看到约 2 GB。作者 Thuram OTCHOUN…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →