描述
产品使用引用计数来管理资源,但它不更新或不正确地更新引用计数。
扩展描述
时可以使用引用计数跟踪多少对象包含一个引用一个特定的资源,如内存管理或垃圾收集。当引用计数为0时,资源可以回收或再利用,因为没有更多的对象,使用它。如果引用计数意外到达零,那么资源可能过早释放,尽管它仍在使用。如果所有对象不再使用资源,但引用计数不为零,那么资源可能永远不会被释放。
的关系
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
利用的可能性
观察到的例子
参考 |
描述 |
|
链:引用计数不递减,导致操作系统的内存泄漏通过发送ICMP数据包。 |
|
引用计数为共享内存没有递减函数失败,可能允许无特权的用户阅读内核内存。 |
|
链:引用计数跟踪不当会导致文件描述符消费 |
|
链:引用计数整数溢出导致两次相同的变量被摧毁。 |
|
不正确的引用计数计算导致不当对象破坏和代码的执行。 |
|
链:不正确的引用计数的更新会导致内存泄漏。 |
|
链/复合:用不正确的数据类型的一个引用计数器允许一个计数器溢出,导致一个免费的记忆仍在使用。 |
|
密码操作的引用计数不当会导致失败。 |
|
链:引用计数在垃圾收集程序不当导致use-after-free |
|
链:引用计数不正确维护大型操作期间客户端断开时,导致use-after-free。 |
|
引用计数并不增加,导致崩溃或代码执行。 |
|
引用计数不当导致过期的指针。 |
|
操作系统内核增加引用计数两次但只有衰减,导致资源消耗和崩溃。 |
|
操作系统内核驱动程序允许代码执行 |
|
引用计数不当会导致疲惫的IP地址 |
|
竞态条件导致引用计数器递减过早,导致至今对象的破坏和无效的指针。 |
|
引用计数不当导致use-after-free |
弱点Ordinalities
Ordinality |
描述 |
主 |
(其他弱点的弱点存在独立的) |
引用
|