HollowByte 冇 CVE 仲易走漏:OpenSSL server 點查版本同補洞
Tech News

HollowByte 冇 CVE 仲易走漏:OpenSSL server 點查版本同補洞

圖片:via iThome — https://www.ithome.com.tw/news/177425
TechLab 編輯部(譯)·

NGINX、Apache 管理員要核對實際載入嘅 library 同發行版修補紀錄

Okta Red Team 公開咗一個名為 HollowByte 嘅 OpenSSL 問題:未登入嘅遠端連線可以喺 TLS handshake 初段,令 server 按對方聲稱嘅訊息長度預先分配記憶體。輸入本身只得 11 bytes,但單次分配最高可到約 131KB。OpenSSL 已喺 6 月更新修補,不過官方只當佢係 bug/hardening fix,冇 CVE、冇獨立安全公告,亦冇喺版本更新重點清楚點名。對維運人員嚟講,呢種低調修補反而幾易走漏。

細流量點樣拖住大量記憶體

舊版 OpenSSL 收到 TLS handshake header 後,會先按入面申報嘅長度擴大接收 buffer,完整內容仲未到、格式亦未驗。Okta 話,連線中斷後 OpenSSL 會釋放 buffer,但佢哋測試用嘅 glibc 傾向保留中小型記憶體區塊供程序重用;當分配大小不停轉,heap 可能嚴重碎片化,程序嘅常駐記憶體用量就會一路升。

Okta 用 NGINX 測試時,1GB RAM 嗰部機有約 547MB 記憶體因碎片化而用唔返,最後觸發 OOM killer;16GB 嗰部機亦試過有四分之一系統記憶體俾碎片佔住。呢啲係 Okta 指定環境嘅測試結果,唔代表所有 server 都會同樣失守。 實際影響仲要睇 OpenSSL 整合方式、glibc 或其他 allocator、NGINX/Apache worker 架構、連線 timeout、記憶體上限同前置代理設定。

冇 CVE,掃描報告可能一片綠

今次最值得警惕嘅位係漏洞管理流程。好多 SCA、弱點掃描器同合規報告都以 CVE、OVAL feed 或發行版安全公告做索引;HollowByte 冇編號,工具就算認得 OpenSSL 版本,都未必會將佢列成待處理漏洞。iThome 報道亦點出,呢項改動同 6 月 9 日一批正式安全修補一齊出現,所以好易俾 CVE-2026-45447 搶晒注意力。

兩件事要分開睇:CVE-2026-45447 係 PKCS7_verify() 嘅 heap use-after-free,官方評為高風險;HollowByte 係另一項 TLS buffer hardening 改動。 裝咗同批更新,有機會順便收到兩邊修補,但安全報告顯示 CVE-2026-45447 已解決,唔等於已證實 HollowByte 同樣補好。下游發行版經常保留舊 upstream 版本號再 backport,單望 openssl version 亦可能判斷錯。

邊啲版本要查

OpenSSL 已確認改動收錄喺 4.0.1、3.6.3、3.5.7、3.4.6 同 3.0.21。按相應 backport PR 推算,同一分支內較早版本,即 4.0.0、3.6.0 至 3.6.2、3.5.0 至 3.5.6、3.4.0 至 3.4.5,同 3.0.0 至 3.0.20,都應列入核查範圍。3.3、3.2、3.1、1.1.1 同更舊分支未見列入今次已修補版本清單,亦唔應因為冇列名就當安全;繼續用已過一般支援期嘅分支,要直接向供應商確認有冇 backport。

先喺 host 同 container 跑 openssl version -a,再用 nginx -V 睇編譯及執行時 OpenSSL 資料。Debian/Ubuntu 可查 dpkg-query -W openssl libssl3 libssl3t64,RHEL 系可查 rpm -q openssl openssl-libs。Apache、Node.js、Python、PHP、database server 同自帶 OpenSSL 嘅應用亦要逐個核對,因為系統個 openssl 指令更新咗,唔代表每個程序都載入同一份 library。

更新套件後仲要重啟服務

自行跟 upstream 建置嘅環境,應升到上面列出嘅已修補版本或更新版本。用 Linux 發行版套件嗰啲,就跟供應商 repository 更新,再查 package changelog 有冇 OpenSSL PR #30792、#30793、#30794 對應改動,或者直接向供應商確認。Ubuntu 同 Debian 6 月公告列出嘅係同批 CVE 修補,公告本身冇點名 HollowByte,所以唔宜單憑嗰張 CVE 清單作結論。

OpenSSL 改用逐步擴大 buffer,按實際收到嘅資料先分配記憶體。更新後要重啟 NGINX、Apache、app server、database 同相關 container,否則已經行緊嘅程序仍可留住舊 library。未完成更新前,縮短未完成 TLS handshake 嘅 timeout、限制來源連線、收緊 origin 只接受可信反向代理流量,同設好程序記憶體上限,可以減低影響;呢啲措施只屬臨時控制。今次官方 PR 亦寫明改動只處理 TLS,DTLS 路徑暫時冇跟住改,行 DTLS 嘅服務要另外評估。


參考來源

本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。

分享:WhatsAppThreadsTelegramFacebook