2026-05-09
Selecting...
Home Page
reload
Search in this channel...
Punch card
Raw Text (irssi format)
Fork on github
switch to admin mode
Jump to...
redirecting...
Log for
Ubuntu 台灣社群
am 12:07:59
(つ`ω´)つ
a
cme.sh
RCE 漏洞
在台灣時間 2023/06/09 清晨五點時,有位外國使用者在
acme.sh
的官方 repo 裡發布了一條 issue。
簡要來說就是一個名為 HiCA 的聲稱提供免費憑證服務,但 HiCA 在憑證簽發過程中注入了執行指令,從而讓
acme.sh
在客戶端上執行指令。而 HiCA 利用此漏洞在簽發過程中安插出現 QRCode 提示要求付款來完成簽發作業。在 HiCA 的文件說明裡提到,它僅支援
acme.sh
完成簽發作業,同時他並不是遵循標準簽發流程作業。
而造成此原因最根本的問題是
acme.sh
在簽發過程有一個執行指令的過程,在程式語言的概念可以稱為 eval,而 eval 本身是一件非常危險的事情,他的概念相當於將輸入的任何字串當作指令來執行,以一般現代的安全掃描程式基本上會直接阻擋這種行為的,如果要使用 eval 則應該要實作白名單,僅允許特定行為,就是因為
acme.sh
沒有做到這點導致被 HiCA 濫用此行為。
對此 HiCA 負責人在 issue 內辯稱,他們曾向
acme.sh
捐贈 1000 美金,同時他們承認他們利用這點漏洞,但他們稱 HiCA 為「非營利項目」,並且可根據 Mohlt 的請求分析證明他們從未注入具有危害的攻擊性指令。
所以為什麼這件事情應該被正視?
1. HiCA 簽發作業流程非標準 ACME 挑戰,且其中過程不透明
2. HiCA 公司未在中國上海
3. HiCA 利用了
acme.sh
RCE 漏洞,而不是通報,並且辯稱捐贈 1000 美金給
acme.sh
有種試圖掩蓋他們的行為
4. HiCA 甚至因此基於 ACME 流程上加上了付款流程在中國申請專利,令人費解的是他同時說自己是非營利項目
https://qxb-img-osscache.qixin.com/patents_pdf_new/2219395a941e8bae0e5cb4475b3b3610.pdf
5. 第一時間的回應沒有說明利用範圍,甚至給予更多描述,而是關閉所有伺服器,顯得非常現在逃避
作為使用者該怎麼辦?
根據團隊檢視
acme.sh
似乎還是有其他類似的漏洞尚未被發現,同時建議簽發免費憑證請慎選來源商,這邊僅建議使用 Let’s Encrypt 簽發,或是 Google 簽發的憑證,同時有擔憂的話請使用 EEF 所提供的 certbot,或參考其他客戶端
https://letsencrypt.org/docs/client-options
。
後續個人在網頁上閒晃發現,當初 HiCA 也確實有提供簽發免費的憑證,但由於
acme.sh
後續更新預設簽發憑證為 ECC 格式,他們為此設計了 ECC 需要付款,但有人發現即使簽發時代入指定 RSA 格式依舊會彈出需要付款提示,原來是 key 的長度 2048 就要付款啊。
🔗 連結:
https://github.com/acmesh-official/acme.sh/issues/4659
https://www1.hi.cn/en/
https://qxb-img-osscache.qixin.com/patents_pdf_new/2219395a941e8bae0e5cb4475b3b3610.pdf
am 08:35:30
Richard Liu
am 08:46:36
Richard Liu
https://blog.freessl.cn/acme-quick-start/
am 09:07:03
Moca
我都用 Certbot(
am 10:19:28
RJ Hsiao
https://2023.ubucon.asia/news/2023-06-12-call-for-paper-now-open/
大家有興趣的話可以準備投稿囉~
am 10:22:29
Richard Liu
已經改 acme 了
pm 06:54:19
Sean Ho
如果只用http-01 我會用 dehydrated
pm 07:53:12
腹黒い茶
我是都用 dns-01 所以我的選擇本來就比較少 🙁
created by
mmis1000
and release under
MIT License
GitHub Repo