CWE

常见的弱点枚举

一个由社区开发的软件&硬件缺陷类型的列表

2021 CWE最重要的硬件的弱点
CWE最危险的弱点
>文档>结构化CWE的描述
ID

结构化CWE的描述
结构化CWE的描述

文档版本:0.51日期:2007年7月18日

这是一个草案。CWE的打算支持维护,从一个特定的技术教育和征求反馈观众。本文档不反映任何主教法冠公司的官方立场或其赞助商。manbetx客户端首页版权©2007,斜方公司。manbetx客户端首页保留所有权利。许可重新分配这个文件如果没有这段删除。本文档是可以不经通知自行调整。

作者:史蒂夫•Christey康纳哈里斯,比尔海因伯克尔
URL:http://cwe.mitre.org/documents/structured_descriptions/index.html


以下是一些CWE节点的脆弱性理论描述。

每个描述都有一个状态:

稳定的——CWE团队产生了一个定义,应考虑供公众审查。

草案——CWE团队有一个初始的定义,但它需要额外的工作。

不完整的——CWE团队没有密切调查这个节点。


80 -基本XSS

状态:稳定

行为支持数据和指令的混合在一个流使用特殊元素分离他们。

数据/指令边界数据包含特殊元素时发生错误,导致部分无意中解释为指令,反之亦然。

限制指令政策是一个政策,只允许一个用户提供指令的一个子集。

发生在一个指令注入漏洞攻击者可以利用数据/指令边界误差引入指令违反目的限制指令政策成流。

基本XSS发生在数据流时HTML和目的限制指令相关政策禁止任何指令脚本、预期的政策允许一个演员(如用户或局外人)引入数据流处理的用户,但没有保护计划,以防止数据/指令边界误差。

工作笔记:

参数注入在指令注入吗?应该是?


99 -资源注入

状态:稳定

预期政策定义一组有限的资源和一组有限的行为操纵这些资源。

一个单独的行为允许用户指定一个标识符的资源产品操纵。

资源注入时用户可以指定一个资源标识符,违反了政策。


78 - OS命令注入

状态:稳定

行为支持数据和指令的混合在一个流使用特殊元素分离他们。

数据/指令边界数据包含特殊元素时发生错误,导致部分无意中解释为指令,反之亦然。

限制指令政策是一个政策,只允许一个用户提供指令的一个子集。

发生在一个指令注入漏洞攻击者可以利用数据/指令边界误差引入指令违反目的限制指令政策成流。

一个产品有一个操作系统执行的行为指令使用混合数据/指令流,我们叫它osdd。一个演员可以控制或影响的一部分osdd中的数据。限制指令政策禁止演员指定osdd的任何指令。

OS命令注入时一个演员可以提供数据到osdd数据包含一个指令分离器/指令边界错误造成数据。

工作笔记:

一些解释的OS命令注入允许攻击者修改预定的指令。

我们的意思是“用户”或者更一般的“演员”限制指令政策以及产品的行为?


89 - SQL注入

状态:稳定

行为支持数据和指令的混合在一个流使用特殊元素分离他们。

数据/指令边界数据包含特殊元素时发生错误,导致部分无意中解释为指令,反之亦然。

限制指令政策是一个政策,只允许一个用户提供指令的一个子集。

发生在一个指令注入漏洞攻击者可以利用数据/指令边界误差引入指令违反目的限制指令政策成流。

一个产品有一个行为执行SQL查询使用混合数据/指令流,我们叫它查询。一个演员可以控制或影响的部分数据的查询。限制指令政策禁止演员查询修改指令或条款。

SQL注入时一个演员可以提供数据查询,数据包含一个指令或条款分离器导致数据/指令边界指令错误,违反了限制政策。

工作笔记:

我们还没有完全覆盖的新指令以及条款(' OR 1 = 1 ')


22 -路径遍历

状态:稳定

容器是一个子集的所有资源访问的产品应该访问或可变的演员。

一个产品的行为构造一个文件名,至少部分地基于用户输入。

产品的行为对一个文件或目录资源执行指令代表一个演员。它使用一个容器来识别有效资源,演员。构造一个文件名的产品也有一个行为所需的资源文件名的至少部分基于用户输入。文件名是有效的,如果它能够识别容器内的资源。

预期的政策只允许有效的资源。

路径遍历脆弱性发生在产品不执行的有效性财产构造的文件名。

注:背景

产品并不局限于用户级应用程序。例如,一个web服务器只有访问操作系统资源的一个子集,因此被限制为一个容器的操作系统。

术语的问题:需要一个父词汇暗示可访问性和易变性。

老的定义:

