[我的CVE][CVE-2017-15709]Apache ActiveMQ Information Leak

时间:2022-10-11 10:42:07

问题原因:

Apache ActiveMQ默认消息队列61616端口对外,61616端口使用了OpenWire协议,这个端口会暴露服务器相关信息,这些相关信息实际上是debug信息。

会返回应用名称,JVM,操作系统以及内核版本等信息。

[我的CVE][CVE-2017-15709]Apache ActiveMQ Information Leak

影响版本:

apache-activemq-5.15.0 to apache-activemq-5.15.2
apache-activemq-5.14.0 to apache-activemq-5.14.5
 
漏洞修复:
[我的CVE][CVE-2017-15709]Apache ActiveMQ Information Leak

[我的CVE][CVE-2017-15709]Apache ActiveMQ Information Leak

测试用例:

修复前:

 @Test
- public void testClientProperties() throws Exception{
- BrokerService service = createBrokerService();
- try {
- ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(new URI(brokerUri));
- ActiveMQConnection conn = (ActiveMQConnection)factory.createConnection();
- final AtomicReference<WireFormatInfo> clientWf = new AtomicReference<WireFormatInfo>();
- conn.addTransportListener(new DefaultTransportListener() {
- @Override
- public void onCommand(Object command) {
- if (command instanceof WireFormatInfo) {
- clientWf.set((WireFormatInfo)command);
- }
- }
- });
- conn.start();
- if (clientWf.get() == null) {
- fail("Wire format info is null");
- }
- assertTrue(clientWf.get().getProperties().containsKey("ProviderName"));
- assertTrue(clientWf.get().getProperties().containsKey("ProviderVersion"));
- assertTrue(clientWf.get().getProperties().containsKey("PlatformDetails"));
- assertTrue(clientWf.get().getProviderName().equals(ActiveMQConnectionMetaData.PROVIDER_NAME));
- assertTrue(clientWf.get().getPlatformDetails().equals(ActiveMQConnectionMetaData.PLATFORM_DETAILS));
- } finally {
- stopBroker(service);

修复后:

+    public void testClientPropertiesWithDefaultPlatformDetails() throws Exception{
+ WireFormatInfo clientWf = testClientProperties(brokerUri);
+ assertTrue(clientWf.getPlatformDetails().equals(ActiveMQConnectionMetaData.DEFAULT_PLATFORM_DETAILS));
+ }
+
+ @Test
+ public void testClientPropertiesWithPlatformDetails() throws Exception{
+ WireFormatInfo clientWf = testClientProperties(brokerUri + "?wireFormat.includePlatformDetails=true");
+ assertTrue(clientWf.getPlatformDetails().equals(ActiveMQConnectionMetaData.PLATFORM_DETAILS));
+ }
+
+ private WireFormatInfo testClientProperties(String brokerUri) throws Exception {
+ ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(new URI(brokerUri));
+ ActiveMQConnection conn = (ActiveMQConnection)factory.createConnection();
+ conn.start();
+
+ assertTrue(connector.getConnections().size() == 1);
+ final WireFormatInfo clientWf = connector.getConnections().get(0).getRemoteWireFormatInfo();
+ if (clientWf == null) {
+ fail("Wire format info is null");
}
+
+ //verify properties that the client sends to the broker
+ assertTrue(clientWf.getProperties().containsKey("ProviderName"));
+ assertTrue(clientWf.getProperties().containsKey("ProviderVersion"));
+ assertTrue(clientWf.getProperties().containsKey("PlatformDetails"));
+ assertTrue(clientWf.getProviderName().equals(ActiveMQConnectionMetaData.PROVIDER_NAME));
+
+ return clientWf;
}

修复版本:

Apache Active MQ 5.14.6

Apache Active MQ 5.15.3

Apache Active MQ 5.16.0

官方公布的草案:

CVE-- - Information Leak

Severity: Low

Vendor:
The Apache Software Foundation Versions Affected:
Apache ActiveMQ 5.14. - 5.15. Description: When using the OpenWire protocol it was found that certain system details (such as the OS and kernel version) are exposed as plain text. Mitigation: Use a TLS enabled transport or upgrade to Apache ActiveMQ 5.14. or 5.15.. Credit: This issue was discovered by QingTeng cloud Security of Minded Security Researcher jianan.huang

参考信息:

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15709

https://issues.apache.org/jira/browse/AMQ-6871

http://activemq.apache.org/security-advisories.html

http://activemq.apache.org/security-advisories.data/CVE-2017-15709-announcement.txt

[我的CVE][CVE-2017-15709]Apache ActiveMQ Information Leak的更多相关文章

  1. 消息队列MQ - Apache ActiveMQ

    Apache ActiveMQ是Apache软件基金会所研发的开放源码消息中间件:由于ActiveMQ是一个纯Jave程式,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行. 1.que ...

  2. Apache ActiveMQの版本更迭和Apache ActiveMQの故障转移

    本文描述apache activemq 版本更迭的原因以及Apache ActiveMQのThe Failover Transport new features in 5.2.0  1.对信息的传输/ ...

  3. apache activemq的重连

    1.activemq的重连机制 maxReconnectAttempts -1 | 0 From version 5.6 onwards: -1 is default and means retry ...

  4. apache activemq 学习笔记

    0.activemq的概念 activemq实现了jms(java Message server),用于接收,发送,处理消息的开源消息总线. 1.activemq和jms的区别 jms说白了就是jav ...

  5. How to Setup Replicated LevelDB Persistence in Apache ActiveMQ 5&period;9--转载

    原文地址:https://simplesassim.wordpress.com/2013/11/03/how-to-setup-replicated-leveldb-persistence-in-ap ...

  6. Apache ActiveMQ消息中间件的基本使用

    Apache ActiveMQ是Apache软件基金会所研发的开放源码消息中间件:由于ActiveMQ是一个纯Java程式,因此只需要操作系统支援Java虚拟机,ActiveMQ便可执行. 支持Jav ...

  7. Apache ActiveMQ实战&lpar;2&rpar;-集群

    ActiveMQ的集群 内嵌代理所引发的问题: 消息过载 管理混乱 如何解决这些问题--集群的两种方式: Master slave Broker clusters ActiveMQ的集群有两种方式: ...

  8. Apache ActiveMQ实战&lpar;1&rpar;-基本安装配置与消息类型

    ActiveMQ简介 ActiveMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的.可扩展的.稳定的和安全的企业级消息通信.ActiveMQ使用Apache ...

  9. Linux下apache activemq的安装与配置

    ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范 的 JMS Provider实现,尽管JMS规范出台已经是很 ...

随机推荐

  1. RMAN备份数据库与恢复数据库&lpar;整库&rpar;

    1 准备 2 1.1 检查数据库归档状态 2 1.2 RMAN登陆目标 2 2 备份全库 2 2.1 创建备份数据存储目录 2 2.2 RMAN备份全库 2 2.3 试验(备份后,改变数据) 5 2. ...

  2. ASP&period;NET ViewState详解

    ASP.NET ViewState详解[转载] 作者:Infinities Loop 概述 ViewState是一个被误解很深的动物了.我希望通过此文章来澄清人们对ViewState的一些错误认识.为 ...

  3. SSH连接不上

    网上查了 大概说,一要安装开启ssh服务 然后关掉防火墙 service sshd restart service iptables stop 可是我用了之后还是连接不上, 很郁闷. 我尝试着ping ...

  4. HBuilder开发App教程04-最难搞定的是mui

    前言 前几篇说到一些HBuilder开发app的基础教程, 现在来说一下HBuilder开发app的难点,或者说是上手的难点, 就是mui, 如果你没有研究mui就贸然的上手HBuilder,那你的开 ...

  5. java实现导出Excel&lpar;跨行,跨列&rpar;

    先来个最终结果样式: 第一步: 传参,后期可根据自己需要进行调整.我这里需要的是 quarter 代表季度 dptid 部门编号根据接受过来的参数进行文档命名. UserInfo userInfo=( ...

  6. fastjson java类、字符串、jsonObject之前的转换

    json对象转成json字符串 JSONObject json = new JSONObject(); json.put("page",1); json.put("pag ...

  7. 【LeetCode】14&period; 最长公共前缀

    题目 编写一个函数来查找字符串数组中的最长公共前缀.如果不存在公共前缀,返回空字符串 "". 示例 1:输入: ["flower","flow&quo ...

  8. 机器学习之scikit-learn库的使用

    1.scikit-learn库简介 scikit-learn是一个整合了多种常用的机器学习算法的Python库,又简称skLearn.scikit-learn非常易于使用,为我们学习机器学习提供了一个 ...

  9. 20162318 实验一《Java开发环境的熟悉》实验报告

    北京电子科技学院(BESTI) 实 验 报 告 课程:程序设计与数据结构 班级:1623班 姓名:张泰毓 成绩:2分 指导老师:娄老师.王老师 实验日期:2017年3月17日 实验密级:非密级 实验器 ...

  10. 四&period; Java继承和多态2&period; Java super关键字

    super 关键字与 this 类似,this 用来表示当前类的实例,super 用来表示父类. super 可以用在子类中,通过点号(.)来获取父类的成员变量和方法.super 也可以用在子类的子类 ...