掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
收藏該文寫在前面

這個漏洞,應(yīng)該不是Stefan Esser發(fā)現(xiàn)的,應(yīng)該是Stefan Esser看到了github上的commit才隨藤摸瓜找到了這個漏洞,看來關(guān)注更新的確是一個好習(xí)慣啊。
正文
漏洞存在于DNS TXT記錄解析這個功能之中。Stefan Esser在github的一個代碼提交中發(fā)現(xiàn)了這個漏洞。當(dāng)PHP程序運(yùn)行dns_get_record()的時候,惡意的服務(wù)器或者是進(jìn)行中間人攻擊的黑客可以利用這個漏洞執(zhí)行任意代碼。
產(chǎn)生漏洞的代碼存在于ext/standard/dns.c,可以看到代碼之中加入了針對于長度的判斷。
- while (ll < dlen) {
- n = cp[ll];
- + if ((ll + n) >= dlen) {
- + // Invalid chunk length, truncate
- + n = dlen - (ll + 1);
- + }
- memcpy(tp + ll , cp + ll + 1, n);
- add_next_index_stringl(entries, cp + ll + 1, n, 1);
- ll = ll + n + 1;
Red Hat bug也收錄了這個漏洞,但也沒有給出具體細(xì)節(jié)。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流