PHP5.2下chunk_split()函數整數溢出漏洞 分析_PHP教程

來源:互聯網
上載者:User
受影響系統:
PHP PHP < 5.2.3
不受影響系統:
PHP PHP 5.2.3
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 24261
CVE(CAN) ID: CVE-2007-2872

PHP是一種流行的WEB伺服器端程式設計語言。

PHP中的chunk_split函數在處理畸形參數時存在整數溢出漏洞,本地攻擊者可能利用此漏洞提升自己的許可權。

PHP中chunk_split函數的1963行試圖為函數結果分配充分的記憶體大小,但沒有執行任何檢查便使用了srclen和chunklen參數區塊。如果值的塊和endlen大於65534位元組的話,就會觸發整數溢出,分配錯誤的記憶體大小,導致堆溢出。

ext/standard/string.c:

1953 static char *php_chunk_split(char *src, int srclen, char *end,
int endlen, int chunklen, int *destlen)
1954 {
1955 char *dest;
1956 char *p, *q;
1957 int chunks; /* complete chunks! */
1958 int restlen;
1959
1960 chunks = srclen / chunklen;
1961 restlen = srclen - chunks * chunklen; /* srclen % chunklen */
1962
1963 dest = safe_emalloc((srclen + (chunks + 1) * endlen + 1),
sizeof(char), 0);
1964
1965 for (p = src, q = dest; p < (src + srclen - chunklen + 1); ) {
1966 memcpy(q, p, chunklen);
1967 q += chunklen;
1968 memcpy(q, end, endlen);
1969 q += endlen;
1970 p += chunklen;
1971 }

<*來源:Gerhard Wagner

連結:http://marc.info/?l=bugtraq&m=118071054000708&w=2
http://www.php.net/releases/5_2_3.php
http://secunia.com/advisories/25456/
*>

測試方法:
--------------------------------------------------------------------------------

警 告

以下程式(方法)可能帶有攻擊性,僅供安全研究與教學之用。使用者風險自負!

$a=str_repeat("A", 65535);
$b=1;
$c=str_repeat("A", 65535);
chunk_split($a,$b,$c);
?>

建議:
--------------------------------------------------------------------------------
廠商補丁:

PHP
---
目前廠商已經發布了升級補丁以修複這個安全問題,請到廠商的首頁下載:

http://www.php.net/downloads.php#v5

文章來自: 綠盟科技

http://www.bkjia.com/PHPjc/318299.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/318299.htmlTechArticle受影響系統: PHP PHP 5.2.3 不受影響系統: PHP PHP 5.2.3 描述: -------------------------------------------------------------------------------- BUGTRAQ ID: 24261 CVE...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.