原贴链接

https://github.com/ggerganov/llama.cpp/security/advisories/GHSA-wcr5-566p-9cwj

我刚刚查看了llama.cpp仓库,并注意到项目安全标签中报告了一个新的漏洞。令我惊讶的是,这是一个严重的漏洞。因此,如果您使用RPC服务器,应该更新到b3561及以上版本。

CVE-2024-42479漏洞分解:rpc_server::set_tensor中的任意写入:

  • 影响llama.cpp中的RPC服务器功能
  • 允许攻击者写入任意内存位置
  • 根本原因是张量操作中对用户控制数据的不安全处理
  • 结合其他漏洞可用于实现远程代码执行
  • 由360漏洞研究所的7resp4ss发现

指标:

image

讨论总结

本次讨论主要聚焦于llama.cpp项目中报告的一个严重安全漏洞,该漏洞影响RPC服务器功能,允许攻击者写入任意内存位置,可能导致远程代码执行。讨论中涵盖了漏洞的具体影响、修复建议、项目稳定性、替代方案以及用户应采取的安全措施等多个方面。评论者们对项目的快速迭代和不稳定版本策略表示担忧,同时提出了使用SSL证书、限制输入参数等安全措施,以及考虑使用如Triton Inference Server或huggingface/candle等替代方案。此外,还有评论者对C++编程风格和内存管理提出了批评和建议。

主要观点

  1. 👍 llama.cpp项目在处理用户输入时缺乏安全检查,容易导致系统崩溃。
    • 支持理由:评论者指出该项目在处理用户输入时缺乏必要的检查,导致系统容易受到攻击。
    • 反对声音:有评论者提出验证网络输入可能是修复该漏洞的方法。
  2. 🔥 该项目不适合在生产环境中使用,尤其是在可被外部访问的环境中。
    • 正方观点:评论者建议用户在使用此类软件时应采取额外的安全措施,如使用SSL证书和限制输入参数。
    • 反方观点:有评论者认为,尽管存在安全风险,但该项目因其快速迭代和灵活性受到一些开发者的喜爱。
  3. 💡 用户在使用此类软件时应采取额外的安全措施,如使用SSL证书和限制输入参数。
    • 解释:评论者强调了在使用llama.cpp等软件时,应采取额外的安全措施以保护系统安全。
  4. 💡 对于生产环境,建议使用更成熟稳定的解决方案,如Triton Inference Server。
    • 解释:有评论者建议在生产环境中使用更成熟稳定的解决方案,如Triton Inference Server。
  5. 💡 C++项目中应避免使用C语言风格的内存管理。
    • 解释:评论者QueasyEntrance6269对项目中使用C++的方式表示质疑,认为其过于依赖C语言风格的内存管理,而未充分利用现代C++的内存管理技术。

金句与有趣评论

  1. “😂 segmond:llama.cpp is not internet production ready in anyway shape or form, they move super fast and don’t care about breaking things.
    • 亮点:评论者直白地指出了llama.cpp项目在生产环境中的不适用性。
  2. “🤔 InnerSun:Doesn’t really matter, if you run any of these as an online service you should always hide it behind a layer where everything is closed by default and only accepts a sanitized payload.
    • 亮点:评论者提出了在使用此类软件时应采取的安全措施。
  3. “👀 Nabakin:I would say Triton Inference Server + TensorRT-LLM is probably the best local option for production, but even it has a decent amount of bugs.
    • 亮点:评论者提出了一个可能的替代方案,并指出了其存在的问题。
  4. “😂 trumpstears:And that’s why children, you use huggingface/candle
    • 亮点:评论者以幽默的方式提出了一个替代方案。
  5. “🤔 QueasyEntrance6269:I don’t even get what’s the point of using C++ if you’re going to write it like C without modern C++ memory management techniques… a raw memcpy in 2024? really?
    • 亮点:评论者对项目中使用C++的方式表示质疑,提出了改进建议。

情感分析

讨论的总体情感倾向较为负面,主要集中在对llama.cpp项目安全性的担忧和批评上。评论者们普遍认为该项目存在严重的安全漏洞,不适合在生产环境中使用。同时,也有评论者对项目的快速迭代和不稳定版本策略表示不满。尽管如此,讨论中也出现了一些积极的建议,如使用SSL证书、限制输入参数等安全措施,以及考虑使用替代方案。

趋势与预测

  • 新兴话题:C++编程风格和内存管理可能会成为后续讨论的新焦点。
  • 潜在影响:该漏洞的发现和讨论可能会促使llama.cpp项目团队加强安全措施,改进代码质量,并可能影响用户对类似项目的信任和使用决策。

详细内容:

标题: llama.cpp 中 RPC 服务器新报告的关键安全漏洞引发热议

近日,Reddit 上一则关于 llama.cpp 中 RPC 服务器新报告的关键安全漏洞的帖子引起了广泛关注。该帖子获得了众多点赞和大量评论。帖子中提到https://github.com/ggerganov/llama.cpp/security/advisories/GHSA-wcr5-566p-9cwj,指出若使用 RPC 服务器,应更新至版本 b3561 及以上。还详细介绍了 CVE-2024-42479 漏洞的情况,包括其影响、攻击方式、根因等。

讨论焦点与观点分析:

有人认为 llama.cpp 并非为互联网生产环境准备的,比如[segmond]表示其动作很快但不太在意是否会出问题,建议不要在生产环境或不安全环境中使用。对于什么才算生产就绪且可用的本地 LLM,[wahnsinnwanscene]提出了疑问,有人提到 Triton 等,但也指出存在不少缺陷。[InnerSun]认为即使是在线服务,也应做好防护,只接受经过处理的有效负载。[wahnsinnwanscene]则认为这能作为评估可接受操作风险的参考。

关于如何解决漏洞,[ajmssc]认为验证网络输入可能是解决办法。在编程语言方面,[QueasyEntrance6269]质疑使用 C++却不用现代内存管理技术,而[Remove_Ayys]认为为追求最佳性能有时不得不采用指针运算和手动内存管理。[QueasyEntrance6269]则表示可以通过 STL 抽象避免指针运算,且能保证性能,同时批评 llama.cpp 避免使用现代 STL 构造的指南。

讨论中的共识在于大家都意识到 llama.cpp 在安全和稳定性方面存在问题,对于其在生产环境中的使用需谨慎。特别有见地的观点如[InnerSun]提出的防护措施,为如何保障服务安全提供了思路。

总之,这次关于 llama.cpp 安全漏洞的讨论,充分展现了大家对于软件安全性和性能优化的关注和思考。