Redis 软件发布说明 7.8.2-34 (2024年11月)
Redis 社区版 7.4 功能。哈希字段过期。客户端缓存支持。指标流引擎预览。用于检查数据库可用性、重新平衡分片、故障转移分片和控制数据库流量的新 API。集群管理器 UI 增强,支持节点操作、数据库标签和数据库配置。用户管理器角色。基于大小和时间的日志轮换。模块管理增强。可配置的最小密码长度。可配置的许可证过期警报阈值。
Redis 软件版本 7.8.2 现已发布!
亮点
此版本提供:
-
Redis 社区版 7.4 功能
-
哈希字段过期
-
客户端缓存支持
-
指标流引擎预览
-
新增API用于检查数据库可用性、重新平衡分片、故障转移分片以及控制数据库流量
-
集群管理器UI增强,包括节点操作、数据库标签和数据库配置
-
用户管理角色
-
基于大小和时间的日志轮换
-
模块管理增强
-
可配置的最小密码长度
-
可配置的许可证到期提醒阈值
此版本中的新内容
新功能
-
当你创建或升级数据库版本为7.4时,Redis社区版和Redis Stack 7.4的功能现已可用,包括:
-
新的向量数据类型以减少内存使用
-
时间序列插入过滤器
-
客户端缓存支持:
-
客户端缓存允许Redis客户端在本地缓存中存储一部分数据,并避免向Redis数据库发送重复的读取请求。
-
当用于缓存频繁访问的数据时,这种技术可以通过减少网络流量、延迟和数据库负载来提高性能。
-
支持Redis 7.4及更高版本的Redis数据库。
-
有关更多信息,请参阅客户端缓存介绍和客户端缓存与Redis软件的兼容性。
-
-
数据库可用性 API:
-
验证 Redis 软件数据库是否可用于执行读写操作,并能够响应客户端应用程序的查询。
-
负载均衡器和自动化监控工具可以使用此 API 来监控数据库的可用性。
-
详情请参阅 检查数据库可用性 和 REST API 参考。
-
-
指标流引擎预览:
-
新的指标流引擎基于导出器的基础设施提供了更准确、实时的数据访问。这个增强的、可扩展的监控系统允许您设置更有效的警报并更快地响应问题。
-
暴露了一个新的
/v2
Prometheus抓取端点,您可以使用它将指标导出到外部监控工具,如Grafana、DataDog、NewRelic和Dynatrace。 -
导出原始数据而不是聚合数据,以提高大规模监控的准确性和规模,与v1 Prometheus指标相比。
-
有关新指标流引擎导出的初始指标列表,请参阅Prometheus metrics v2。在指标流引擎处于预览阶段时,本文档仅提供部分列表。将添加更多指标。
-
V1 Prometheus指标已弃用但仍可用。要过渡到新的指标流引擎,请立即使用Prometheus v1 metrics and equivalent v2 PromQL迁移现有仪表板,或等待在未来的版本中使用新的预配置仪表板。
-
新的指标流引擎解决了一些已知问题和错误:
-
RS31923:向Prometheus指标添加了缺失的类型。
-
RS80626:向指标导出器添加了DMC线程利用率指标。
-
RS113028:将节点导出器依赖项升级到版本1.7.0。
-
RS103537:修复了节点宕机时缺少指示的问题。您可以看到节点宕机前的指标,并可以监控
node_metrics_up
以获取其宕机的指示。 -
RS103251:现在在状态机操作期间可以使用指标。
-
RS74732:修复了在移除并重新添加副本CRDB实例后缺少副本CRDB统计信息的问题。
-
RS65948:修复了当集群同时包含常规数据库和Active-Active数据库时,指标导出器生成重复统计头的问题。
-
-
-
Rebalance shard placement REST API request,根据数据库的分片放置策略将数据库的分片分布在节点上。有关分片放置和可用策略的更多信息,请参见Shard placement policy。
-
Shard failover REST API requests,对指定的主分片执行故障转移,并将其副本提升为主分片。
增强功能
-
新的集群管理器用户界面增强功能:
-
一个新的用户管理器角色,专为用户管理设计,可用于基于角色的访问控制。
-
此管理角色允许分配的用户使用集群管理器UI和REST API创建、编辑和删除用户。
-
有关用户管理器角色授予的权限的更多详细信息,请参阅集群管理器UI权限和REST API权限。
-
-
当你升级数据库时,默认情况下升级过程也会尝试升级数据库模块。
-
rladmin upgrade db
将始终升级数据库的模块。 -
如果你使用REST API 升级数据库,你可以在请求体中设置
"latest_with_modules": false
来阻止模块升级。
-
-
增加了基于大小和时间的日志轮换支持。
-
Minimum password length,之前硬编码为8个字符,现在可以在集群管理器UI和REST API中进行配置。
-
集群许可证过期警报阈值,用于确定您希望提前多久收到许可证过期的通知,可在集群管理器UI和REST API中进行配置。
-
集群管理器UI的时区可以通过更新CM设置的REST API请求进行配置。
-
可以通过更新数据库配置的REST API请求来配置连接警报的超时时间:
-
crdt_sync_connection_alarm_timeout_seconds
: 如果同步器连接Active-Active数据库的时间超过指定的秒数,则触发连接警报。 -
replica_sync_connection_alarm_timeout_seconds
: 如果同步器连接副本的时间超过指定的秒数,则触发连接警报。
-
-
保留了以下端口:
端口 进程名称 用途 3347 cert_exporter 报告集群证书指标 3348 process_exporter 报告DMC和Redis进程的进程指标 3349 cluster_wd_exporter 报告集群看门狗指标 3350 db_controller 节点间通信 9091 node_exporter 报告与CPU、内存、磁盘等相关的主机节点指标 9125 statsd_exporter 报告与DMC和同步器相关的推送指标,以及一些集群和节点指标
Redis 数据库版本
Redis 软件版本 7.8.2 包含三个 Redis 数据库版本:7.4、7.2 和 6.2。
默认的Redis数据库版本是7.4。
Redis 模块功能集
Redis 软件附带多个模块。截至版本 7.8.2,Redis 软件包含三个功能集,兼容不同的 Redis 数据库版本。
下表显示了哪些Redis模块与此版本中包含的每个Redis数据库版本兼容。
- RedisGraph 的生命周期结束已经宣布,并将在未来的版本中移除。详情请参阅 RedisGraph 生命周期结束公告。
已解决的问题
-
RS123645: 修复了在启用分片时创建分片行为不一致的问题。现在,当创建启用分片的数据库时,必须始终提供
shard_key_regex
。 -
RS130444: 修复了在集群管理器UI中无法创建或编辑没有电子邮件地址的用户的问题。
-
RS121796: 当选择“多端点”配置数据库默认设置时,也应启用分片。
-
RS128768: 修复了在集群管理器UI中无法显示指标图时间戳详细信息的问题。
-
RS127120: 修复了在刷新Active-Active数据库时
crdt_replicas
未正确更新的问题。 -
RS127054: 修复了安装脚本错误报告“端口53被占用”而不是正确显示被占用端口值的问题。
-
RS125934: 修复了阻止在现有TLS证书过期时更新Active-Active数据库配置的验证问题。
-
RS125412: 修复了在加入集群时,节点配置期间已删除的外部IP地址仍被列为可用的问题。
-
RS122012: 修复了长时间运行的警报发送截止电子邮件的问题。
-
RS121726: 阻止
rlutil
中的remove_shards
选项。你可以使用Replica Of来减少分片数量。 -
RS121076: 在将副本分片提升为主角色时,增加了5分钟的连接超时。
-
RS118103: 从
rladmin status
命令的输出中移除了不准确的BACKUP_PROGRESS
分片列。 -
RS116990: 修复了在启用闪存的数据库中,
FLUSHDB
可能导致7.0和7.2版本中的分片崩溃,并在早期版本中导致客户端停止响应的问题。 -
RS114923: 修复了一个问题,即在将源RDB同步到Redis 7.0或更高版本的数据库时,旧的RDB解析器可能会生成一个带有不正确
ENTRIESREAD
值的XGROUP CREATE
命令。 -
RS114258: 修复了一个问题,即在部分同步期间,如果目标分片过时,Active-Active数据库实例可能会丢失键。
-
RS133653: 修复了一个验证问题,其中过期的客户端证书阻止了与TLS无关的数据库配置的更新。
-
RS126235: 修复了由于过时的分片数据导致数据库更新可能超时并进入更改挂起状态的问题。
-
RS125128: 改进了安装和升级的实时日志记录,以提高可见性。
-
RS119958: 移除了导致调试信息脚本在自动分层集群中失败并出现错误“/bin/tar: 参数列表过长”的日志文件限制,并改进了RocksDB日志文件的轮换。
-
RS137396: 在集群管理器UI中创建新的ACL用户时,不再强制要求提供电子邮件地址。
-
RS134238: 在集群管理器用户界面中改进了数据库排序性能。
-
RS129418: 改进了自动分层集群的日志轮换机制,以减少过多的日志。
-
RS137231: 修复了由于节点数据过时导致数据库分片在迁移过程中可能卡住的问题。
版本变更
-
添加了验证功能,以在更新LDAP配置时验证LDAP服务器URI是否包含主机和端口。
-
在Redis软件的早期版本中,
oss_sharding
API字段的值没有影响。然而,oss_sharding
现在被设置为作为未来计划的一部分生效。在进一步通知之前,请将此字段设置为false
以避免意外影响。
重大变更
Redis 软件版本 7.8.2 引入了以下重大更改:
-
当你升级数据库时,默认情况下升级过程也会尝试升级数据库模块。
-
latest_with_modules
的默认值已更改为true
。 -
rladmin upgrade db
将始终升级数据库的模块。 -
当你使用 REST API 升级数据库 时,你可以在请求体中设置
"latest_with_modules": false
以防止模块升级。
-
Redis 数据库版本 7.4 的重大变更
当Redis社区版的新主要版本更改现有命令时,将数据库升级到新版本可能会破坏某些功能。在升级之前,请阅读提供的会影响Redis软件的破坏性更改列表,并更新任何连接到数据库的应用程序以处理这些更改。
确认您的Redis数据库版本(redis_version
)使用集群管理器UI或运行以下INFO
命令与redis-cli
:
$ redis-cli -p <port> INFO
"# Server
redis_version:7.0.8
..."
安全行为变更
- #13108 Lua: 使用
EVAL
生成的脚本的LRU淘汰机制。
其他一般行为变化
产品生命周期更新
生命周期结束政策扩展
Redis 软件版本 6.2 及以后的生命周期政策已延长至后续主要版本正式发布后的 24 个月。有关更新的生命周期时间表,请参阅 Redis 软件产品生命周期。
支持的升级路径
Redis 软件版本 6.2.4 和 6.2.8 不支持直接升级到 7.4.x 以上版本。版本 6.2.10、6.2.12 和 6.2.18 是升级路径的一部分。要从 6.2.4 或 6.2.8 升级到 7.4.x 以后的版本,需要进行中间升级。
下一个主要的Redis软件版本仍将捆绑Redis数据库版本6.2,并允许从Redis数据库版本6.2升级到7.x。
有关发布编号的更多信息,请参阅Redis Software产品生命周期。
触发器和函数预览结束
triggers and functions (RedisGears) 预览版已停止使用。
-
诸如
TFCALL
、TFCALLASYNC
和TFUNCTION
等命令将被弃用,并会返回错误信息。 -
存储在Redis中的任何JavaScript函数将被移除。
-
基于JavaScript的触发器将被阻止。
-
Lua 函数和脚本不会受到影响。
如果你的数据库当前使用了触发器和函数,你需要:
-
调整您的应用程序以适应这些变化。
-
从现有数据库中删除所有触发器和函数库:
-
运行
TFUNCTION LIST
。 -
复制所有库名称。
-
为列表中的每个库运行
TFUNCTION DELETE
。
如果数据库中仍存在任何触发器和函数库,RDB快照将无法在没有RedisGears的集群上加载。
-
-
将您的数据库迁移到没有RedisGears模块的新数据库。
弃用
API弃用
-
已弃用BDB REST API对象中的
background_op
字段。请改用GET /v1/actions/bdb/<bdb_uid>
。 -
已弃用以下字段用于升级数据库 REST API请求:
-
keep_redis_version
;请改用redis_version
-
current_module
;请改用new_module_args
-
new_module
;请改用new_module_args
-
-
已弃用以下创建数据库 REST API请求中的
module_list
字段:-
module_id
;请改用module_name
-
semantic_version
;请改用module_args
-
-
min_redis_version
仅适用于早于7.4版本的Redis数据库,并在模块REST API响应中被compatible_redis_version
取代。 -
已弃用
POST /v1/modules/upgrade/bdb/<uid>
REST API 请求。请改用POST /v1/bdbs/<uid>/upgrade
来升级模块。
V1 Prometheus 指标弃用
V1 Prometheus 指标已被弃用,但仍然可用。要过渡到新的指标流引擎,请立即使用Prometheus v1 指标和等效的 v2 PromQL迁移现有的仪表板,或者等待在未来的版本中使用新的预配置仪表板。
下载中心模块弃用
新的Redis模块将无法从Redis下载中心下载。
不支持旧版用户界面
旧版用户界面已被弃用,转而支持Redis软件版本7.2.4中的新集群管理器用户界面,并且自Redis软件版本7.8.2起不再受支持。
不支持 Redis 6.0 数据库
Redis数据库版本6.0在Redis软件版本7.4.2中已被弃用,并且自Redis软件版本7.8.2起不再受支持。
在升级到Redis软件版本7.8.2之前,准备移除Redis数据库版本6.0:
-
对于 Redis 软件 6.2.* 集群,将 Redis 6.0 数据库升级到 Redis 6.2。请参阅 Redis 6.2 发布说明 以了解更改列表。
-
对于Redis软件7.2.4和7.4.2集群,将Redis 6.0数据库升级到Redis 7.2。在升级数据库之前,请查看Redis 7.2的重大更改列表,并更新连接到数据库的任何应用程序以处理这些更改。
不支持Ubuntu 18.04
Ubuntu 18.04 在 Redis 软件版本 7.2.4 中已被弃用,并且自 Redis 软件版本 7.8.2 起不再受支持。
即将到来的变化
Redis 软件容器的默认镜像更改
从版本7.8开始,带有镜像标签x.y.z-build
的Redis软件容器将基于RHEL而不是Ubuntu。
此更改仅影响在官方Redis Enterprise for Kubernetes产品之外使用容器并使用Ubuntu特定命令的用户。
在此更改后使用基于Ubuntu的镜像,您可以在镜像标签中指定操作系统后缀。例如,使用镜像标签7.4.2-216.focal
而不是7.4.2-216
。
支持的平台
下表提供了截至本次Redis软件发布时支持的平台的概览。有关操作系统兼容性的更多详细信息,请参阅支持的平台参考。
✅ 支持 – 该平台支持此版本的Redis软件和Redis Stack模块。
⚠️ 弃用警告 – 该版本的Redis软件仍受平台支持,但在未来的版本中将移除支持。
Redis 软件 主要版本 |
7.8 | 7.4 | 7.2 | 6.4 | 6.2 |
---|---|---|---|---|---|
发布日期 | 2024年11月 | 2024年2月 | 2023年8月 | 2023年2月 | 2021年8月 |
终止支持日期 | 在下一次主要发布后确定 | 2026年11月 | 2026年2月 | 2025年8月 | 2025年2月 |
平台 | |||||
RHEL 9 及 兼容发行版1 |
✅ | ✅ | – | – | – |
RHEL 9 FIPS 模式5 |
✅ | – | – | – | – |
RHEL 8 及 兼容发行版1 |
✅ | ✅ | ✅ | ✅ | ✅ |
RHEL 7 及 兼容发行版1 |
– | – | ⚠️ | ✅ | ✅ |
Ubuntu 20.042 | ✅ | ✅ | ✅ | ✅ | – |
Ubuntu 18.042 | – | ⚠️ | ⚠️ | ✅ | ✅ |
Ubuntu 16.042 | – | – | ⚠️ | ✅ | ✅ |
Amazon Linux 2 | ✅ | ✅ | ✅ | ✅ | – |
Amazon Linux 1 | – | – | ✅ | ✅ | ✅ |
Kubernetes3 | ✅ | ✅ | ✅ | ✅ | ✅ |
Docker4 | ✅ | ✅ | ✅ | ✅ | ✅ |
-
如果具有完整的RHEL兼容性,则支持RHEL兼容的发行版CentOS、CentOS Stream、Alma和Rocky。运行Red Hat兼容内核(RHCK)的Oracle Linux受支持,但不支持Unbreakable Enterprise Kernel(UEK)。
-
请参阅Redis Enterprise for Kubernetes 文档以了解每个版本和 Kubernetes 发行版的支持详情。
-
Docker images 的 Redis 软件仅被认证用于开发和测试。
-
仅在RHEL安装期间启用了FIPS以确保符合FIPS标准时支持。
下载
下表显示了可用包的SHA256校验和:
包 | SHA256 校验和 (7.8.2-34 十一月发布) |
---|---|
Ubuntu 20 | 17500356d8338e4f8fd8a37e7b39a190d05ca66d35ae6c4aa3aa8cbc7bb99864 |
红帽企业 Linux (RHEL) 8 | caa2ccd24749ae1fb904841df50a8b69b69c74441458649ca49b9b617e286191 |
红帽企业版 Linux (RHEL) 9 | 31f9d07beb7dfd9239083ecad99ecbfe3cdfcf96673881ebed08171d8194bff3 |
Amazon Linux 2 | a737ca86d800caf9ca266d5771fbcffd3f973a7fb8e63e7b819681322ff6ed67 |
已知问题
- RS131972: 在集群管理器用户界面中创建包含换行符的ACL可能会导致由于ACL错误而导致分片迁移失败。
已知限制
新集群管理器用户界面的限制
以下传统用户界面功能在新的集群管理器用户界面中尚不可用:
-
清除一个Active-Active实例。
-
搜索并导出日志。
RedisGraph 阻止升级到 RHEL 9
如果Redis软件集群包含RedisGraph模块,即使任何数据库未使用,也无法从先前的RHEL版本升级到RHEL 9。RedisGraph模块已达到生命周期结束,并且在RHEL 9中完全不可用。
查询结果可能包含具有延迟过期字段的哈希键
如果在FT.SEARCH
或FT.AGGREGATE
查询开始后,哈希键的一个或多个字段过期,Redis不会考虑这些惰性过期的字段。因此,包含过期字段的键可能仍然会出现在查询结果中,导致可能不正确或不一致的结果。
安全
开源Redis安全修复兼容性
作为Redis对安全的承诺的一部分,Redis软件实施了最新的安全修复,这些修复可通过开源Redis获得。Redis软件已经包含了相关CVE的修复。
一些针对开源Redis宣布的CVE不影响Redis软件,因为Redis软件中提供了开源Redis中不可用的不同或额外功能。
Redis 软件 7.8.2-34 支持开源 Redis 7.4、7.2 和 6.2。以下是按版本修复的开源 Redis CVE 列表。
Redis 7.2.x:
-
(CVE-2024-31449) 经过身份验证的用户可能使用特制的Lua脚本来触发bit库中的堆栈缓冲区溢出,这可能导致远程代码执行。
-
(CVE-2024-31228) 经过身份验证的用户可以通过在支持的命令(如
KEYS
、SCAN
、PSUBSCRIBE
、FUNCTION LIST
、COMMAND LIST
)和ACL定义上使用特制的长字符串匹配模式来触发拒绝服务。匹配极长的模式可能导致无限递归,从而导致堆栈溢出和进程崩溃。 -
(CVE-2023-41056) 在某些情况下,Redis 可能错误地处理内存缓冲区的调整大小,这可能导致缓冲区大小的错误计算,并导致堆溢出和潜在的远程代码执行。
-
(CVE-2023-41053) Redis 未能正确识别由
SORT_RO
访问的键,因此可能会授予执行此命令的用户访问未在 ACL 配置中明确授权的键的权限。(Redis 7.2.1)
Redis 7.0.x:
-
(CVE-2024-31449) 经过身份验证的用户可能使用特制的Lua脚本来触发bit库中的堆栈缓冲区溢出,这可能导致远程代码执行。
-
(CVE-2024-31228) 经过身份验证的用户可以通过在支持的命令(如
KEYS
、SCAN
、PSUBSCRIBE
、FUNCTION LIST
、COMMAND LIST
)和ACL定义上使用特制的长字符串匹配模式来触发拒绝服务。匹配极长的模式可能导致无限递归,从而导致堆栈溢出和进程崩溃。 -
(CVE-2023-41056) 在某些情况下,Redis 可能错误地处理内存缓冲区的调整大小,这可能导致缓冲区大小的错误计算,并导致堆溢出和潜在的远程代码执行。
-
(CVE-2023-41053) Redis 未能正确识别由
SORT_RO
访问的键,因此可能会授予执行此命令的用户访问未在 ACL 配置中明确授权的键的权限。(Redis 7.0.13) -
(CVE-2023-36824) 在某些情况下,从命令和参数列表中提取键名可能会触发堆溢出,导致读取随机堆内存、堆损坏,并可能实现远程代码执行。具体来说:使用
COMMAND GETKEYS*
和在ACL规则中验证键名。(Redis 7.0.12) -
(CVE-2023-28856) 认证用户可以使用
HINCRBYFLOAT
命令创建一个无效的哈希字段,这将在访问时导致Redis崩溃。(Redis 7.0.11) -
(CVE-2023-28425) 特别构造的
MSETNX
命令可能导致断言失败和服务拒绝。(Redis 7.0.10) -
(CVE-2023-25155) 特别构造的
SRANDMEMBER
、ZRANDMEMBER
和HRANDFIELD
命令可能触发整数溢出,导致运行时断言和 Redis 服务器进程终止。(Redis 7.0.9) -
(CVE-2023-22458) Redis 中的
HRANDFIELD
和ZRANDMEMBER
命令存在整数溢出问题,可能导致拒绝服务。(Redis 7.0.8) -
(CVE-2022-36021) 使用特殊构造的模式进行字符串匹配命令(如
SCAN
或KEYS
)可能会触发 Redis 的拒绝服务攻击,导致其挂起并消耗 100% 的 CPU 时间。(Redis 7.0.9) -
(CVE-2022-35977) Redis 中的
SETRANGE
和SORT
/SORT_RO
命令存在整数溢出问题,可能导致 Redis 出现 OOM 崩溃。(Redis 7.0.8) -
(CVE-2022-35951) 在特定状态下对流键执行
XAUTOCLAIM
命令,并使用特制的COUNT
参数,可能会导致整数溢出,随后的堆溢出,并可能引发远程代码执行。该问题影响Redis版本7.0.0或更高版本。(Redis 7.0.5) -
(CVE-2022-31144) 在特定状态下,对流键执行精心构造的
XAUTOCLAIM
命令可能导致堆溢出,并可能实现远程代码执行。该问题影响Redis版本7.0.0或更新版本。(Redis 7.0.4) -
(CVE-2022-24834) 在Redis中执行特制的Lua脚本可以触发cjson和cmsgpack库中的堆溢出,导致堆损坏并可能实现远程代码执行。该问题存在于所有支持Lua脚本的Redis版本中,从2.6开始,仅影响经过身份验证和授权的用户。(Redis 7.0.12)
-
(CVE-2022-24736) 攻击者尝试加载特制的Lua脚本可能导致空指针解引用,从而导致
redis-server
进程崩溃。此问题影响所有版本的Redis。(Redis 7.0.0) -
(CVE-2022-24735) 通过利用Lua脚本执行环境中的弱点,能够访问Redis的攻击者可以注入Lua代码,这些代码将以另一个Redis用户的(可能更高的)权限执行。(Redis 7.0.0)
Redis 6.2.x:
-
(CVE-2024-31449) 经过身份验证的用户可能使用特制的Lua脚本来触发bit库中的堆栈缓冲区溢出,这可能导致远程代码执行。
-
(CVE-2024-31228) 经过身份验证的用户可以通过在支持的命令(如
KEYS
、SCAN
、PSUBSCRIBE
、FUNCTION LIST
、COMMAND LIST
)和ACL定义上使用特制的长字符串匹配模式来触发拒绝服务。匹配极长的模式可能导致无限递归,从而导致堆栈溢出和进程崩溃。 -
(CVE-2023-28856) 认证用户可以使用
HINCRBYFLOAT
命令创建一个无效的哈希字段,该字段在访问时会导致Redis崩溃。(Redis 6.2.12) -
(CVE-2023-25155) 特别构造的
SRANDMEMBER
、ZRANDMEMBER
和HRANDFIELD
命令可能触发整数溢出,导致运行时断言失败并终止 Redis 服务器进程。(Redis 6.2.11) -
(CVE-2023-22458) Redis 中的
HRANDFIELD
和ZRANDMEMBER
命令存在整数溢出问题,可能导致拒绝服务。(Redis 6.2.9) -
(CVE-2022-36021) 使用特殊构造的模式进行字符串匹配命令(如
SCAN
或KEYS
)可能会触发Redis的拒绝服务攻击,导致其挂起并消耗100%的CPU时间。(Redis 6.2.11) -
(CVE-2022-35977) Redis 中的
SETRANGE
和SORT
/SORT_RO
命令存在整数溢出问题,可能导致 Redis 发生 OOM 崩溃。(Redis 6.2.9) -
(CVE-2022-24834) 在Redis中执行特制的Lua脚本可以触发cjson和cmsgpack库中的堆溢出,导致堆损坏并可能执行远程代码。该问题存在于所有支持Lua脚本的Redis版本中,从2.6开始,仅影响经过身份验证和授权的用户。(Redis 6.2.13)
-
(CVE-2022-24736) 攻击者尝试加载特制的Lua脚本可能导致空指针解引用,从而导致
redis-server
进程崩溃。此问题影响所有版本的Redis。(Redis 6.2.7) -
(CVE-2022-24735) 通过利用Lua脚本执行环境中的弱点,能够访问Redis的攻击者可以注入Lua代码,这些代码将以另一个Redis用户的(可能更高的)权限执行。(Redis 6.2.7)
-
(CVE-2021-41099) 当手动将
proto-max-bulk-len
配置为非默认的非常大的值时,处理某些字符串命令和网络负载时,整数到堆缓冲区溢出。(Redis 6.2.6) -
(CVE-2021-32762) 在某些较旧且不常见的平台上,
redis-cli
和redis-sentinel
在解析大型多批量回复时存在整数到堆缓冲区溢出问题。(Redis 6.2.6) -
(CVE-2021-32761) Redis 2.2 或更新版本中的一个整数溢出漏洞,可以通过使用
BITFIELD
命令来利用,导致堆损坏并可能实现远程代码执行。(Redis 6.2.5) -
(CVE-2021-32687) 当手动配置
set-max-intset-entries
为非默认的非常大的值时,整数集合可能导致堆缓冲区溢出。(Redis 6.2.6) -
(CVE-2021-32675) 在处理具有大量元素的RESP请求负载时,可能会导致拒绝服务。(Redis 6.2.6)
-
(CVE-2021-32672) Lua 调试器中的随机堆读取问题。(Redis 6.2.6)
-
(CVE-2021-32628) 在处理ziplist编码的数据类型时,整数到堆缓冲区溢出,当为
hash-max-ziplist-entries
、hash-max-ziplist-value
、zset-max-ziplist-entries
或zset-max-ziplist-value
配置较大的非默认值时。(Redis 6.2.6) -
(CVE-2021-32627) 当配置非默认的大值时,流中的整数到堆缓冲区溢出问题,涉及
proto-max-bulk-len
和client-query-buffer-limit
。(Redis 6.2.6) -
(CVE-2021-32626) 特别构造的Lua脚本可能导致堆缓冲区溢出。(Redis 6.2.6)
-
(CVE-2021-32625) Redis 6.0 或更新版本中的一个整数溢出漏洞可以通过使用 STRALGO LCS 命令来利用,导致堆损坏并可能实现远程代码执行。这是 CVE-2021-29477 的不完全修复的结果。(Redis 6.2.4)
-
(CVE-2021-29478) Redis 6.2 中的一个整数溢出漏洞可能被利用来破坏堆,并可能导致远程代码执行。该漏洞涉及更改默认的 set-max-intset-entries 配置值,创建一个由整数值组成的大集合键,并使用 COPY 命令复制它。该整数溢出漏洞存在于从 2.6 版本开始的所有 Redis 版本中,可能导致损坏的 RDB 或 DUMP 负载,但不能通过 COPY 利用(在 6.2 之前不存在)。(Redis 6.2.3)
-
(CVE-2021-29477) Redis 6.0 或更新版本中的一个整数溢出漏洞可能被利用,通过 STRALGO LCS 命令破坏堆,并可能导致远程代码执行。该整数溢出漏洞存在于从 6.0 开始的所有 Redis 版本中。(Redis 6.2.3)