跳至主內容

多個編程語言及框架雜湊表 (Hash Table) 碰撞阻斷服務漏洞

最後更新 2011年12月30日 18:10 發佈日期: 2011年12月30日 2366 觀看次數

風險: 高度風險

類型: 伺服器 - 互聯網應用伺服器

類型: 互聯網應用伺服器

在多個編程語言及框架發現漏洞,惡意使用者可利用漏洞導致阻斷服務。

由於多個編程語言及框架的儲存功能都使用雜湊資料結構來儲存鍵和值配對,攻擊者利用雜湊算式可預測碰撞的漏洞而導致阻斷服務的情況。如果編程語言及框架沒有適當限制POST請求的參數數量,配合在雜湊功能內可預測碰撞的屬性,攻擊者可透過存在漏洞的網上應用程式,導致阻斷服務的情況。


攻擊者可透過特製的HTTP請求導致CPU使用率達到100%,情況可持續長達數小時,但要視乎目標應用程式及伺服器的效能。攻擊者只需要很少頻寬及時間而獲得可觀的放大效應。


影響

  • 阻斷服務

受影響之系統或技術

  • Apache Geronimo - 所有版本
  • Apache Tomcat 5.5.34 及以前版本, 6.0.34 及以前版本, 7.0.22 及以前版本
  • Java - 所有版本
  • Jetty - 所有版本
  • JRuby 1.6.5 及以前版本
  • 微軟  ASP .NET - 所有版本
  • Oracle Glassfish 3.1.1 及以前版本
  • PHP 5.3.8 及以前版本, 5.4.0RC3 及以前版本
  • Plone - 所有版本
  • Python - 所有版本
  • Rack - 所有版本
  • Rubinius - 所有版本
  • Ruby 1.8.7-p356 及以前版本
  • V8 JavaScript Engine - 所有版本

解決方案

暫時未有修補程式,請先使用由軟體供應商提供之臨時處理方法。

  •  Apache Geronimo - 暫時未有修補程式
  •  Apache Tomcat 升級至版本 5.5.35 or 6.0.35 or  7.0.23
  •  Java - 暫時未有修補程式
  •  Jetty - 暫時未有修補程式
  •  JRuby - 升級至版本 1.6.5.1
  •  微軟 ASP .NET - 升級至在MS11-100提供的修補版本
  •  Oracle Glassfish - 暫時未有修補程式 (Oracle 匯報已修補主要的基碼並安排在未來的CPU使用已修補的版本)
  •  Plone - 暫時未有修補程式
  •  Python - 暫時未有修補程式
  •  PHP - 升級至版本 5.3.9 or 5.4.0RC4
  •  Rack - 暫時未有修補程式
  •  Rubinius - 暫時未有修補程式
  •  Ruby - 升級至版本1.8.7-p357 or 1.9.x
  •  V8 JavaScript Engine - 暫時未有修補程式

由於一些程式語言及框架暫時未有修補程式,請考慮以下的暫時解決方案:

  • 限制CPU時間
    限制單一請求的處理時間可減低惡意請求的影響。
  • 限制最大POST的大小
    限制最大POST的大小可減低可被預測碰撞的數量,從而減低攻擊的影響。
  • 限制最大參數的數量
    一些伺服器提供限制每一請求內參數數量的設定,設置這設定能減低攻擊的影響。

漏洞識別碼


資料來源


相關連結