我知道我的Redis有密码。
可是那个密码乃是五年前设置的,公司内部所留存的备忘录当中记载着,每个人都能够进行查询。今日方才观看新闻,获悉Laravel那个反序列化漏洞,仅仅因为Redis没有妥善锁定,就能够致使整个服务器变为他人的后花园。
我突然后背发凉。
别笑了,你家的Redis可能正开着门
多数情形下,我们将Redis当作水管去运用,把缓存进行填充,承担秒杀业务。究竟谁会去思考,在“发送消息”以及“确认已收到”这两个行为之间,隐匿着一个能够让人提起root权限的漏洞呢。
CVE-2025-62507。
不是那种“需要复杂操作”的漏洞。
就一条命令,XACKDEL,带53个ID。
存在53个数字,致使内存直接发生崩掉的情况,且返回地址出现被覆盖得现象,攻击者对于你的服务器握持模样如同正握着一个手柄。
为什么我的第一反应是“还好吧,我没用Streams”?
这是典型的程序员侥幸心理。
没用Streams,但用了Lua脚本吧?
CVE-2025-49844。
关于垃圾回收器所需要承担的责任,编写一段Lua代码,使得垃圾回收器误以为对象已经消亡,然而实际上该对象仍然处于存活状态,在使用过后便立即进行释放,随后——。
然后别人就在你的服务器里散步了。
CVSS 10分,满分。
Redis默认配置像个裸奔的天才
它太快了。快是它的美德,也是它的原罪。
默认不设密码。默认信任内网。默认你是个好人。
但2026年了,好人都在被攻击,坏人手里攥着0day。
“那我绑127.0.0.1总安全了吧?”
不是的。
config set requirepass yourpassword
那日,我将Redis绑定于127.0.0.1,然而业务代码却是在同一台机器之上运行着。
搞攻击的人获取了这台机器的具有低权限的Webshell,而后朝着这台机器的6379发送了一条SLAVEOF。
我的Redis变成了别人的奴隶。
恶意主库传过来一个.so文件,MODULE LOAD。
系统命令随便跑。
我亲手把绞索递了出去。
最怕这种“我就改个配置”的瞬间
CONFIG SET dir /var/www/html/
设置配置,将数据库文件名,设定为,壳程序.php。
SET payload “”
SAVE
四行命令。
一个小时后,我的服务器开始疯狂对外发包。
很多人以为这是老黄历了。
但老黄历之所以老,是因为死的人够多。
到底什么在保护我们?
不是密码。是分层。
bind 127.0.0.1
requirepass yourpassword
我后来做了几件事,不复杂,但疼:
第一,改名。
rename-command CONFIG “”
rename-command MODULE “”
rename-command SLAVEOF “”
并非进行禁用操作,而是直接致使其处于不存在的状态。若想要使用?你来猜猜看我把它改成了什么样的32位乱码?
第二,用户。
ACL。
不是requirepass那种“一个密码闯天下”。
转而针对不一样的业务线,去分派各异的人员,这般一来,这个 用户仅仅能够进行读 key 的操作,而那个用户就算是 KEYS * 都没办法运行。
第三,也是最疼的:承认自己守不住。
升级。
我从6.x直接跳到8.3.2。
因为CVE-2025-62507在8.2.1及以下全中。
先前一直觉着,“大版本升级需测试,需审批,需排期”,耽搁一日,似乎并无大碍,再耽搁一日,好像也并无不妥。
直到看到那个PoC。
53个ID。
关于那个“不可能被利用”的漏洞
科研人员所撰写的博客之中表明,这般的堆栈溢出显得偏向于传统老旧,只是Docker镜像在默认状况下并未开启栈金丝雀。
不是绕过难。
是根本没设防。
那一刻我想起我刚学编程时,老师说:
“你写程序不要假设用户都是善意的。”
maxmemory 256mb
二十年往后,这话应当刻于每一台Redis服务器的redis.conf首行处。
我在日志里看到了什么
有一天查慢查询。
发现有一条命令跑了11秒。
并不是那种规模较大的key迁移行为,而是一次攻击方面的尝试,此尝试旨在通过EVAL对package.loadlib进行反复调用。
他没成功。
因为我升级了,而且我禁用了Lua这个危险函数族。
只是11秒哦,能让我有条件去喝上一杯已然变凉的咖啡,能使得我的中央处理器飙升至90%,能帮我勾起回忆——。
如果我没做那件事,这11秒他已经拿到shell了。
突然想问:你的慢查询日志开了吗?
默认是关的。
默认阈值是10秒。
我改成了100毫秒。
不是所有的攻击都会成功。
但所有的试探都会留下痕迹。
写到这里我自己也乱了
这不是一篇工整的安全指南。
我忘了讲怎么设置TLS,也没细说布隆过滤器防穿透那套。
因为那些有人写过了。
我想说的是:
Redis是个好东西。
但它默认不设防。
slowlog-log-slower-than 10000
而你,你不能默认自己是安全的。
去看看你那台跑了两年的Redis。
它的日志目录积灰了吗。
它的密码是不是还在默认注释里。
它是不是还在用root跑。
你摸一下,它是不是热的。
热的地方,最容易烫手。
2026年2月13日,凌晨5点03分。
我改完最后一个集群的配置。
窗外天快亮了。

Comments NOTHING