Apache Karaf 同日修補六弱點,指令注入最嚴重
oss-security mailing list(Apache Karaf security advisories)· 2026-09-28
六則 Apache Karaf 安全公告在同一天集中發佈在 oss-security 郵件論壇上,其中最嚴重的一個讓任何能存取 Karaf shell 或 JMX 介面的使用者,透過子實例管理指令直接把作業系統指令注入到啟動流程裡。三則已確認公告的編號分別是 CVE-2026-91006(OS 指令注入)、CVE-2026-90979(LDAP filter injection)與 CVE-2026-91085(權限提升),全部影響 4.4.12 之前的版本,同一次改版一併修掉。
漏洞機制
CVE-2026-91006 出在 org.apache.karaf.instance.core 的子實例管理服務:建立子 JVM 啟動命令時用字串串接組裝參數,呼叫者傳入的 javaOpts 參數未經過任何跳脫或引號包裹就被拼進去,shell 特殊字元因此會被當成指令而非參數執行。可觸發的路徑包含 instance:create、instance:start、instance:restart、instance:change-opts 這幾個 shell 指令,以及對應的 InstancesMBean JMX 操作——也就是說攻擊面不限於本機 shell,任何能連上 JMX 的用戶端都能觸發。
CVE-2026-90979 是一系列 LDAP filter injection,根源是多處程式碼組 LDAP 查詢時沒有跳脫使用者輸入。公告點名兩個具體位置:GSSAPILdapLoginModule 把 NameCallback 傳進來的名稱原封不動塞進查詢字串,LDAPBackingEngine 的 listRoles 也直接把 principal.getName() 帶入過濾條件,兩者都沒有處理 RFC 4515 定義的特殊字元(*、(、) 與 NUL),攻擊者可藉此改變過濾條件的結構,繞過原本要比對的身分限制。
CVE-2026-91085 則是設定檔缺漏:Karaf 出廠附帶的 ACL 設定檔裡,config:install 指令完全沒有寫入對應的 ACL 項目,導致任何已登入使用者——即使只有 viewer 角色——都能執行這個指令。因為它能把攻擊者控制的內容寫進、甚至覆蓋 ${karaf.etc} 目錄下的檔案,等於能直接竄改 ACL 設定本身,達成權限提升。
受影響版本
三則公告涵蓋的元件版本描述一致,都是 4.4.12 之前的版本:org.apache.karaf.instance.core(指令注入)、org.apache.karaf.jaas.modules.ldap(filter injection)與 Karaf 出廠的 ACL 設定檔(權限提升)。公告都沒有列出 CVSS 分數,三則都被標為 Moderate 等級;因為六則公告是同一天一起發出,凡是還停留在 4.4.11 或更早版本的部署都同時暴露在這三個問題之下。
| CVE | 機制 | 嚴重度 |
|---|---|---|
CVE-2026-91006 | 子實例啟動時 javaOpts 未跳脫,OS 指令注入 | Moderate(公告未列出 CVSS 分數) |
CVE-2026-90979 | LDAP 登入模組/角色查詢未跳脫使用者輸入,filter injection | Moderate(公告未列出 CVSS 分數) |
CVE-2026-91085 | config:install 缺 ACL 項目,viewer 角色可寫入 karaf.etc | Moderate(公告未列出 CVSS 分數) |
修補與緩解
三個問題都在 Apache Karaf 4.4.12 一併修好,最直接的做法是升級到 4.4.12 或更新版本。在升級之前,指令注入與權限提升這兩項都有設定層級的緩解手段可以先擋:公告建議在 ACL 設定檔裡加上 install = admin,並將 karaf.secured.command.compulsory.roles=admin 寫進 system.properties,強制所有未被明確授權的指令都要求 admin 角色,這能同時降低 config:install 缺 ACL 與其他潛在未設限指令的風險。
受影響最直接的是把 Karaf shell 或 JMX 介面暴露給多使用者、多角色環境的維運者——尤其是允許 viewer 等級帳號登入、又沒有額外網路層隔離的部署。啟用 LDAP 作為 JAAS 後端、且允許使用者自訂登入名稱或角色查詢的環境,也應該檢查是否已套用 4.4.12 或對應的跳脫修補,避免 filter injection 被用來繞過身分驗證邏輯。
原始來源:CVE-2026-91006:OS command injection、CVE-2026-90979:LDAP filter injection、CVE-2026-91085:權限提升