PCRE(Perl兼容正則表達式)庫是個開放源代碼的軟件,可提供正則表達式支持。

pcre處理某些畸形正則表達式的方法存在多個漏洞:

CVE-2007-1659
在處理有孤兒"E"代碼的"QE"序列時存在漏洞,可能導致所編譯的正則表達式失去同步,執(zhí)行破壞的bytecode。

CVE-2007-1660
多種字符類在初始傳送階段錯誤的計算了大小,導致分配過少的內存。

CVE-2007-1661
非UTF-8模式的多種X?d或P{L}?d形式可能回退到字符串開始之前,這可能造成泄露地址空間地址或由于越界讀取而出現(xiàn)崩潰。

CVE-2007-1662
一些例程可能在尋找不匹配的括號或方括號時受騙讀過字符串的末尾,導致拒絕服務。

CVE-2007-4766
處理轉義序列時的多個整數(shù)溢出可能導致堆溢出或越界讀寫。

CVE-2007-4767
由于錯誤的處理非標準運算的長度,在處理P和P{x}序列時會出現(xiàn)多個死循環(huán)和堆溢出漏洞。

CVE-2007-4768
錯誤的優(yōu)化了包含有單個unicode序列的字符類,可能導致堆溢出。

受影響系統(tǒng)和軟件:


PCRE, PCRE, 6.0, 及其早期版本
PCRE, PCRE, 6.1, 及其早期版本
PCRE, PCRE, 7.3, 及其早期版本

解決方案:


升級到7.4版本:
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

參考資源一:


http://www.pcre.org/changelog.txt

參考資源二:


http://www.frsirt.com/english/advisories/2007/3725

參考資源三:


http://www.debian.org/security/2007/dsa-1399

致謝:


該漏洞由Tavis Ormandy發(fā)現(xiàn)。

分享到

多易

相關推薦