CVE-2026-61484漏洞概述

Apache Lucy 是一套全文搜尋引擎函式庫,主要供 Perl 等程式建立搜尋索引。它不是 Apache HTTP Server,也不是一般網站伺服器。

CVE-2026-61484 發生在 Apache Lucy 的遠端搜尋功能 LucyX::Remote::SearchServer當系統啟用這項功能時,Lucy 會另外開啟一個 TCP 服務埠,供其他程式透過網路執行搜尋。

該服務在收到遠端資料後,會使用 Perl Storable::thaw() 將資料還原成物件,但沒有先確認資料是否可信。未經身分驗證的攻擊者若能連線至 Lucy SearchServer,就可能傳送特製資料,造成遠端程式碼執行或服務阻斷。此漏洞被歸類為 CWE-502「不受信任資料反序列化」,CVSS 3.1 評分為 9.8,風險等級為嚴重。

攻擊方式示意

正常網站與 Lucy SearchServer 通常是不同的服務入口:

一般使用者
    │
    │ HTTPS/443
    ▼
網站或應用程式
    │
    │ Lucy 自訂 TCP RPC
    ▼
LucyX::Remote::SearchServer
    │
    ▼
全文搜尋索引

攻擊者不一定需要經過網站:

攻擊者
    │
    │ 直接連線至 Lucy TCP 服務埠
    ▼
傳送特製的 Storable 二進位資料
    │
    ▼
SearchServer 執行 Storable::thaw()
    │
    ▼
可能執行任意程式碼或造成服務中斷

Lucy SearchServer 的程式會先讀取 4 位元組的資料長度,再讀取指定長度的資料,並直接呼叫 thaw()。完成反序列化後,才會檢查 RPC 動作名稱。這表示攻擊可能在一般業務邏輯檢查之前發生。

影響範圍

Apache 官方表示,Apache Lucy 所有版本均受此漏洞影響。

實際上具有遠端攻擊面的環境,通常需符合下列條件:

  • 系統已安裝 Apache Lucy。
  • 使用 LucyX::Remote::SearchServer 遠端搜尋功能。
  • Lucy SearchServer 的 TCP 服務埠可被攻擊者連線。
  • 服務埠未限制來源,或直接暴露於網際網路。

若系統只在程式內使用 Lucy 建立及搜尋本機索引,沒有啟用 Remote SearchServer,便沒有此漏洞所描述的遠端網路入口。

為何一般 WAF 無法有效阻擋?

本漏洞雖然發生在應用層,但攻擊流量通常不是 HTTP 或 HTTPS,而是 Lucy 自訂的 TCP RPC 協定。

一般 WAF 主要檢查:

HTTP 方法
網址與查詢參數
HTTP Header
Cookie
JSON、XML 或表單內容

Lucy SearchServer 接收的則是:

TCP 連線
+ 4 位元組資料長度
+ Perl Storable 二進位資料

因此,若攻擊者直接連線至 Lucy 的 TCP 服務埠,流量不會經過網站的 HTTP WAF。即使網站的 443 連接埠已部署 WAF,也無法保護另一個直接對外開放的 Lucy 服務埠。

WAF仍可用來保護網站,但不應作為此漏洞的主要防護措施。

建議處置方式

一、立即確認是否使用 Lucy Remote SearchServer

可在伺服器上檢查 Perl 或 Lucy 相關的監聽服務:

ss -lntp | grep -Ei 'perl|lucy'
lsof -nP -iTCP -sTCP:LISTEN | grep -Ei 'perl|lucy'

也可搜尋程式碼或設定檔是否包含:

LucyX::Remote::SearchServer
LucyX::Remote::SearchClient
ClusterSearcher
serve(
serve_sock(

官方文件中的 7890 只是範例連接埠,實際連接埠由系統部署時自行設定。

二、不需要遠端搜尋時,立即停用服務

若系統沒有跨主機搜尋需求,應停止 LucyX::Remote::SearchServer並關閉對應的 TCP 服務埠。

僅在同一台主機使用時,應將服務限制在:

127.0.0.1
或
::1

避免監聽於:

0.0.0.0
或
::

三、使用防火牆限制來源

若業務上仍需使用 Remote SearchServer,應透過主機防火牆、雲端 Security Group、網路 ACL 或 TCP Load Balancer,僅允許指定的應用伺服器連線。

範例原則:

允許:
指定應用伺服器 IP → Lucy TCP port

拒絕:
其他所有來源 → Lucy TCP port

不應允許下列來源直接連線:

0.0.0.0/0
::/0

若需跨網路連線,建議搭配 VPN、私有網路或支援雙向憑證驗證的 TCP Proxy,避免將 Lucy 服務埠直接暴露於網際網路。

四、不要只依賴封包關鍵字

攻擊內容使用二進位 Storable 格式,不一定包含 /bin/shcurlwget 等明顯文字。

另外,_actionhandshaketop_docs 等字串也可能出現在正常 Lucy 流量中。因此,只以關鍵字阻擋容易被繞過,也可能造成誤判。

最可靠的防護方式是:

不讓不可信來源連上 Lucy SearchServer

五、監控異常行為

建議監控以下事件:

  • Lucy 或 Perl 程序啟動 shbashcurlwgetpythonnc 等異常子程序。
  • Lucy 執行帳號在 /tmp 等目錄建立可執行檔。
  • Lucy 服務主動連線至不明外部 IP。
  • Lucy TCP 服務埠出現大量或來源異常的連線。
  • 服務發生不明原因崩潰、重啟或 Perl Storable 錯誤。
  • Lucy 執行帳號新增排程、SSH 金鑰或其他持久化設定。

六、規劃替換 Apache Lucy

Apache Lucy 已於 2018 年退休,並於 2019 年移入 Apache Attic,不再由原專案持續維護。

官方已明確表示,不會針對 CVE-2026-61484 發布修補版本,建議使用者改用其他產品,或將服務限制為僅供可信任使用者存取。

因此,防火牆與來源限制只能作為暫時降低風險的措施。長期解決方式仍是停止使用 Apache Lucy,並遷移至仍受維護的搜尋引擎或搜尋函式庫。

處置優先順序

1. 確認是否啟用 LucyX::Remote::SearchServer
                 ↓
2. 確認實際監聽 IP 與 TCP port
                 ↓
3. 若不需要,立即停止服務並關閉 port
                 ↓
4. 若仍需使用,只允許指定可信 IP
                 ↓
5. 加入程序、連線及檔案異常監控
                 ↓
6. 規劃遷移並完全移除 Apache Lucy

結論

CVE-2026-61484 是 Apache Lucy Remote SearchServer 的不安全反序列化漏洞。攻擊者只要能連線至 Lucy 的 TCP 服務埠,就可能在不需登入的情況下傳送惡意資料,造成遠端程式碼執行或服務阻斷。

由於攻擊通常不經過 HTTP/HTTPS,一般網站 WAF 無法提供完整防護。應優先關閉不必要的 Lucy 服務埠、限制可信來源,並儘速遷移至仍受維護的替代方案。