ACK Edge集群CVE-2024-21626修復(fù)方案
runc社區(qū)披露了高危安全漏洞CVE-2024-21626,攻擊者可以利用該漏洞越權(quán)訪問宿主機(jī)文件或執(zhí)行二進(jìn)制程序,關(guān)于該漏洞的詳細(xì)信息,請(qǐng)參見runc社區(qū)公告 GHSA-xr7r-f8xq-vfvv。 建議您及時(shí)更新修復(fù)。
影響范圍
v1.20、v1.22、v1.24、v1.26的ACK Edge集群集群,且集群運(yùn)行時(shí)為containerd 1.5.13和1.6.20版本(其余版本不受影響)。
您可以在節(jié)點(diǎn)池頁面單擊節(jié)點(diǎn)池ID,然后單擊基本信息頁簽,查看節(jié)點(diǎn)池的運(yùn)行時(shí)及運(yùn)行時(shí)版本。
新建集群和存量集群的新增節(jié)點(diǎn)已完成升級(jí),不受該漏洞影響。
Docker運(yùn)行時(shí)不受該漏洞影響。
解決方案
修復(fù)腳本
針對(duì)受影響的節(jié)點(diǎn),需在節(jié)點(diǎn)上執(zhí)行以下腳本。
為保證集群和應(yīng)用穩(wěn)定性,請(qǐng)將待修復(fù)的節(jié)點(diǎn)分批灰度執(zhí)行修復(fù),請(qǐng)勿全量執(zhí)行。
公網(wǎng)接入節(jié)點(diǎn)
wget -qr https://ack-edge-cn.oss-rg-china-mainland.aliyuncs.com/runc-edge-cve.sh -O /tmp/runc-cve.sh && bash /tmp/runc-cve.sh
專線接入節(jié)點(diǎn)
請(qǐng)?jiān)诿钪兄付核诘腞egion。
export REGION=cn-hangzhou; wget -qr "https://aliacs-k8s-${REGION}.oss-${REGION}-internal.aliyuncs.com/public/pkg/edge/runc-edge-cve-internal.sh" -O /tmp/runc-cve.sh && bash /tmp/runc-cve.sh
預(yù)期輸出
預(yù)期輸出如下,表明當(dāng)前環(huán)境不存在CVE漏洞,系統(tǒng)未執(zhí)行任何變更。可忽略。
runc version is low, no cve, is safe
預(yù)期輸出如下,表明環(huán)境存在漏洞,并已完成替換修復(fù)。在此場(chǎng)景下,節(jié)點(diǎn)池大概率均存在漏洞。請(qǐng)將節(jié)點(diǎn)分批次灰度執(zhí)行修復(fù),并觀察業(yè)務(wù)運(yùn)行狀態(tài)。
cve is fixed...ok
版本信息
執(zhí)行以下命令,獲取修復(fù)后的runc工具版本信息。
runc --version | grep commit | awk -F "-g" '{print $2}'
預(yù)期輸出:
390c7001
執(zhí)行修復(fù)腳本后,并不會(huì)更改或升級(jí)runc版本。
該runc版本由ACK單獨(dú)維護(hù),在社區(qū)的影響版本范圍內(nèi),但是漏洞已經(jīng)修復(fù)。
回滾方案
若變更不符合預(yù)期,可在節(jié)點(diǎn)執(zhí)行如下命令進(jìn)行回滾,將runc恢復(fù)原有版本。
runc_path=$(command -v runc)
cp -f ${runc_path}_bak ${runc_path}