一个产品的行为构造一个文件名,至少部分地基于用户输入。预期的政策是一个文件名是有效的只有包含在一个特定的目录或一组目录。路径遍历脆弱性发生如果用户可以使用句法操作(如“. .”或“/ A / b”),导致生成的文件名违反控制属性。


59 -链接后

状态:稳定

容器是一个子集的所有资源访问的产品应该访问或可变的演员。

产品上执行操作的文件或目录资源在一些容器。产品结构资源的路径名。生成的路径名是有效的只有标识一个容器内的资源。

预期的政策要求,只有有效的路径名被处理。

符号链接漏洞后发生在产品生成一个路径名与一个符号链接相关联的资源没有确保资源的链接解析为一个标识符在容器内。

工作笔记:

目前只讨论符号链接后,进一步的研究可能会允许这种适应覆盖硬链接以及windows .lnk但做这些也属于相同的标识符和参考解决问题?

政策包括定义的属性是什么,以及哪些属性是允许的,还是只允许哪些属性?

这是一个实例化的一般情况引用资源的标识符,而不是直接对资源的标识符。

我们可以借用路径遍历,除了语义操作用于违反不变性。


120 -无界的转移

状态:稳定

行为接收输入缓冲资源它执行一个操作,可能身份操纵,然后存储在一个输出缓冲资源。预期的输出缓冲区策略定义一个有效的资源足够大的存储操作的结果。缓冲区溢出漏洞发生当一个攻击者可以影响行为,这个属性是违反了有效性。

一个无界的转移是一个缓冲区溢出,只涉及到身份操纵,攻击者没有控制输出缓冲区的大小的资源,也没有保护方案,确保输出缓冲区的有效性属性资源。

注:背景

有些人可能包括扩张溢出“经典溢出”


190 -整数溢出

状态:稳定

行为,B,使用一个整数来控制或影响操作资源。

一个单独的行为,G,生成这个整数使用一些操作。

T_MAX被定义为一个整数的最大容许值给定的产品表示整数。

整数溢出发生在操纵,将产生一个值超过T_MAX,但行为返回一个结果是小于或等于T_MAX。

预期的政策行为B不使用行为G如果G的结果产生一个整数溢出。

发生在一个整数溢出漏洞行为G产生一个整数溢出,和行为B使用结果。

注:背景

预期的政策有效地排除产品使用整数溢出的有效行为。

工作笔记:

可能想表达这方面的代表性和等价;表示在现实世界的产品和等效的结果。


134 -格式字符串漏洞

状态:稳定

一个产品有一个行为格式输出内存或流的资源。

预期的政策是,用户无法控制或影响格式字符串,即所有演员格式字符串是不可变的,除了产品本身。

一个格式字符串漏洞存在,如果攻击者可以修改的格式字符串违反政策

工作笔记:

这并不占情况下预期的政策将允许用户控制的格式字符串在某种程度上,与国际化等。

一个格式字符串漏洞的一个常见后果就是属性等其他资源可能违反了不变性或者难以接近的内存。


170 -不当零终止

状态:稳定

产品的环境定义了一个缓冲资源是有效的,如果它是空的终止。

产品都有一个行为,M,操纵或创建一个缓冲资源。产品也有一个单独的行为,U,使用缓冲区被M。

预期的政策是缓冲资源必须是有效的M后修改或创建它。这创造了一个期待你将使用一个有效的缓冲。

不当零终止脆弱性发生在攻击者可以控制或影响M,这样米不能写零终结者或覆盖与非空数据零终结者。这违反了你的期望,缓冲资源是有效的。

注:背景

U是合成,但也是必要的一个漏洞存在。

工作笔记:

“使用”修改和访问的父母吗?

可能有类似的区别问题TOCTOU演员与攻击者和错误与漏洞。


244 -堆检验

状态:稳定

敏感信息的信息不应该访问的所有演员。

授权角色对于一个给定的资源的一组演员允许访问该资源。

一个行为上的敏感信息存储在内存堆。另一个行为放弃相同的资源系统,直接使用免费(),或间接使用realloc(),或类似的功能。

一堆检查漏洞的存在当缓冲区包含敏感数据时放弃,和缓冲的放弃记忆可以被未经授权的访问的演员。


259 -硬编码的密码

状态:稳定

普遍的政策包括以下:只有管理员的产品,或管理员指定的一个演员,可以访问和修改产品的安全特性。

该产品提供了一个安全特性(如身份验证或授权),限制演员可以访问或修改产品的其他特性。

硬编码的密码漏洞发生在产品实现政策(可能是)在一个特殊的用户和密码产品授予访问权限,但这个用户/密码不是可变的管理员。这违背了普遍的政策。


367 - Time-of-check分时竞态条件

状态:稳定

