View-658: Weaknesses in Software Written in C

ID: 658

Type: Implicit

Status: Draft

Objective

This view (slice) covers issues that are found in C programs that are not common to all languages.

Membership

CWE-ID title
CWE-121 栈缓冲区溢出
CWE-123 任意地址可写任意内容条件
CWE-125 跨界内存读
CWE-127 缓冲区下溢读取
CWE-129 对数组索引的验证不恰当
CWE-130 长度参数不一致性处理不恰当
CWE-134 使用外部控制的格式字符串
CWE-135 多字节字符串长度的计算不正确
CWE-14 编译器移除释放缓冲区的代码
CWE-188 依赖数据/内存布局
CWE-191 整数下溢(超界折返)
CWE-195 有符号至无符号转换错误
CWE-197 数值截断错误
CWE-243 未改变工作目录时创建chroot Jail
CWE-362 使用共享资源的并发执行不恰当同步问题(竞争条件)
CWE-364 信号处理例程中的竞争条件
CWE-366 单线程内的竞争条件
CWE-374 传递不可变的对象给非可信方法
CWE-119 内存缓冲区边界内操作的限制不恰当
CWE-120 未进行输入大小检查的缓冲区拷贝(传统缓冲区溢出)
CWE-122 堆缓冲区溢出
CWE-124 缓冲区下溢
CWE-126 缓冲区上溢读取
CWE-128 超界折返处理错误
CWE-131 缓冲区大小计算不正确
CWE-401 在移除最后引用时对内存的释放不恰当(内存泄露)
CWE-415 双重释放
CWE-170 不恰当的空终结符
CWE-462 在关联列表中具有重复Key
CWE-464 对数据结构哨兵域的增加
CWE-467 在指针类型上使用sizeof()
CWE-469 使用指针的减法来确定大小
CWE-474 使用具有不一致性实现的函数
CWE-476 空指针解引用
CWE-478 在Switch语句中缺失缺省条件
CWE-192 整数强制转换错误
CWE-194 未预期的符号扩展
CWE-196 无符号至有符号转换错误
CWE-481 错误将比较符号写成赋值符号
CWE-483 不正确的代码块分界
CWE-496 公开数据赋值给私有的数组类型数据域
CWE-242 使用内在危险函数
CWE-244 在释放前清理堆内存不恰当(堆检查)
CWE-676 潜在危险函数的使用
CWE-685 使用不正确参数个数的函数调用
CWE-689 在资源拷贝时的权限竞争条件
CWE-690 未检查返回值导致空指针解引用
CWE-365 Switch语句中的竞争条件
CWE-375 返回不可变的对象给非可信调用者
CWE-416 释放后使用
CWE-762 不匹配的内存管理例程
CWE-781 在METHOD_NEITHERIO控制代码中的IOCTL地址验证不恰当
CWE-783 操作符优先级逻辑错误
CWE-785 路径操作函数中使用未进行大小限定的缓冲区
CWE-787 跨界内存写
CWE-789 未经控制的内存分配
CWE-806 使用源缓冲区的大小访问缓冲区
CWE-839 未进行最小值检查的数值范围比较
CWE-843 使用不兼容类型访问资源(类型混淆)
CWE-457 使用未经初始化的变量
CWE-460 抛出异常的清理不恰当
CWE-463 对数据结构哨兵域的删除
CWE-466 在预期范围外返回指针值
CWE-468 不正确的指针放大
CWE-479 信号处理例程中使用不可再入的函数
CWE-480 使用操作符不正确
CWE-482 错误将赋值符号写成比较符号
CWE-484 在Switch语句中省略Break语句
CWE-495 从公开方法中返回私有的数组类型数据域
CWE-558 在多线程应用程序中使用getlogin()
CWE-560 在chmod类型参数中使用umask()
CWE-562 返回栈上的变量地址
CWE-911 引用计数的更新不恰当
CWE-587 将一个固定地址复制给指针
CWE-688 使用不正确变量或索引作为参数的函数调用
CWE-704 不正确的类型转换
CWE-733 编译器优化对安全关键代码的移除或修改
CWE-782 无充分访问控制条件下暴露IOCTL
CWE-805 使用不正确的长度值访问缓冲区
CWE-910 使用过期的文件描述符

Filter

/Weakness_Catalog/Weaknesses/Weakness[./Applicable_Platforms/Language/@Name='C']