成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Nginx暴露危漏洞CVE-2021-23017

安全 漏洞
日前著名Web服務器和反向代理服務器Nginx暴嚴重漏洞NS解析器Off-by-One堆寫入漏洞,該漏洞存在于Nginx的DNS解析模塊ngx_resolver_copy()。

日前著名Web服務器和反向代理服務器Nginx暴嚴重漏洞NS解析器Off-by-One堆寫入漏洞,該漏洞存在于Nginx的DNS解析模塊ngx_resolver_copy()。攻擊者可以利用該漏洞進行遠程DDos攻擊,甚至遠程執(zhí)行。

概述

ngx_resolver_copy()在處理DNS響應時出現(xiàn)一個off-by-one錯誤,利用該漏洞網(wǎng)絡攻擊者可以在堆分配的緩沖區(qū)中寫一個點字符(.’, 0x2E)導致超出范圍。 所有配置解析器語法的(resolver xxxx)Nginx實例可以通過DNS響應(響應來自Nginx的DNS請求)來觸發(fā)該漏洞。 特制數(shù)據(jù)包允許使用0x2E覆蓋下一個堆塊元數(shù)據(jù)的最低有效字節(jié),利用該漏洞攻擊者,可以實現(xiàn)Ddos拒絕服務,甚至可能實現(xiàn)遠程代碼執(zhí)行。

由于Nginx中缺乏DNS欺騙緩解措施,并且在檢查DNS事務ID之前調(diào)用了易受攻擊的功能,因此遠程攻擊者可能能夠通向中毒服務器注入受毒的DNS響應來利用此漏洞。

漏洞影響

嚴重等級: 高

漏洞向量: 遠程/DNS

確認的受影響版本: 0.6.18-1.20.0

確認的修補版本: 1.21.0,1.20.1

供應商: F5,Inc.

狀態(tài): 公開

CVE: CVE-2021-23017

CWE: 193

CVSS得分: 8.1

CVSS向量:CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C

漏洞分析

當Nginx配置中設置resolver時,Nginx DNS解析器(core/ngx_resolver.c)用于通過DNS解析多個模塊的主機名。

Nginx中通過ngx_resolver_copy()調(diào)用來驗證和解壓縮DNS響應中包含的每個DNS域名,接收網(wǎng)絡數(shù)據(jù)包作為輸入和指向正在處理的名稱的指針,并在成功后返回指向包含未壓縮名稱的新分配緩沖區(qū)的指針。調(diào)用整體上分兩步完成的,

  • 計算未壓縮的域名大小的長度len并驗證輸入包的合法性,丟棄包含大于128個指針或包含超出輸入緩沖區(qū)邊界的域名。
  • 分配輸出緩沖區(qū),并將未壓縮的域名復制到其中。

第1部分中的大小計算與第2部分中的未壓縮的域名之間的不匹配,導致一個len的一個off-by-one錯誤,導致允許以一個字節(jié)為單位寫一個點字符超出name->data的邊界。

