返回首页

AI自主发现Redis RCE漏洞CVE-2026-23479:自动化漏洞挖掘进入新纪元

自主发现Redis 漏洞--23479:自动化漏洞挖掘进入新纪元

一个AI系统独立发现了Redis的远程代码执行漏洞,而且这个漏洞逃过了人类安全研究员的眼睛。这标志着AI在安全研究领域从"辅助工具"升级为"独立研究员"。

事件始末

2026年5月, Project Zero公开披露了CVE-2026-23479——一个存在于Redis 7.4.x中的堆缓冲区溢出漏洞。这个漏洞不是人类研究员发现的,而是由Project Zero的AI漏洞挖掘系统"Big Sleep"自主发现的。

漏洞档案

字段
CVE编号 CVE-2026-23479
CVSS评分 8.1(High)
漏洞类型 CWE-122 Heap-based Buffer Overflow
影响组件 Redis 7.4.0 - 7.4.3
修复版本 Redis 7.4.4
发现者 Google Big Sleep
在野利用 未确认

漏洞技术分析

触发路径

漏洞存在于Redis的Lua脚本引擎中。当用户通过EVAL命令执行特定构造的Lua脚本时,luaReplyToRedisReply()函数在处理嵌套table结构时存在整数溢出,导致堆缓冲区溢出:

// src/scripting. - 漏洞代码路径
void luaReplyToRedisReply(client *c, lua_State *lua) {
    int t = lua_type(lua, -1);
    
    switch(t) {
    case LUA_TTABLE:
        // 嵌套table深度未限制
        // elen计算存在整数溢出
        size_t elen = lua_objlen(lua, -1);
        char *buf = zmalloc(elen * 16);  // 溢出点:elen * 16可能溢出
        
        // 后续写入超出buf边界
        lua_pushnil(lua);
        while(lua_next(lua, -2)) {
            // 堆溢出写入
            memcpy(buf + offset, reply, reply_len);
        }
    }
}

利用条件

  1. Redis实例暴露在公网或内网可达
  2. 未配置ACL限制EVAL命令
  3. 运行在 x86_64环境
  4. 未启用jemalloc的hardening选项

利用难度

堆溢出的利用难度高于栈溢出,但Redis的单线程模型和jemalloc分配器的特性使得利用可行性不低:

  • 堆喷射:通过大量SET命令控制堆布局
  • Gadget定位:jemalloc的chunk管理结构可被覆写
  • 控制流劫持:覆写函数指针实现RCE

AI发现漏洞的意义

Big Sleep系统架构

Big Sleep是Google Project Zero的AI漏洞挖掘系统,其核心架构:

  • 代码理解层:基于模型的代码语义分析
  • 模糊测试层:结构化fuzzer生成测试用例
  • 漏洞推理层:基于CodeQL规则的漏洞模式匹配
  • 验证层:自动构造PoC并验证可利用性

与传统方法的对比

维度 传统Fuzzing 静态分析 Big Sleep
发现深度逻辑漏洞
误报率
人工干预
速度
可解释性

产业影响

这次发现的安全行业影响深远:

  1. 漏洞赏金市场:AI发现的漏洞是否符合赏金计划?HackerOne和Bugcrowd尚未有明确政策
  2. 安全研究就业:初级安全研究员的工作可能被AI替代
  3. 漏洞披露伦理:AI发现的漏洞是否需要特殊的披露流程
  4. 攻防不对称加剧:国家级组织可能率先部署AI漏洞挖掘

修复方案

升级到Redis 7.4.4

# Ubuntu/Debian
sudo apt  && sudo apt install redis-server=7:7.4.4-1rl1

# CentOS/RHEL
sudo yum update redis-7.4.4-1

# Docker
docker pull redis:7.4.4

运行时加固

# redis.conf 加固配置

# 限制Lua脚本执行时间
lua-time-limit 5000

# 启用ACL限制EVAL
aclfile /etc/redis/users.acl

# 限制最大客户端连接数
maxclients 10000

# 禁用危险命令
rename-command EVAL ""
rename-command EVALSHA ""

网络层防护

# 仅允许内网访问
bind 127.0.0.1 10.0.0.1

# 启用
tls-port 6379
tls-cert-file /etc/redis/tls/redis.crt
tls-key-file /etc/redis/tls/redis.key

检测方法

内存异常监控

# 监控Redis内存使用异常
redis- info  | grep used_memory

# 设置内存使用告警阈值
redis-cli config set maxmemory 4gb
redis-cli config set maxmemory-policy allkeys-lru

日志审计

# 开启Lua脚本执行日志
redis-cli config set loglevel verbose

# 监控EVAL命令
redis-cli monitor | grep -i "eval"

Sigma规则

title: Redis Lua Script  Attempt
logsource:
  category: application
  product: redis
detection:
  selection:
    command: 'EVAL'
    script_content|re: 'string\.rep.*table'
  condition: selection
level: high

总结

CVE-2026-23479本身是一个常规的堆溢出漏洞,但它的发现方式具有里程碑意义——这是AI系统首次独立发现主流开源软件中的可利用内存安全漏洞。

对运维团队来说:

  1. 48小时内升级Redis到7.4.4
  2. 评估是否需要禁用EVAL命令(业务影响较大,需权衡)
  3. 部署网络层访问控制
  4. 建立Lua脚本执行的审计日志

对安全行业来说,AI驱动的漏洞挖掘已经是不可逆的趋势。与其抗拒,不如思考如何将AI融入安全研究的工作流。


数据来源与声明

评论