产品有一个行为资源上执行一个操作。预期的政策要求的资源有一个给定的属性,P。

产品实现的保护计划行为检查,以确保资源的属性P之前试图操纵的资源。产品假定P是不变的检查和操作。

Time-of-check分时竞态条件脆弱性发生当一个演员可以直接或间接修改assumed-immutable财产,P,之间的保护计划检查和实际操作。

工作笔记:

这并不区分错误和漏洞,除非我们改变“演员”“攻击者”在最后一段。然而,如果错误成为一个主要的弱点,那么行为人造成错误成为共犯的攻击者利用的弱点。

此外,与其他问题,这个弱点可能需要形式化的概念或者多个线程更完全。


391 -未经检查的错误条件

状态:稳定

产品都有一个行为,M,操纵一个资源实现或执行一个必需的属性,P P的操作可以生成一个错误条件不存在。B,随后的行为预期,P。

一个未经检查的错误条件时,攻击者可以控制或影响行为M等,要求财产P不存在,和产品不会检查生成的错误条件表明P不存在。这违反了B的预期,导致合成漏洞。

注:背景

B是合成,还需要一个漏洞存在。


401 -内存泄漏

状态:稳定

B产品的行为,使用动态分配的内存没有B以外的其他用途。

的产品有一个预期的政策动态分配的内存资源后应尽快放弃最后可能的使用。

内存泄漏发生在攻击者可以导致B完全没有放弃的记忆。

注:背景

“不需要B”以外的其他用途,这样,当完成B,内存应该放弃。如果有其他用途,那么内存不需要放弃。

工作笔记:

考虑大规模memleak导致50梅格泄露在一个单一的行动(假设最初的分配是有效的对于一个给定的行为)。这是一个vuln吗?许多人可能不同意。也——典型的问题是行为的重复一遍又一遍。


412 -无限制的关键资源锁

状态:草案

演员(通常是产品)使用资源的可访问性和易变性R来确定是否执行行为b计划政策是:(1)没有其他演员可以使用R;(2)其他演员可能释放R这个演员如果导演;或(3)演员不使用R很长一段时间。

一个无限制的关键资源锁发生如果另一个演员可以容纳R违反政策。

工作笔记:

时间可能是有用的代表和其他与时间相关的连续波。

“锁”和“控制”可能是其他类型的属性,虽然“控制”可能是一个meta-property。

“释放”/“放弃”很可能高层行为类。


415 -双自由

状态:草案

一个产品有一个预期的政策资源R R是释放后不能访问。

产品都有一个行为B1释放R使用免费通过调用()或类似的重新分配行为。

产品有第二个行为B2也从使用免费通过调用释放R()或类似的释放行为。

双自由发生如果:

(1)B1可以调用两次R和攻击者可以提供指令,触发第二个调用B1,或

(2)也发布的产品有第二个行为B2 R使用免费通过调用()或类似的重新分配行为,攻击者可以提供指示,触发B2。

替代定义:双重免费后用户免费B1和B2使用免费()或相关函数调用相同的资源R。

工作笔记:

预期的政策是这样一个资源或引用不访问或修改后被释放。资源可以定义为无效(或“过期”?)这个窗口之外。

哪种类型的操作是免费的()?什么属性影响吗?


416 -使用后免费

状态:草案

一个产品有一个预期的政策资源R R是释放后不能访问。

产品有一个行为B1操纵R。

产品有第二个行为B2释放R使用免费通过调用()或类似的重新分配行为。

用免费的错误发生后如果攻击者可以提供一个指令执行B1 B2后调用。

工作笔记:

预期的政策是这样一个资源或引用不访问或修改后被释放。资源可以定义为无效(或“过期”?)这个窗口之外。

时间可能是有用的代表和其他与时间相关的连续波。


457 -未初始化变量

状态:草案

一个变量是一个代码级项目,包含一个值(可能是化合物,如结构)或参考。

初始化是一个集的行为变量的值/引用之前使用这个变量。

预期的政策就是一个变量可以只包含有效值/引用被显式地指定的产品(在这种情况下有效= product-assigned)。

产品都有一个行为使用变量V B P资源R保存或修改属性,或控制其他后续行为。

未初始化的变量错误发生在B的预期V是有效的,即product-assigned,但攻击者可以影响之前的行为,V是无效的。B合成但必要的定义。

工作笔记:

预期的政策是这样一个资源不是访问初始化或赋值后的产品。变量无关如果不使用,所以定义伙伴资源或其他行为。


466 -非法指针的值

状态:草案

普遍的政策要求一个指针P, B用来引用一个内存缓冲区时,不能访问如果P B的界限以外的内存引用。

