ID: 911 類型:基礎 |
狀態:未完成 |
描述
軟件使用引用計數來管理資源,但不會更新或錯誤地更新引用計數。
擴展描述
當跟蹤有多少對象包含對特定資源的引用(如內存管理或垃圾收集)時,可以使用引用計數。當引用計數爲零時,可以取消分配或重用資源,因爲沒有更多的對象使用它。如果引用計數意外地達到零,那麼即使資源仍在使用中,也可能很快釋放出來。如果所有對象不再使用該資源,但引用計數不爲零,則可能永遠不會釋放該資源。
相關視圖
Nature |
Type |
ID |
Name |
ChildOf |
664 |
||
CanPrecede |
672 |
||
CanPrecede |
772 |
Nature |
Type |
ID |
Name |
MemberOf |
452 |
引入模式
階段 |
說明 |
實現 |
應用平臺
語言
C (Sometimes Prevalent)
C++ (Sometimes Prevalent)
Class: Language-Independent (出現的可能性不確定)
被利用的可能性:
一般
參考 |
描述 |
連鎖: 引用計數不遞減,通過發送ICMP數據包導致操作系統內存泄漏。 |
|
當函數失敗時,共享內存的引用計數沒有減少,這可能允許非特權用戶讀取內核內存。 |
|
連鎖: 不正確的引用計數跟蹤導致文件描述符使用 |
|
連鎖: 引用計數器中的整數溢出導致同一變量被銷燬兩次。 |
|
不正確的引用計數計算會導致不正確的對象破壞和代碼執行。 |
|
連鎖: 引用計數更新不正確會導致內存泄漏。 |
|
連鎖/組成 引用計數器使用不正確的數據類型會導致計數器溢出,導致內存不足,仍在使用中。 |
|
引用計數不正確會導致加密操作失敗。 |
|
連鎖:垃圾收集例程中不正確的引用計數導致在釋放後使用 |
|
連鎖:當客戶端在大型操作期間斷開連接時,引用計數沒有正確維護,導致在空閒釋放後使用。 |
|
引用計數不總是遞增,導致崩潰或代碼執行。 |
|
引用計數不正確會導致指針取消引用過期 |
|
操作系統內核將引用計數增加兩次,但只減少一次,從而導致資源消耗和崩潰。 |
|
OS內核驅動程序允許代碼執行 |
|
不正確的引用計數導致IP地址耗盡 |
|
競爭導致引用計數器過早遞減,導致活動對象被破壞,指針取消引用無效。 |
|
i不正確的參考計數導致釋放後使用 |
規律 |
描述 |
主要 |
(存在與其他弱點無關的弱點) |
[REF-884] Mateusz "j00ru" Jurczyk. "Windows Kernel Reference Count Vulnerabilities - Case Study". 2012-11. <http://j00ru.vexillium.org/dump/zn_slides.pdf>. |