概要
遠端 Debian 主機上缺少一個或多個安全性更新。
說明
遠端 Debian 11 / 12 主機安裝了一個套件,該套件受到 dla-4706 公告中提及的多個弱點影響。
- ------------------------------------------------------------------------- Debian LTS 公告 DLA-4706-1 [email protected] https://www.debian.org/lts/security/Abhijith 賓州 2026 年 7 月 31 日 https://wiki.debian.org/LTS
- -------------------------------------------------------------------------
套件:ruby-rack 版本:2.1.4-3+deb11u6 2.2.22-0+deb12u2 CVE 識別碼: CVE-2026-26961 CVE-2026-34230 CVE-2026-34763 CVE-2026-34785 CVE-2026-34786 CVE-2026-34826 CVE-2026-34829 CVE-2026-34830 CVE-2026-34831
在模組化 Ruby 網路伺服器介面 ruby-rack 中發現多個漏洞
CVE-2026-26961
Rack::Multipart::P arser 使用貪婪的規則運算式從 multipart/form-data 中擷取邊界參數。當 Content-Type 標頭包含多個邊界參數時,Rack 會選取最後一個參數,而不是第一個參數。在上游 Proxy、WAF 或中介解譯第一個邊界參數的部署中,此不相符可讓攻擊者走私多部分內容通過上游檢查,並讓 Rack 剖析與已驗證的中介不同的內文結構。
CVE-2026-34230
當標頭包含許多萬用字元 (*) 項目時,Rack::Utils.select_best_encoding 會處理具有二次時間複雜度的 Accept-Encoding 值。由於 Rack::D eflater 使用此方法來選擇回應編碼,因此未經驗證的攻擊者可以使用特製的 Accept-Encoding 標頭傳送單一要求,並在壓縮中介軟體路徑上造成不成比例的 CPU 消耗。這會導致使用 Rack::D eflater 的應用程式出現拒絕服務條件。
CVE-2026-34763
Rack::D irectory 在衍生顯示的目錄路徑時,將配置的根路徑直接內插到規則運算式中。如果 root 包含正則運算式中繼字元 (例如 +、* 或 .),則前置詞剝離可能會失敗,且產生的目錄清單可能會在 HTML 輸出中公開完整的檔案系統路徑。
CVE-2026-34785
Rack::Static 會使用簡單的字串前置詞檢查來決定是否應該將要求作為靜態檔案提供。當使用 URL 前置詞 (例如 /css) 進行設定時,它會符合以該字串開頭的任何要求路徑,包括不相關的路徑,例如 /css-config.env 或 /css-backup.sql。因此,靜態根目錄下名稱僅共用已設定前置詞的檔案可能會無意中被提供,從而導致資訊洩露。
CVE-2026-34786
Rack::Static#applicable_rules 會根據原始 URL 編碼的PATH_INFO評估數種header_rules類型,而基礎檔案提供路徑會在提供檔案之前進行解碼。因此,對靜態路徑的URL編碼變體的要求可以提供相同的檔案,而不需要header_rules要套用的標頭。在依賴 Rack::Static 將安全性相關回應標頭附加至靜態內容的部署中,攻擊者可藉由要求路徑的編碼形式來繞過這些標頭。
CVE-2026-34826
Rack::Utils.get_byte_ranges 剖析 HTTP Range 標頭,而不限制個別位元組範圍的數目。雖然拒絕總位元組涵蓋範圍超過檔案大小的範圍的 CVE-2024-26141 現有修正程式,但它不會限制範圍計數。攻擊者可以提供許多小的重疊範圍,例如 0-0,0-0,0-0,...以觸發每個要求不成比例的 CPU、記憶體、I/O 和頻寬消耗。這會導致在處理多部分位元組範圍回應的機架檔案服務路徑中出現拒絕服務條件。
CVE-2026-34829
Rack::Multipart::P arser 只會在 BoundedIO 存在時將要求本文包裝在 BoundedIO 中CONTENT_LENGTH。當傳送沒有 Content-Length 標頭的 multipart/form-data 要求時 (例如 HTTP 區塊傳輸編碼),multipart 剖析會持續到串流結束為止,沒有總大小限制。針對檔案部分,上傳的內文會直接寫入磁碟上的暫存檔案,而不是受到緩衝記憶體內上傳限制的限制。因此,未經驗證的攻擊者可以串流任意大的 multipart 檔案上傳,並消耗不受限制的磁碟空間。這會導致接受多部分表單資料的機架應用程式出現拒絕服務條件。
CVE-2026-34830
Rack::Sendfile#map_accel_path 在重寫 X-Accel-Redirect 的檔案路徑時,將 X-Accel-Mapping 要求標頭的值直接內插到規則運算式中。由於標頭值不會逸出,因此能夠向後端提供 X-Accel-Mapping 的攻擊者可以插入正則運算式中繼字元並控制產生的 X-Accel-Redirect 回應標頭。在使用 Rack::Sendfile 搭配 x-accel-redirect 的部署中,攻擊者可讓攻擊者從已設定的內部位置提供意外檔案。
CVE-2026-34831
Rack::Files#fail 使用 String#size 而不是 String#bytesize 來設定 Content-Length 回應標頭。當回應本文包含多位元組 UTF-8 字元時,宣告的 Content-Length 小於實際在網路上傳送的位元組數。由於 Rack::Files 會在 404 回應中反映要求的路徑,因此攻擊者可以透過要求包含百分比編碼 UTF-8 字元的不存在路徑來觸發此不相符。這會導致不正確的 HTTP 回應框架,並可能導致在依賴不正確 Content-Length 值的部署中導致回應不同步。
對於 Debian 11 bullseye,這些問題已在 2.1.4-3+deb11u6 版本中修復。
對於 Debian 12 書蟲,這些問題已在 2.2.22-0+deb12u2 版本中修復。
建議您升級 ruby-rack 套件。
如需有關 ruby-rack 安全性狀態的詳細資訊,請參閱其安全追蹤頁面:
https://security-tracker.debian.org/tracker/ruby-rack
有關 Debian LTS 安全公告、如何將這些更新套用至您的系統以及常見問題的詳細資訊,請參閱: https://wiki.debian.org/LTS
Tenable 已直接從 Debian 安全公告擷取前置描述區塊。
請注意,Nessus 並未測試這些問題,而是僅依據應用程式自我報告的版本號碼作出判斷。
Plugin 詳細資訊
檔案名稱: debian_DLA-4706.nasl
代理程式: unix
支援的感應器: Agentless Assessment, Continuous Assessment, Frictionless Assessment Agent, Nessus Agent, Tenable Cloud Security, Tenable Self-Hosted Container Security, Nessus
風險資訊
媒介: CVSS2#AV:N/AC:L/Au:N/C:C/I:N/A:N
媒介: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
時間媒介: CVSS:3.0/E:P/RL:O/RC:C
弱點資訊
CPE: cpe:/o:debian:debian_linux:11.0, cpe:/o:debian:debian_linux:12.0, p-cpe:/a:debian:debian_linux:ruby-rack
必要的 KB 項目: Host/local_checks_enabled, Host/Debian/release, Host/Debian/dpkg-l
可輕鬆利用: Exploits are available