Nacos集群Raft反序列化漏洞-修复

近日,奇安信CERT监测到 Nacos 集群Raft反序列化漏洞(QVD-2023-13065),在Nacos集群处理部分Jraft请求时,攻击者可以无限制使用hessian进行反序列化利用,最终实现代码执行。鉴于该漏洞仅影响集群间通信端口 7848(默认配置下),若部署时已进行限制或未暴露则风险可控,建议客户做好自查及防护。

目前官方已发布安全修复更新,受影响用户可以升级到Nacos 1.4.6、Nacos 2.2.3。如果不能更新需要封禁7848端口来缓解该漏洞。

之前nacos2.0.3是通过docker镜像安装的,最新版本nacos2.2.3官网无提供镜像包,故需自己制作镜像包。

1)获取nacos镜像构建的docker 镜像包。

git clone https://github.com/nacos-group/nacos-docker.git 

2)修改Dockerfile配置文件

ARG NACOS_VERSION=2.2.3

#此处修改成nacos自己需要最新的版本号。

具体Dockerfile 内容如下:

FROM centos:7.9.2009
LABEL maintainer="pader <huangmnlove@163.com>"

# set environment
ENV MODE="standalone" \
PREFER_HOST_MODE="ip"\
BASE_DIR="/home/nacos" \
CLASSPATH=".:/home/nacos/conf:$CLASSPATH" \
CLUSTER_CONF="/home/nacos/conf/cluster.conf" \
FUNCTION_MODE="all" \
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk" \
NACOS_USER="nacos" \
JAVA="/usr/lib/jvm/java-1.8.0-openjdk/bin/java" \
JVM_XMS="1g" \
JVM_XMX="1g" \
JVM_XMN="512m" \
JVM_MS="128m" \
JVM_MMS="320m" \
NACOS_DEBUG="n" \
TOMCAT_ACCESSLOG_ENABLED="false" \
TIME_ZONE="Asia/Shanghai"

ARG NACOS_VERSION=2.2.3
ARG HOT_FIX_FLAG=""

WORKDIR $BASE_DIR

RUN set -x \
&& yum update -y \
&& yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel iputils nc vim libcurl \
&& yum clean all
RUN curl -SL https://github.com/alibaba/nacos/releases/download/${NACOS_VERSION}${HOT_FIX_FLAG}/nacos-server-${NACOS_VERSION}.tar.gz -o /home/nacos-server.tar.gz \
&& tar -zxvf /home/nacos-server.tar.gz -C /home \
&& rm -rf /home/nacos-server.tar.gz /home/nacos/bin/* /home/nacos/conf/*.properties /home/nacos/conf/*.example /home/nacos/conf/nacos-mysql.sql \
&& ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone

ADD bin/docker-startup.sh bin/docker-startup.sh
ADD conf/application.properties conf/application.properties

# set startup log dir
RUN mkdir -p logs \
&& touch logs/start.out \
&& ln -sf /dev/stdout start.out \
&& ln -sf /dev/stderr start.out
RUN chmod +x bin/docker-startup.sh

EXPOSE 8848
ENTRYPOINT ["bin/docker-startup.sh"]

3)构建镜像:

docker build -t nacos/nacosbuild   .

4)nacos服务跑起来

docker run  -d  --name  nacosbuild  -p 8848:8848  -p 9848:9848  nacos/nacosbuild

 5)访问验证一下版本号:

 6)使用compose方式

[root@mysql2 nacos]# more docker-compose.yml
version: '3'
services:
nacos:
restart: always
image: nacos/nacos-server:2.2.3
container_name: nacos223
privileged: true
environment:
- JVM_XMS=512m
- JVM_XMX=512m
- JVM_XMN=256m
- PREFER_HOST_MODE=ip
- MODE=standalone
- NACOS_APPLICATION_PORT=8848
- NACOS_SERVERS=192.168.184.189
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=192.122.0.111
- MYSQL_SERVICE_PORT=8806
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=123456
- MYSQL_SERVICE_DB_NAME=nacos
- NACOS_SERVER_IP=192.168.184.189
- MYSQL_SERVICE_DB_PARAM=allowPublicKeyRetrieval=true&rewriteBatchedStatements=true&characterEncoding=UTF8&serverTimezone=UTC&connectTimeout=10000&socketTimeout=3000
0&autoReconnect=true&useSSL=false
network_mode: host

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值