CWE-911: Improper Update of Reference Count(引用計數更新不當)

 ID: 911

類型:基礎
結構:簡單

狀態:未完成

描述

軟件使用引用計數來管理資源,但不會更新或錯誤地更新引用計數。

擴展描述

當跟蹤有多少對象包含對特定資源的引用(如內存管理或垃圾收集)時,可以使用引用計數。當引用計數爲零時,可以取消分配或重用資源,因爲沒有更多的對象使用它。如果引用計數意外地達到零,那麼即使資源仍在使用中,也可能很快釋放出來。如果所有對象不再使用該資源,但引用計數不爲零,則可能永遠不會釋放該資源。

相關視圖

 

 "研究概念" 視圖(CWE-1000)

Nature

Type

ID

Name

ChildOf

664

Improper Control of a Resource Through its Lifetime

CanPrecede

672

Operation on a Resource after Expiration or Release

CanPrecede

772

Missing Release of Resource after Effective Lifetime

 "開發概念"視圖 (CWE-699)

Nature

Type

ID

Name

MemberOf

452

Initialization and Cleanup Errors

引入模式

階段

說明

實現

 

應用平臺

語言

C (Sometimes Prevalent)

C++ (Sometimes Prevalent)

Class: Language-Independent (出現的可能性不確定)

被利用的可能性:

一般

已觀察到的案例

參考

描述

CVE-2002-0574

連鎖: 引用計數不遞減,通過發送ICMP數據包導致操作系統內存泄漏。

CVE-2004-0114

當函數失敗時,共享內存的引用計數沒有減少,這可能允許非特權用戶讀取內核內存。

CVE-2006-3741

連鎖: 不正確的引用計數跟蹤導致文件描述符使用

CVE-2007-1383

連鎖: 引用計數器中的整數溢出導致同一變量被銷燬兩次。

CVE-2007-1700

不正確的引用計數計算會導致不正確的對象破壞和代碼執行。

CVE-2008-2136

連鎖: 引用計數更新不正確會導致內存泄漏。

CVE-2008-2785

連鎖/組成 引用計數器使用不正確的數據類型會導致計數器溢出,導致內存不足,仍在使用中。

CVE-2008-5410

引用計數不正確會導致加密操作失敗。

CVE-2009-1709

連鎖:垃圾收集例程中不正確的引用計數導致在釋放後使用

CVE-2009-3553

連鎖:當客戶端在大型操作期間斷開連接時,引用計數沒有正確維護,導致在空閒釋放後使用。

CVE-2009-3624

引用計數不總是遞增,導致崩潰或代碼執行。

CVE-2010-0176

引用計數不正確會導致指針取消引用過期

CVE-2010-0623

操作系統內核將引用計數增加兩次,但只減少一次,從而導致資源消耗和崩潰。

CVE-2010-2549

OS內核驅動程序允許代碼執行

CVE-2010-4593

不正確的引用計數導致IP地址耗盡

CVE-2011-0695

競爭導致引用計數器過早遞減,導致活動對象被破壞,指針取消引用無效。

CVE-2012-4787

i不正確的參考計數導致釋放後使用

弱點規律

規律

描述

主要

(存在與其他弱點無關的弱點)

參考

[REF-884] Mateusz "j00ru" Jurczyk. "Windows Kernel Reference Count Vulnerabilities - Case Study". 2012-11. <http://j00ru.vexillium.org/dump/zn_slides.pdf>.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章