非法指针值发生在攻击者可以触发一个行为导致一个函数返回时P P B的界限以外的内存引用。


467 -使用sizeof()的指针类型

状态:未完成

工作笔记:

这是一个低级的编码问题,可能需要额外的脆弱性理论定义,或者至少一个低层为目的行为和政策规范,XSS等问题与格式字符串。


468 -无意指针缩放

状态:未完成

工作笔记:

这是一个低级的编码问题,可能需要额外的脆弱性理论定义,或者至少一个低层为目的行为和政策规范,XSS等问题与格式字符串。


469 -减法不当指针

状态:未完成

工作笔记:

这是一个低级的编码问题,可能需要额外的脆弱性理论定义,或者至少一个低层为目的行为和政策规范,XSS等问题与格式字符串。


470 -不安全的反射

状态:未完成

工作笔记:

集装箱的定义可能包括一个计划政策的行为或类,其中一些attacker-controlled(或者至少影响),但攻击者可以指定这个容器之外的东西。


476 -零废弃

状态:未完成

工作笔记:

这是一个低级的编码问题,可能需要额外的脆弱性理论定义,或者至少一个低层为目的行为和政策规范,XSS等问题与格式字符串。


495 -私人波束场回来一个公共方法

状态:未完成

工作笔记:

这是一个低级的编码问题,可能需要额外的脆弱性理论定义,或者至少一个低层为目的行为和政策规范,XSS等问题与格式字符串。


496 -公共数据分配给私人波束场

状态:未完成

工作笔记:

这是一个低级的编码问题,可能需要额外的脆弱性理论定义,或者至少一个低层为目的行为和政策规范,XSS等问题与格式字符串。


489 -剩下的调试代码

状态:未完成

工作笔记:

这可能需要编写的一个普遍的政策,或交替描述,这样的后果的调试代码违反政策。一个挑战是,行为会有很大差异的性质取决于调试代码;也许它可以写成“介绍一个单独的脆弱性”。从某种意义上说,这是一个属性的代码总是主要的一些其他问题(如果它被视为与安全性相关的),所以这CWE正在审查中。


121 -堆栈溢出

状态:稳定

行为接收输入缓冲资源它执行一个操作,可能身份操纵,然后存储在一个输出缓冲资源。预期的输出缓冲区策略定义一个有效的资源足够大的存储操作的结果。缓冲区溢出漏洞发生当一个攻击者可以影响行为,这个属性是违反了有效性。

堆栈溢出是缓冲区溢出的输出缓冲区在堆栈上分配资源。

老的定义:

缓冲区溢出漏洞的存在如果缓冲资源有效性财产规定缓冲区的内容必须小于或等于缓冲区的大小分配资源和行为存在违反财产说。

如果产品表现在堆栈和堆环境中(有特定的vuln理论术语指的是产品环境?)和缓冲区溢出漏洞存在于缓冲资源存在于栈,那么这个漏洞被称为堆栈溢出。


122 -堆溢出

状态:稳定

行为接收输入缓冲资源它执行一个操作,可能身份操纵,然后存储在一个输出缓冲资源。预期的输出缓冲区策略定义一个有效的资源足够大的存储操作的结果。缓冲区溢出漏洞发生当一个攻击者可以影响行为,这个属性是违反了有效性。

堆溢出缓冲区溢出的输出缓冲资源分配在堆上。

老的定义:

缓冲区溢出漏洞的存在如果缓冲资源——cve - 2006 - 4541 - DoS在IDS中通过零argumentURCE有效性财产规定缓冲区的内容必须小于或等于缓冲区的大小分配资源和行为存在违反财产说。

如果产品表现在堆栈和堆环境中(有特定的vuln理论术语指的是产品环境?)和缓冲区溢出漏洞存在于缓冲资源存在于堆,那么这个漏洞被称为堆溢出。


249年的今天,经常滥用:路径操作

状态:草案

行为,在这种情况下一个路径操作行为,接受一个输入缓冲资源,在这种情况下,路径,它执行一个操作,然后存储在一个输出缓冲资源。产品应该有一个政策,要求输出缓冲区资源具有有效属性的资源必须足够大来存储操作的结果。

如果产品不执行这一政策,攻击者可以提供一个路径,将输出缓冲区的资源太大,可能会导致缓冲区溢出攻击。


425 -直接请求

状态:草案

一个产品有行为分为多个可执行程序。预期政策定义一个有效的路径,用户只能访问一个程序时,X,通过另一个程序,P P的行为使用安全特性或保护计划来限制访问X“直接请求”问题发生如果没有浏览用户可以直接访问X P首先,违反执行路径有效性和绕过安全特性。

工作笔记:

还可以提到:备用路径,交互点,可访问性。

更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2008年9月5日