描述
产品不妥善处理时有效的输入使用另一种编码输入发送的控制范围。
的关系
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
潜在的缓解措施
阶段:体系结构和设计
避免做决定基于名称的资源(例如文件)如果这些资源能替代名称。 |
实施阶段:
假设所有的输入是恶意的。使用一个“接受良好的“输入验证策略,即。,使用一个可接受的输入列表,严格遵守规范。拒绝任何不严格符合规范的输入,或将其转换为一些。
当执行输入验证,考虑所有可能相关的属性,包括长度,类型的输入,可接受的值的全系列,缺失或额外的输入,语法,一致性相关领域,符合业务规则。作为业务规则逻辑的一个例子,在语法上“船”可能是有效的,因为它只包含字母数字字符,但它不是有效的如果输入预计仅包含颜色,如“红”或“蓝色”。
不完全依赖寻找恶意或畸形的输入。这很可能错过至少有一个不受欢迎的输入,特别是如果代码的环境变化。这可以让攻击者有足够的空间绕过验证。然而,denylists可以用于检测潜在攻击或确定哪些输入是畸形的,应该直接驳回。
|
实施阶段:
使用和指定输出编码可以由下游组件读取输出。常见的编码包括iso - 8859 - 1、utf - 7, utf - 8。如果不指定一个编码,下游组件可能会选择不同的编码,通过假设一个默认的编码或使用自动推断哪些编码,这可能是错误的。编码不一致时,下游组件可能治疗一些特殊字符或字节序列,即使他们没有特别在原始的编码。攻击者就能够利用这种差异,开展注入攻击;他们甚至可以绕过保护机制,假设原编码也被下游组件。 |
实施阶段:
输入应该解码和规范化应用程序当前的内部表示之前验证( cwe - 180)。确保应用程序不会解码输入两次相同( cwe - 174)。这些错误可以用来绕过allowlist验证方案通过引入危险的输入后检查。 |
脆弱性映射笔记
用法:允许
(CWE ID可以用来映射到现实世界的漏洞) |
原因:可接受的使用 |
理由是: 这个CWE条目是变体的抽象级别,这是一个首选的抽象级别映射到漏洞的根本原因。 |
评论: 仔细阅读这两个名称和描述,以确保此映射是一个适当的配合。不要试图“力”映射到底层基础/变体只是遵守这首选的抽象级别。 |
分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
千鸟 |
|
|
不同的编码 |
更多的信息是可用的,请编辑自定义过滤器或选择一个不同的过滤器。
|