Ejabberd因畸形Stanza引发的拒绝服务漏洞剖析

本文详细分析了CVE-2011-4320漏洞,该漏洞存在于Ejabberd的mod_pubsub模块中,远程认证用户可通过发送缺少节点属性的publish标签的Stanza,导致服务器陷入无限循环,从而引发拒绝服务攻击。

漏洞概述

CVE-2011-4320 是一个存在于即时通讯服务器 Ejabberd 中的中度严重性安全漏洞。该漏洞允许远程认证用户通过发送特定构造的XMPP节(Stanza),导致服务器陷入无限循环,从而引发**拒绝服务(DoS)**攻击。

影响范围

  • 受影响的版本

    • Ejabberd 2.1.8 及更早版本
    • Ejabberd 3.0.0-alpha-1 至 3.0.0-alpha-3 版本
  • 已修复的版本

    • Ejabberd 2.1.9
    • Ejabberd 3.0.0-alpha-4

漏洞细节

漏洞位于 mod_pubsub 模块(mod_pubsub.erl)中。具体而言,当远程认证用户发送一个包含 publish 标签但缺少 node 属性的XMPP节时,模块的解析逻辑存在缺陷,无法正确处理这种畸形输入,从而触发无限循环,耗尽服务器资源。

技术影响

成功利用此漏洞的攻击者可以导致Ejabberd服务器进程CPU占用率达到100%,无法再处理合法的用户请求,实现拒绝服务。

修复与参考

  • Ejabberd官方在2.1.9和3.0.0-alpha-4版本中修复了此问题。
  • 相关修复提交可参考GitHub仓库的提交记录:
    • processone/ejabberd@d3c4eab
    • processone/ejabberd@d5b4d67

官方与安全社区参考链接

漏洞分类

  • CWE ID: CWE-400 - 不受控制的资源消耗
  • GHSA ID: GHSA-2h3q-v47h-f4rc

漏洞披露时间线

  • NVD发布日期:2012年2月18日
  • GitHub安全通告数据库发布日期:2022年5月17日
  • 最近评审日期:2024年1月19日
  • 最后更新日期:2024年1月19日

漏洞评分

  • 严重等级:中等(Moderate)
  • EPSS评分:1.178%(预测未来30天内被利用的概率,处于第78百分位数)
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计