當壓縮名稱的最后一部分包含一個指向NUL字節(jié)的指針時,就會發(fā)生計算錯誤。 盡管計算步驟僅考慮標簽之間的點,但每次處理標簽并且接著的字符為非NUL時,解壓縮步驟都會寫入一個點字符。當標簽后跟指向NUL字節(jié)的指針時,解壓縮過程將:

  1. // 1) copy the label to the output buffer, 
  2. ngx_strlow(dst, src, n); 
  3. dst += n; 
  4. src += n; 
  5. // 2) read next character, 
  6. n = *src++; 
  7. // 3) as its a pointer, its not NUL, 
  8. if (n != 0) { 
  9. // 4) so a dot character that was not accounted for is written out of bounds 
  10. *dst++ = '.'; 
  11. // 5) Afterwards, the pointer is followed, 
  12. if (n & 0xc0) { 
  13. n = ((n & 0x3f) << 8) + *src; 
  14. src = &buf[n]; 
  15. n = *src++; 
  16. // 6) and a NULL byte is found, signaling the end of the function 
  17. if (n == 0) { 
  18. name->len = dst - name->data; 
  19. return NGX_OK; 

如果計算的大小恰好與堆塊大小對齊,則超出范圍的點字符將覆蓋下一個堆塊長度的元數(shù)據(jù)中的最低有效字節(jié)。這可能會直接導致下一個堆塊的大小寫入,但還會覆蓋3個標志,從而導致 PREV_INUSE被清除并 IS_MMAPPED被設置。

  1. ==7863== Invalid write of size 1 
  2. ==7863== at 0x137C2E: ngx_resolver_copy (ngx_resolver.c:4018) 
  3. ==7863== by 0x13D12B: ngx_resolver_process_a (ngx_resolver.c:2470) 
  4. ==7863== by 0x13D12B: ngx_resolver_process_response (ngx_resolver.c:1844) 
  5. ==7863== by 0x13D46A: ngx_resolver_udp_read (ngx_resolver.c:1574) 
  6. ==7863== by 0x14AB19: ngx_epoll_process_events (ngx_epoll_module.c:901) 
  7. ==7863== by 0x1414D4: ngx_process_events_and_timers (ngx_event.c:247) 
  8. ==7863== by 0x148E57: ngx_worker_process_cycle (ngx_process_cycle.c:719) 
  9. ==7863== by 0x1474DA: ngx_spawn_process (ngx_process.c:199) 
  10. ==7863== by 0x1480A8: ngx_start_worker_processes (ngx_process_cycle.c:344) 
  11. ==7863== by 0x14952D: ngx_master_process_cycle (ngx_process_cycle.c:130) 
  12. ==7863== by 0x12237F: main (Nginx.c:383) 
  13. ==7863== Address 0x4bbcfb8 is 0 bytes after a block of size 24 alloc'd 
  14. ==7863== at 0x483E77F: malloc (vg_replace_malloc.c:307) 
  15. ==7863== by 0x1448C4: ngx_alloc (ngx_alloc.c:22) 
  16. ==7863== by 0x137AE4: ngx_resolver_alloc (ngx_resolver.c:4119) 
  17. ==7863== by 0x137B26: ngx_resolver_copy (ngx_resolver.c:3994) 
  18. ==7863== by 0x13D12B: ngx_resolver_process_a (ngx_resolver.c:2470) 
  19. ==7863== by 0x13D12B: ngx_resolver_process_response (ngx_resolver.c:1844) 
  20. ==7863== by 0x13D46A: ngx_resolver_udp_read (ngx_resolver.c:1574) 
  21. ==7863== by 0x14AB19: ngx_epoll_process_events (ngx_epoll_module.c:901) 
  22. ==7863== by 0x1414D4: ngx_process_events_and_timers (ngx_event.c:247) 
  23. ==7863== by 0x148E57: ngx_worker_process_cycle (ngx_process_cycle.c:719) 
  24. ==7863== by 0x1474DA: ngx_spawn_process (ngx_process.c:199) 
  25. ==7863== by 0x1480A8: ngx_start_worker_processes (ngx_process_cycle.c:344) 
  26. ==7863== by 0x14952D: ngx_master_process_cycle (ngx_process_cycle.c:130) 

雖然目前還沒有Poc出來,理論上該漏洞可以被用來進行遠程代碼執(zhí)行。

攻擊向量分析

DNS響應可以通過多種方式觸發(fā)漏洞。

首先,Nginx必須發(fā)送了DNS請求,并且必須等待響應。 然后,可以在DNS響應的多個部分進行投毒:

  • DNS問題QNAME,
  • DNS回答名稱,
  • DNS會回答RDATA以獲得CNAME和SRV響應,
  • 通過使用多個中毒的QNAME,NAME或RDATA值制作響應,可以在處理響應時多次擊中易受攻擊的函數(shù),從而有效地執(zhí)行多次脫機寫入。

此外,當攻擊者提供中毒的CNAME時,它將以遞歸方式解決,從而在執(zhí)行過程中觸發(fā)了額外的OOB寫操作 ngx_resolve_name_locked() 調(diào)用ngx_strlow()(ngx_resolver.c:594)和其他OOB讀取期間 ngx_resolver_dup()(ngx_resolver.c:790)和 ngx_crc32_short()(ngx_resolver.c:596)。

用于“example.net”請求的DNS響應示例負載,其中包含被污染的CNAME:

稍微不同的有效負載(poc.py中的有效負載)填充了足夠的字節(jié)以覆蓋 next_chunk.mchunk_size帶點的最低有效字節(jié):

24字節(jié)的標簽導致分配了24字節(jié)的緩沖區(qū),該緩沖區(qū)填充有24字節(jié)+一個超出范圍的點字符。

漏洞修復和解決

通過向域名解析時,在域名末尾寫入的偽造的點字符分配一個額外的字節(jié)可以緩解此問題。

受漏洞影響的配置

  1. daemon off; 
  2. http{ 
  3. access_log logs/access.log; 
  4. server{ 
  5. listen 8080; 
  6. location / { 
  7. resolver 127.0.0.1:1053; 
  8. set $dns example.net; 
  9. proxy_pass $dns; 
  10. events { 
  11. worker_connections 1024; 

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2021-01-31 10:31:29

Windows10操作系統(tǒng)RCE漏洞

2021-03-16 10:52:56

Chrome瀏覽器漏洞

2021-10-29 11:52:16

谷歌漏洞TPM

2021-10-06 13:54:12

漏洞PoC攻擊

2021-09-10 11:41:20

漏洞Windows 微軟

2021-11-08 11:52:17

漏洞LinuxLinux TIPC

2021-09-23 15:20:18

微軟漏洞代碼

2021-01-30 18:31:00

sudo緩存溢出漏洞

2021-07-21 10:04:02

安全漏洞Windows

2021-12-19 11:55:25

NIST安全漏洞網(wǎng)絡安全

2022-06-14 09:00:21

漏洞補丁

2020-12-28 10:23:00

中間人攻擊漏洞Kubernetes

2021-02-09 10:31:04

漏洞webWordPress F

2012-08-08 09:31:43

2015-01-29 11:47:35

2021-11-26 09:55:09

微軟漏洞補丁

2022-02-10 11:52:10

Windows漏洞Windows 10

2025-07-01 09:32:36

2025-05-12 09:00:00

2025-05-08 04:00:00

勒索軟件云安全云計算
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费观看一级毛片视频 | 日本免费网 | 欧美激情久久久久久 | 久久综合狠狠综合久久 | 美女视频黄色的 | 91精品久久久久久久久中文字幕 | 日韩高清中文字幕 | 久久成人国产精品 | 国产精品视频久久 | 国产精品久久9 | 91精品国产综合久久久久久丝袜 | 久久久久久免费精品一区二区三区 | 亚洲精品国产精品国自产在线 | 欧美伊人久久久久久久久影院 | 久久精彩视频 | 欧美日韩亚洲二区 | 日本免费一区二区三区四区 | 视频二区| 人人做人人澡人人爽欧美 | 午夜伦4480yy私人影院 | 亚洲性视频 | 国产精品无码久久久久 | 久久久久91 | 国产精品中文字幕在线播放 | 在线一级片 | 成人日韩av | 欧美日韩视频在线播放 | 欧美日本亚洲 | 超碰人人人人 | 国产二区精品视频 | 亚洲精品日韩一区二区电影 | av免费网站在线 | 羞羞免费网站 | 日韩高清不卡 | 欧美日韩国产一区二区三区 | 亚洲国产网站 | 在线观看成人精品 | 一区二区三区视频免费观看 | 亚洲精久久久 | 99久久精品国产一区二区三区 | 亚洲精品成人av |