
漏洞检查
文章平均质量分 55
plstudio1
这个作者很懒,什么都没留下…
展开
-
静态分析领域中弱点、不足、缺陷、故障等概念之间的关系
在CWE范畴内,讨论的核心内容是“弱点”及“不足”,而在软件静态分析范畴内,研究的核心内容是“缺陷”及“故障”,CWE已经越来越多的被静态分析用于重要参照标准。因此有必要将这几个关键概念之间的关系梳理清楚。“弱点(Weakness)”定义CWE中对弱点的定义是这样的:弱点是产品中一类错误,在特定的条件下,可能会诱发产品缺陷的发生,此术语应用于对错误的定性,并不考虑这些错误是否在软件生名周期中的设计、实现及其它阶段中真实发生。“不足(Vulnerability)”定义CWE中对...原创 2021-03-21 14:27:43 · 1146 阅读 · 0 评论 -
CWE-690: Unchecked Return Value to NULL Pointer Dereference(没有针对空指针间接引用而检查返回值)
ID: 690 类型: 复合 结构:链接 状态:草稿 描述如果函数失败,则产品不会在调用可以返回空指针的函数后检查是否有错误,这将导致产生空指针取消引用。链接组件 关系 类型 ID 名称 始于 ...翻译 2019-05-26 16:54:56 · 1664 阅读 · 0 评论 -
CWE-587: Assignment of a Fixed Address to a Pointer(将固定地址赋给指针)
ID: 587 类型:基础 结构:简单 状态:草稿 描述软件将指针设置为一个非空或0的特定地址。扩展描述使用固定地址不可移植,因为该地址可能在所有环境或平台中都无效。相关视图与“研究层面”视图(CWE-1000)相关与“开发层面”视图(CWE-699)相关引入模式 阶段 说明 ...翻译 2019-05-19 14:45:02 · 386 阅读 · 0 评论 -
CWE-480: Use of Incorrect Operator(使用不正确的操作符)
ID: 480 类型:基础 结构:简单 状态:草稿 描述程序员不小心使用了错误的运算符,从而以安全相关的方式更改了应用程序逻辑。扩展描述这些类型的错误通常是打字错误的结果。相关视图与“研究层面”视图(CWE-1000)相关与“开发层面”视图(CWE-699)相关引入模式 阶段 说明...翻译 2019-05-07 15:09:27 · 622 阅读 · 0 评论 -
CWE-676: Use of Potentially Dangerous Function(使用不安全函数)
ID: 676 类型:基础 结构:简单 状态:草稿 描述该程序调用一个潜在的危险函数,如果使用不当,可能会引入一个漏洞,但该函数也可以安全使用。相关视图与“研究层面”视图(CWE-1000)相关与“开发层面”视图(CWE-699)相关引入模式 阶段 说明 架构与设计 ...翻译 2019-05-20 14:37:44 · 973 阅读 · 0 评论 -
CWE-483: Incorrect Block Delimitation(块分隔不正确)
ID: 483 类型:变量 结构:简单 状态:草稿 描述代码没有显式地限定一个块,该块打算包含2个或更多语句,从而导致逻辑错误。扩展描述在某些语言中,大括号(或其他定界符)对于块是可选的。当省略分隔符时,某条语句被认为是在块中,而实际情况却不在块中,这种情况下就可到招致逻辑错误。。在某些情况下,逻辑错误可能会带来安全隐患。相...翻译 2019-05-10 14:41:03 · 897 阅读 · 0 评论 -
CWE-496: Public Data Assigned to Private Array-Typed Field(将公有数据赋值给私有数组)
ID: 496 类型:变量 结构:简单 状态:未完成 描述将公有数据赋值给私有数组相当于可以公开访问这个数组。相关视图与“研究层面”视图(CWE-1000)相关与“开发层面”视图(CWE-699)相关引入模式 阶段 说明 实现 应用平台语言...翻译 2019-05-15 14:58:23 · 713 阅读 · 0 评论 -
CWE-688: Function Call With Incorrect Variable or Reference as Argument(以不正确的变量或引用作为参数的函数调用)
ID: 688 类型:变量 结构:简单 状态:草稿 描述软件调用函数、过程或例程,但调用方指定错误的变量或引用作为参数之一,这可能导致未定义的行为和结果弱点。相关视图与“研究层面”视图(CWE-1000)相关与“开发层面”视图(CWE-699)相关引入模式 阶段 说明 ...翻译 2019-05-24 15:19:00 · 230 阅读 · 0 评论 -
CWE-558: Use of getlogin() in Multithreaded Application(在多线程应用中使用getlogin())
ID: 558 类型:变量 结构:简单 状态:草稿 描述应用程序在多线程上下文中使用getlogin()函数,可能导致它返回不正确的值。扩展描述函数的作用是:返回一个指向字符串的指针,该字符串包含与调用进程关联的用户的名称。函数是不可重入的,这意味着如果从另一个进程调用它,则内容不会被锁定,字符串的值可以由另一个进程更改。这使得...翻译 2019-05-16 15:04:49 · 293 阅读 · 0 评论 -
CWE-495: Private Data Structure Returned From A Public Method(公有方法返回私有数据结构)
ID: 495 类型:变量 结构:简单 状态:草稿 描述一个声明为public的方法,返回对私有数据结构的引用,然后可以以意外的方式修改该私有数据结构。相关视图与“研究层面”视图(CWE-1000)相关与“开发层面”视图(CWE-699)相关引入模式 阶段 说明 实现...翻译 2019-05-14 14:54:22 · 617 阅读 · 0 评论 -
CWE-482: Comparing instead of Assigning(比较而没有赋值)
ID: 482 类型:变量 结构:简单 状态:草稿 描述代码在打算执行赋值的时候使用了比较操作符。扩展描述很多语言中比较语句同赋值语句非常接近,很容易造成混淆。关联视图与“研究层面”视图(CWE-1000)相关与“开发层面”视图(CWE-699)相关引入模式 阶段 说明 ...翻译 2019-05-09 14:39:51 · 373 阅读 · 0 评论 -
CWE-457: Use of Uninitialized Variable(变量未初始化)
ID: 457 类型:变量 结构:简单 状态:草稿 描述代码使用没有初始化的变量,这可能导致不可预知的结果。扩展描述在某些诸如C和C++中,堆栈变量在默认情况下不会初始化。在调用函数之前,它们通常包含包含堆栈内存内容的垃圾数据。攻击者有时可以控制或读取这些内容。在其他语言或条件中,根据程序的逻辑,未显式初始化的变量可...翻译 2019-04-24 14:53:15 · 4240 阅读 · 0 评论 -
CWE-468: Incorrect Pointer Scaling(指针缩放错误)
ID: 468 类型:基础 结构:简单 状态:未完成 描述在 C和C++中,由于存在指针索引的隐式数据转换,人们经常会意外地引用错误的内存。相关视图与“研究层面”视图(CWE-1000)相关与“开发层面”视图(CWE-699)相关引入模式 阶段 说明 实现 ...翻译 2019-04-29 14:42:29 · 299 阅读 · 0 评论 -
CWE-375: Returning a Mutable Object to an Untrusted Caller(将可变对象返回给不受信任的调用方)
ID: 375 类型:基础 结构:简单 状态:草稿 描述将非克隆可变数据作为返回值发送可能会导致调用函数更改或删除该数据。扩展描述在函数返回对可变数据的引用的情况下,调用函数的外部代码可能会对发送的数据进行更改。如果以前没有克隆此数据,那么类将使用修改过的数据,这可能会违反对其内部状态的假设。关联视图与“研究层面”视图(...翻译 2019-04-20 14:26:29 · 243 阅读 · 0 评论 -
CWE-478: Missing Default Case in Switch Statement(switch缺少default)
ID: 478 类型:变量 结构:简单 状态:草稿 描述代码在switch语句中没有defult,这可能导致复杂的逻辑错误和由此产生的弱点。扩展描述这个缺陷代表了软件开发中的一个常见问题,在这个问题中,并非所有变量的可能值都由给定的过程来考虑或处理。因此,进一步的决策是基于糟糕的信息和级联故障结果。这种级联故障可能导致任何数量的...翻译 2019-05-05 16:37:11 · 2173 阅读 · 0 评论 -
CWE-460: Improper Cleanup on Thrown Exception(对引发的异常的清理不当)
ID: 460 类型:变量 结构:简单 状态:草稿 描述当抛出异常时,产品不会清除其状态或错误地清除其状态,从而导致意外的状态或控制流。扩展描述通常,当函数或循环变得复杂时,需要在整个执行过程中进行一定程度的资源清理。异常可能会干扰代码流,并防止发生必要的清理。相关视图与“研究层面”视图(CWE-1000)相关...翻译 2019-04-25 14:37:28 · 357 阅读 · 0 评论 -
CWE-481: Assigning instead of Comparing(赋值而不是比较)
ID: 481 类型:变量 结构:简单 状态:草稿 描述代码在打算比较的时候使用了赋值操作符。扩展描述在许多语言中,比较语句在外观上与赋值语句非常接近,经常混淆。这个错误通常是打字错误的结果,通常会导致程序执行出现明显的问题。如果比较在if语句中,if语句通常会计算谓词右侧的值。相关视图与“研究层面”视图(CWE-...翻译 2019-05-08 15:29:50 · 643 阅读 · 0 评论 -
CWE-469: Use of Pointer Subtraction to Determine Size(使用指针减法以确定大小)
ID: 469 类型:基础 结构:简单 状态:草稿 描述应用程序为了确定大小而采用指针减法,但是如果两个指针不在同一内存块的话会导致计算错误。相关视图与“研究层面”视图(CWE-1000)相关与“开发层面”视图(CWE-699)相关引入模式 阶段 说明 实现 ...翻译 2019-04-30 16:39:18 · 1188 阅读 · 0 评论 -
CWE-479: Signal Handler Use of a Non-reentrant Function(信号处理程序使用不可重入函数)
ID: 479 类型:变量 结构:简单 状态:草稿 描述程序定义了一个调用不可重入函数的信号处理程序。扩展描述不可重入函数是指在第一次调用完成之前不能安全地调用、中断和调用,而不会导致内存损坏的函数。这可能导致意外的系统状态、不可预测的结果,并根据上下文产生各种潜在后果,包括拒绝服务和代码执行。许多函数是不可重入的,但是如果...翻译 2019-05-06 14:59:45 · 497 阅读 · 0 评论 -
CWE-689: Permission Race Condition During Resource Copy(资源复制期间的权限竞争条件)
ID: 689 类型: 复合 结构:混合 状态:草稿 描述复制或克隆资源时,在复制完成之前,产品不会设置资源的权限或访问控制,使资源在复制过程中暴露于其他领域。复合组件 关系 类型 ID 名称 需要 ...翻译 2019-05-25 14:36:30 · 578 阅读 · 0 评论 -
CWE-484: Omitted Break Statement in Switch(switch省略break)
ID: 484 类型:基础 结构:简单 状态:草稿 描述程序省略了switch或类似构造中的break语句,导致执行与多个条件相关联的代码。当程序员只打算执行与一个条件相关联的代码时,这可能会导致问题。扩展描述这可能导致关键代码在不应该执行的情况下执行。相关试图与“研究层面”视图(CWE-1000)相关与“开发层面”...翻译 2019-05-13 08:25:05 · 244 阅读 · 0 评论 -
CWE-839: Numeric Range Comparison Without Minimum Check(无最小检查的数值范围比较)
ID: 839 类型:基础 结构:简单 状态:未完成 描述The program checks a value to ensure that it is less than or equal to a maximum, but it does not also verify that the value is greater than ...翻译 2019-06-05 07:45:18 · 446 阅读 · 0 评论 -
CWE-806: Buffer Access Using Size of Source Buffer(使用源缓冲区的大小访问缓冲区)
ID: 806 类型:变量 结构:简单 状态:未完成 描述软件在读取或写入目标缓冲区时使用源缓冲区的大小,这可能导致它访问缓冲区边界之外的内存。扩展描述当目标的大小小于源的大小时,可能会发生缓冲区溢出。相关视图"研究概念"视图 (CWE-1000) Nature Type ...翻译 2019-06-04 15:44:44 · 404 阅读 · 0 评论 -
CWE-805: Buffer Access with Incorrect Length Value(以不正确的长度值方位缓冲区)
ID: 805 类型:基础 结构:简单 状态:未完成 描述软件使用顺序操作来读取或写入缓冲区,但它使用的长度值不正确,导致它访问超出缓冲区界限的内存。扩展描述当长度值超过目标的大小时,可能发生缓冲区溢出。相关视图“研究概念”视图(CWE-1000) Nature Type ...翻译 2019-06-04 07:36:13 · 600 阅读 · 0 评论 -
CWE-789: Uncontrolled Memory Allocation(失控的内存分配)
ID: 789 类型:变量 结构:简单 状态:草稿 描述软件根据不受信任的大小值分配内存,但它不会验证或错误地验证大小,从而允许分配任意数量的内存。相关视图"研究概念"视图 (CWE-1000) Nature Type ID Name ...翻译 2019-06-03 14:16:55 · 1413 阅读 · 0 评论 -
CWE-785: Use of Path Manipulation Function without Maximum-sized Buffer(使用路径操作函数而没有最大缓冲区限制)
ID: 785 类型:变量 结构:简单 状态:未完成 描述该软件调用一个函数来规范化路径或文件名,但它提供的输出缓冲区小于可能的最大大小,如path_max。扩展描述将大小不适当的输出缓冲区传递给路径操作函数可能导致缓冲区溢出。这些函数包括realPath()、readLink()、pathAppend()和其他。相关视图...翻译 2019-06-03 07:24:33 · 310 阅读 · 0 评论 -
CWE-783: Operator Precedence Logic Error(操作符优先级逻辑错误)
ID: 783 类型:变量 结构:简单 状态:草稿 描述程序使用一个表达式,其中运算符优先级导致使用不正确的逻辑。扩展描述虽然通常只是一个bug,但如果在安全关键代码中使用运算符优先级逻辑错误,例如进行身份验证决策,则会产生严重后果。相关视图"研究概念"视图 (CWE-1000) Nature ...翻译 2019-06-02 14:23:14 · 295 阅读 · 0 评论 -
CWE-782: Exposed IOCTL with Insufficient Access Control(对IOCTL功能的访问控制不充分)
ID: 782 类型:变量 结构:简单 状态:草稿 描述软件实现了应该限制使用的IOCTL,但是却没有恰当的强化对IOCTL的访问。扩展描述当ioctl包含特权功能并且不必要地暴露时,攻击者可以通过调用ioctl来访问此功能。即使功能是良性的,如果程序员假定IOCTL只能由受信任的进程访问,那么可能很少或根本没有对传入数据的验证...翻译 2019-06-02 09:22:30 · 274 阅读 · 0 评论 -
CWE-911: Improper Update of Reference Count(引用计数更新不当)
ID: 911 类型:基础 结构:简单 状态:未完成 描述软件使用引用计数来管理资源,但不会更新或错误地更新引用计数。扩展描述当跟踪有多少对象包含对特定资源的引用(如内存管理或垃圾收集)时,可以使用引用计数。当引用计数为零时,可以取消分配或重用资源,因为没有更多的对象使用它。如果引用计数意外地达到零,那么即使资源仍在使用中,也可...翻译 2019-06-06 14:43:51 · 333 阅读 · 0 评论 -
CWE-910: Use of Expired File Descriptor(使用过期的文件)
ID: 910 类型:基础 结构:简单 状态:未完成 描述软件在关闭后使用或访问文件扩展描述释放特定文件或设备的文件描述符后,可以重新使用它。代码可能不会写入原始文件,因为重新使用的文件描述符可能引用其他文件或设备。相关视图"研究概念" (CWE-1000) Nature Type ...翻译 2019-06-06 08:56:04 · 228 阅读 · 0 评论 -
CWE-843: Access of Resource Using Incompatible Type (使用不兼容类型访问资源)
ID: 843 类型:基础 结构:简单 状态:未完成 描述程序使用一种类型分配或初始化资源,例如指针、对象或变量,但稍后它使用与原始类型不兼容的类型访问该资源。扩展描述当程序使用不兼容的类型访问资源时,这可能会触发逻辑错误,因为资源没有预期的属性。在没有内存安全的情况下,如C和C++,类型混淆可能导致越界内存访问。...翻译 2019-06-05 14:42:22 · 450 阅读 · 0 评论 -
CWE-781: Improper Address Validation in IOCTL with METHOD_NEITHER I/O Control Code(IOCTL漏洞)
ID: 781 类型:变量 结构:简单 状态:草稿 描述软件为了进行I/O操作而定义了一个使用METHOD_NEITHER的IOCTL,但是它却没有验证或者不正确地验证所提供的地址。扩展描述当IOCTL使用METHOD_NEITHER选项及进行I/O控制,IOCTL负责验证已提供给它的地址。如果验证丢失或不正确,攻击者可以提供任...翻译 2019-05-31 14:24:33 · 461 阅读 · 0 评论 -
CWE-733: Compiler Optimization Removal or Modification of Security-critical Code(编译器优化删除或修改安全关键代码)
ID: 733 类型:基础 结构:简单 状态:未完成 描述开发人员在软件中构建了一个安全关键的保护机制,但是编译器对程序进行了优化,以至于删除或修改了该机制。相关视图"研究层面"视图 (CWE-1000) 关系 类型 ID 名称 子...翻译 2019-05-28 15:11:56 · 286 阅读 · 0 评论 -
CWE-562: Return of Stack Variable Address(返回堆栈变量地址)
ID: 562 类型:基础 结构:简单 状态:草稿 描述函数返回堆栈变量的地址,这将导致意外的程序行为,通常以崩溃的形式出现。扩展描述因为局部变量是在堆栈上分配的,所以当程序返回指向局部变量的指针时,它将返回堆栈地址。随后的函数调用可能会重复使用相同的堆栈地址,从而覆盖指针的值,指针不再对应于同一个变量,因为函数的堆栈帧在返回时...翻译 2019-05-18 15:28:35 · 796 阅读 · 1 评论 -
CWE-762: Mismatched Memory Management Routines(不匹配的内存管理)
ID: 762 类型:变量 结构:简单 状态:未完成 描述应用程序试图向系统返回内存资源,但它调用的释放函数与最初用于分配该资源的函数不兼容扩展描述这种弱点通常被描述为内存管理不匹配,例如::内存是在堆栈上分配的(自动),但它是使用内存管理函数free()(cwe-590)释放的,该函数用于显式分配堆内存。 使用一组内存...翻译 2019-05-30 14:19:56 · 451 阅读 · 0 评论 -
CWE-704: Incorrect Type Conversion or Cast(不正确的类型转换或者强制转换)
ID: 704 类型:类 结构:简单 状态:未完成 描述软件无法将对象、资源或结构从一种类型正确转换为另一种类型“研究层面”视图(CWE-1000) 关系 类型 ID 名称 子女 664 ...翻译 2019-05-27 15:09:18 · 657 阅读 · 0 评论 -
CWE-685: Function Call With Incorrect Number of Arguments(函数调用参数数量不对)
ID: 685 类型:变量 结构:简单 状态:草稿 描述软件调用函数、过程或例程,但调用方指定的参数太多或太少,这可能导致未定义的行为和结果弱点。相关视图与“研究层面”视图(CWE-1000)相关与“开发层面”视图(CWE-699)相关引入模式 阶段 说明 实现 ...翻译 2019-05-22 21:24:00 · 3727 阅读 · 0 评论 -
CWE-560: Use of umask() with chmod-style Argument(使用umask函数时参数是chmod风格)
ID: 560 类型:变量 结构:简单 状态:草稿 描述该产品调用umask()时使用的参数不正确,该参数被指定为chmod()的参数。相关视图与“研究层面”视图(CWE-1000)相关与“开发层面”视图(CWE-699)相关引入模式 阶段 说明 实现 ...翻译 2019-05-17 14:49:21 · 292 阅读 · 0 评论 -
CWE-374: Passing Mutable Objects to an Untrusted Method(将可变对象传递给不受信任的方法)
ID: 374 类型:基础 结构:简单 状态:草稿 描述程序将非克隆可变数据作为参数发送给方法或函数。扩展描述已调用的函数或方法可以更改或删除可变数据。这可能违反调用函数对其状态所做的假设。在使用对可变数据的引用调用未知代码的情况下,此外部代码可以对发送的数据进行更改。如果以前没有克隆此数据,则修改后的数据在执行上下文中可能无效...翻译 2019-04-19 14:54:46 · 292 阅读 · 0 评论 -
CWE-476: NULL Pointer Dereference(空指针间接引用)
ID: 476 类型:基础 结构:简单 状态:草稿 描述空指针间接引用发生在应用程序间接引用其预期有效但实际为空的指针时,通常会导致崩溃或退出。扩展描述空指针间接引用可能在多个弱点发生后发生,如竞争条件和简单程序省略等。相关视图与“研究层面”视图(CWE-1000)相关与“开发层面”视图(CWE-699)相关引入...翻译 2019-05-03 16:03:31 · 17851 阅读 · 0 评论