【mongoDB】mongoDB 单节点版本升级,基于CVE-2025-14847漏洞进行版本升级

文章目录

问题产生原因

https://www.aliyun.com/notice/117852

调研

结合 aikido 网安数据库昨天更新,该漏洞被标记为 CVE-2025-14847(IT之家注:代号"MongoBleed"),可让未经身份验证的网络攻击者侵入服务器,提取未初始化的内存片段。如果服务器开启了网络访问并启用 zlib 压缩,那黑客就不需要任何凭据即可启用漏洞。

同时,由于该漏洞可在消息解压阶段、身份验证前触发,因此黑客可以在入侵的服务器中执行任意代码。

本次漏洞的影响范围相当广泛,涵盖 8.2.0-8.2.3 版、8.0.0-8.0.16 版、7.0.0-7.0.26 版、6.0.0-6.0.26 版、5.0.0-5.0.31 版、4.4.0-4.4.29 版 MongoDB;同时 4.2 版、4.0 版,以及 3.6 版 MongoDB Server 也受到对应影响。

MongoDB 目前已发布修复补丁,官方强烈建议用户升级至以下修复版本:

  • 8.2.3
  • 8.0.17
  • 7.0.28
  • 6.0.27
  • 5.0.32
  • 4.4.30
    如果管理员暂时无法将 MongoDB 更新到最新版本,也可以使用以下临时缓解措施来降低影响:
  • 禁用 zlib 压缩,改用 snappy、zstd 或不启用压缩
  • 通过防火墙、安全组或 Kubernetes NetworkPolicy 限制 MongoDB 访问网络
  • 移除任何不必要的公网暴露

mongoDB版本包

https://www.mongodb.com/try/download/community-kubernetes-operator

升级步骤

确认目前使用的JDK是什么版本,我们是1.8的,所以用4.4.30补丁
确认目前版本号,当前我们是3.6

升级版本 3.6 → 4.0 → 4.2 → 4.4 ,必须是一步一步升,不能跨版本,mongodb会报错

  1. 查看服务器系统是什么操作系统:

第一轮升级

powershell 复制代码
uname -a
  1. 上传mongodb 压缩包,一共3个
  2. 4.0
  3. 4.2
  4. 4.4.30
  5. 解压压缩包并移动到指定位置
powershell 复制代码
tar -xvf mongodb-linux-x86_64-4.0.28.tgz 
sudo mv mongodb-linux-x86_64-4.0.28 /usr/local/mongodb
  1. 停库做冷备,如果不知道在哪个文件可以通过 ps -ef | grep mongod 去看下
powershell 复制代码
./bin/mongod --shutdown --dbpath /mongodb/single/data/db

-- 做备份

powershell 复制代码
sudo cp -a /mongodb/single/data/db  /data/db_$(date +%F)

-- 确认当前版本已经是3.6版本

powershell 复制代码
./bin/mongo --eval "db.adminCommand({getParameter:1,featureCompatibilityVersion:1})"

若不是 3.6,先执行

powershell 复制代码
 ./bin/mongo --eval "db.adminCommand({setFeatureCompatibilityVersion:'3.6'})"

-- 进入升级版本的mongodb 4.0 版本,将数据和日志的配置文件指向现在的

powershell 复制代码
```powershell
./bin/mongod -f /mongodb/single/mongod.conf --fork

-- 设兼容性,如果当前是有用户名密码,就输入用户名密码去改,或者是暂时取消认证启动进入

powershell 复制代码
./bin/mongo --eval "db.adminCommand({setFeatureCompatibilityVersion:'4.0'})"

-- 查看现在版本

powershell 复制代码
./bin/mongo --eval "db.adminCommand({getParameter:1,featureCompatibilityVersion:1})"

-- 停掉当前版本

powershell 复制代码
./bin/mongod --shutdown -f /mongodb/single/mongod.conf

升级如果不成功,请看这里

  • 但是升级时会说版本不符合,进入4.0版本手动设置
    -- 如果不知道账号密码就建一个账号密码
    1.先杀死启动进程
powershell 复制代码
./bin/mongod --shutdown -f /mongodb/single/mongod.conf
  1. 设置启动不需要认证
powershell 复制代码
./bin/mongod -f /mongodb/single/mongod.conf --noauth
  1. 进入数据库
powershell 复制代码
./bin/mongo
powershell 复制代码
use admin

-- 设置管理员账号

powershell 复制代码
db.createUser({user:"dba",pwd:"123456",roles:[{role:"root",db:"admin"}]})

-- 设置版本号

powershell 复制代码
db.adminCommand({setFeatureCompatibilityVersion:"4.0"})

--停掉进程

powershell 复制代码
./bin/mongod --shutdown -f /mongodb/single/mongod.conf 

第二轮升级到4.2版本

-- 先将上一步解压压缩包

  1. 然后启动4.2的版本
powershell 复制代码
./bin/mongo -f /mongodb/single/mongod.conf 
  1. 设置版本号为4.2 通过管理员账户登陆
powershell 复制代码
./bin/mongo -u <管理员用户名> -p --authenticationDatabase admin
  1. 设置版本号
powershell 复制代码
db.adminCommand({setFeatureCompatibilityVersion:"4.2"})
返回 { "ok" : 1 } 即成功。

4.退出并关机

powershell 复制代码
quit()
./bin/mongod --shutdown -f /mongodb/single/mongod.conf

第三轮升级,重复上个步骤,只是安装包是4.4.30

-- 先将上一步解压压缩包

  1. 然后启动4.4.30 的版本
    2.启动4.4.30版本
powershell 复制代码
./bin/mongod -f /mongodb/single/mongod.conf

3.通过管理员账户登陆,设置版本号

powershell 复制代码
./bin/mongo -u <管理员用户名> -p --authenticationDatabase admin
  • 确认是否是4.4.30版本号
    -- 方式1
powershell 复制代码
./bin/mongod --version | head -1

-- 方式2

powershell 复制代码
./bin/mongo --quiet --eval "db.version()"

-- 方式3

powershell 复制代码
./bin/mongo -u <管理员用户名> -p --authenticationDatabase admin --quiet --eval "db.adminCommand({getParamet
er:1,featureCompatibilityVersion:1})"

结尾

好的,这样我们就成功升级到最新版本啦!

相关推荐
Msshu1233 小时前
多功能快充诱骗芯片 XSP26支持与主板共用一个Type-C可取电可输出数据
hadoop·mongodb·nosql·memcache·tdengine
茁壮成长的露露17 小时前
导出导入工具mongoexport、mongoimport
数据库·mongodb
todoitbo19 小时前
多模数据库技术解析:以KingbaseES MongoDB兼容版为例
数据库·mongodb·kingbasees·金仓数据库
廋到被风吹走19 小时前
【数据库】【MongoDB】全栈深度指南:文档模型到分布式集群
数据库·分布式·mongodb
20年编程老鸟java+ai全栈19 小时前
零基础搞定开发环境:PHP + Node.js + MongoDB + Python 一键安装全攻略
python·mongodb·node.js·php
深蓝电商API1 天前
Scrapy与MongoDB管道集成:异步存储方案
数据库·scrapy·mongodb
DBA小马哥2 天前
金仓数据库引领国产化替代新范式:构建高效、安全的文档型数据库迁移解决方案
数据库·安全·mongodb·dba·迁移学习
茁壮成长的露露2 天前
MongoDB备份恢复工具mongodump、mongorestore
数据库·mongodb
我是廖志伟2 天前
MongoDB NoSQL数据库核心概念解析
mongodb· nosql· database management