您好,登錄后才能下訂單哦!
如何進行QEMU USB模塊越界讀寫漏洞CVE-2020-14364通告,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
2020年08月25日,360CERT監測發現 qemu
發布了 qemu 內存越界漏洞
的風險通告,該漏洞編號為 CVE-2020-14364
,漏洞等級:高危
,漏洞評分:8.2
。
qemu 已發布安全補丁
攻擊者通過 構造特殊的內存數據
,可造成 虛擬機逃逸并執行任意代碼
的影響。
該漏洞在2020年8月13日的ISC2020第八屆互聯網安全大會上,由360 VulcanTeam團隊公開
對此,360CERT建議廣大用戶及時將 qemu
應用最新修復方案。與此同時,請做好資產自查以及預防工作,以免遭受黑客攻擊。
360CERT對該漏洞的評定結果如下
評定方式 | 等級 |
---|---|
威脅等級 | 高危 |
影響面 | 廣泛 |
360CERT評分 | 8.2 |
該漏洞存在于Qemu USB模塊,可造成越界讀寫,進而實現虛擬機逃逸。
@@ -129,6 +129,7 @@ void usb_wakeup(USBEndpoint *ep, unsigned int stream)
static void do_token_setup(USBDevice *s, USBPacket *p)
{
int request, value, index;
+ unsigned int setup_len;
if (p->iov.size != 8) {
p->status = USB_RET_STALL;
@@ -138,14 +139,15 @@ static void do_token_setup(USBDevice *s, USBPacket *p)
usb_packet_copy(p, s->setup_buf, p->iov.size);
s->setup_index = 0;
p->actual_length = 0;
- s->setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6];
- if (s->setup_len > sizeof(s->data_buf)) {
+ setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6];
+ if (setup_len > sizeof(s->data_buf)) {
fprintf(stderr,
"usb_generic_handle_packet: ctrl buffer too small (%d > %zu)\n",
- s->setup_len, sizeof(s->data_buf));
+ setup_len, sizeof(s->data_buf));
p->status = USB_RET_STALL;
return;
}
+ s->setup_len = setup_len;
根據補丁分析漏洞成因為:
當s->setup_len 獲得的值大于sizeof(s->data_buf) 時,返回時沒有將s->setup_len的值清零。導致后續在函數do_token_in 或 do_token_out使用s->setup_len時出現越界讀寫漏洞。
- qemu:qemu
: 全版本
及時安裝修復補丁,補丁地址:
XSA-335 - Xen Security Advisories
http://xenbits.xen.org/xsa/advisory-335.html
Red Hat:
Red Hat Customer Portal
https://access.redhat.com/security/cve/CVE-2020-14364
Debain:
Debain CVE-2020-14364
https://security-tracker.debian.org/tracker/CVE-2020-14364
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。