cwe - 776:不当限制递归实体引用的dtd (XML实体扩张)
 描述
产品使用的XML文档,并允许它们的结构定义文档类型定义(DTD),但这并不正确控制递归定义的实体的数量。
 扩展描述
如果DTD包含大量的嵌套或递归实体,这可能导致爆炸性增长的数据解析时,造成拒绝服务。
 替代条款
XEE: |
XEE缩略词通常用于XML实体扩张。 |
十亿笑攻击 |
|
XML炸弹: |
在“XML炸弹”项用于早期的知识这个问题,XEE术语似乎更常用。 |
 的关系
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
 相关观点“软件开发”(cwe - 699)
自然 |
类型 |
ID |
的名字 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
19 |
数据处理错误 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
 简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 |
类型 |
ID |
的名字 |
ChildOf |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
674年 |
不受控制的递归 |
 模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
 常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
可用性
|
如果解析,递归实体引用允许攻击者扩大数据成倍增长,迅速消耗所有系统资源。 |
|
 利用的可能性
 示范例子
示例1
下面简短XML DTD和XML炸弹。说明是什么意思零实体包含一个字符,字母a实体名称的选择零被用来表明长度相当于两个指数,即零的长度是2 ^ 0。同样,一指零的两倍,因此XML解析器将扩大一个长度为2或2 ^ 1。最终,我们到达实体THIRTYTWO(这将扩大到2 ^ 32个字符的长度,或4 GB,可能消耗数据远远超过预期。
< ?xml version="1.0"?> < !DOCTYPE MaliciousDTD [ < !实体零“A”> < !实体一个"零,零;" > < !实体两个“一个;一个;" > … < !实体THIRTYTWO " &THIRTYONE; &THIRTYONE; " > ]> <数据> &THIRTYTWO; < /数据>
 观察到的例子
参考 |
描述 |
|
XEE xml解析库。 |
|
XML炸弹/ XEE在企业通信产品。 |
|
“十亿笑”攻击在XMPP服务器守护进程。 |
|
XML在web服务器模块 |
|
解析库允许XML炸弹 |
 潜在的缓解措施
阶段:操作
如果可能,禁止使用DTD或使用XML解析器,限制递归DTD实体的扩张。 |
实施阶段:
之前与关联的dtd解析XML文件,扫描递归实体声明,不继续解析可能具有爆炸性的内容。 |
 会员资格
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
 分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
WASC |
44 |
|
XML实体扩张 |
 引用
|