分塊編碼是是HTTP1.1協定中定義的Web用戶向伺服器提交數據的一種方法,當伺服器收到chunked編碼方式的數據時會分配一個緩衝區存放之,如果提交的數據大小未知,客戶端會以一個協商好的分塊大小向伺服器提交數據。
Apache伺服器預設也提供了對分塊編碼(chunkedencoding)支持。Apache使用了一個有符號變數儲存分塊長度,同時分配了一個固定大小的堆疊緩衝區來儲存分塊數據。出於安全考慮,在將分塊數據拷貝到緩衝區之前,Apache會對分塊長度進行檢查,如果分塊長度大於緩衝區長度,Apache將最多只拷貝緩衝區長度的數據,否則,則根據分塊長度進行數據拷貝。然而在進行上述檢查時,沒有將分塊長度轉換為無符號型進行比較,因此,如果攻擊者將分塊長度設定成一個負值,就會繞過上述安全檢查,Apache會將一個超長(至少>0x80000000位元組)的分塊數據拷貝到緩衝區中,這會造成一個緩衝區溢出。
現在已經證實在Win32系統下,遠程攻擊者可能利用這一漏洞執行任意代碼。在UNIX系統下,也已經證實至少在OpenBSD系統下可以利用這一漏洞執行代碼。
通過組合信道編碼與空-時編碼原理可增強性能。通過K個同步終端經N個天線發射到具有M$m(GK)個接收天線的基站,利用內碼為空-時分塊碼而外碼為常規信道糾錯碼的級聯編碼方案可獲得更大的系統容量和改進的性能。信息符號首先利用常規信道碼編碼,接著利用空-時分塊碼來編碼所得到的信號。在接收機中,使用內空-時分塊碼來抑制來自其它共信道終端的干擾,且對傳輸符號進行軟判決。接下來的信道解碼對傳輸符號進行硬判決。通過有效地將輸入數據率分成多個信道可實現數據率增加,而且每個信道在其自己的終端上傳輸。