Redis Software 发行说明 7.8.4-18(2024 年 12 月)
REST API 的基于证书的身份验证。用于验证 Redis ACL REST API 请求的试运行选项。
Redis 企业软件 |
---|
Redis 企业软件版本 7.8.4 现已推出!此版本包括 API 增强功能,这些增强功能保证了版本 7.8.2 的新次要版本而不是维护版本。但是,您可以毫无问题地从 7.8.2 升级到 7.8.4。
突出
此版本提供:
-
REST API 的基于证书的身份验证
-
用于验证 Redis ACL REST API 请求的试运行选项
此版本中的新增功能
新功能
-
REST API 的基于证书的身份验证
-
增加了对基于证书的身份验证的支持,以实现对 Redis 软件 REST API 的安全、无密码访问。
-
除了使用用户名和密码的基本身份验证外,还可以使用基于证书的身份验证。
-
要设置基于证书的身份验证,请使用 REST API 请求执行以下作:
-
配置受信任的 CA 证书
mtls_trusted_ca
使用 Update Cluster Certificate 请求:PUT /v1/cluster/update_cert { "name": "mtls_trusted_ca", "certificate": "<content of certificate PEM file>" }
-
Update cluster settings with mutual TLS configuration:
PUT /v1/cluster { "mtls_certificate_authentication": true, "mtls_client_cert_subject_validation_type": "san_cn", "mtls_authorized_subjects": [{ "CN": "test", "OU": [], "O": "", "C": "", "L": "", "ST": "" }] }
-
Include
"auth_method": "certificate"
andcertificate_subject_line
in the request body when you create new users or update existing users:POST /v1/users | PUT /v1/users/<user-id> { "auth_method": "certificate", "certificate_subject_line": "<subject of the user's client certificate>" }
-
-
Limitations:
- Certificate-based authentication is not implemented for the Cluster Manager UI.
-
Enhancements
-
If you create or update a Redis ACL using the REST API, you can use the dry_run
query parameter to validate the request without actually applying the update.
-
Create Redis ACL example request:
POST /v1/redis_acls?dry_run
-
Update Redis ACL example request:
PUT /v1/redis_acls/<uid>?dry_run
Redis database versions
Redis Software version 7.8.4 includes three Redis database versions: 7.4, 7.2, and 6.2.
The default Redis database version is 7.4.
Redis module feature sets
Redis Software comes packaged with several modules. As of version 7.8.2, Redis Software includes three feature sets, compatible with different Redis database versions.
The following table shows which Redis modules are compatible with each Redis database version included in this release.
Redis database version
Compatible Redis modules
7.4
RediSearch 2.10
RedisJSON 2.8
RedisTimeSeries 1.12
RedisBloom 2.8
7.2
RediSearch 2.8
RedisJSON 2.6
RedisTimeSeries 1.10
RedisBloom 2.6
6.2
RediSearch 2.6
RedisJSON 2.4
RedisTimeSeries 1.8
RedisBloom 2.4
RedisGraph v2.101
- RedisGraph end-of-life has been announced and will be removed in a future release. See the RedisGraph end-of-life announcement for more details.
Resolved issues
-
RS137337: Maintenance mode tasks are no longer incorrectly marked as aborted
when the primary node is demoted.
-
RS125921: Fixed a PDNS server script to ensure the symbolic links are not expanded.
-
RS142457: Fixed an issue in the Cluster Manager UI where incorrect FQDN information was shown for Active-Active databases in Kubernetes.
-
RS134410: Removed dependency test files that contain TLS keys from the Python install for Kubernetes.
-
RS136270: Changed the owner and group of the rlec_supervisor.service
file to root:root
instead of redislabs:redislabs
to improve security.
-
RS142166: Fixed the representation of available RAM.
Version changes
Supported platforms
The following table provides a snapshot of supported platforms as of this Redis Software release. See the supported platforms reference for more details about operating system compatibility.
✅ Supported – The platform is supported for this version of Redis Software and Redis Stack modules.
⚠️ Deprecation warning – The platform is still supported for this version of Redis Software, but support will be removed in a future release.
Redis Software
major versions
7.8
7.4
7.2
6.4
6.2
Release date
Nov 2024
Feb 2024
Aug 2023
Feb 2023
Aug 2021
End-of-life date
Determined after
next major release
Nov 2026
Feb 2026
Aug 2025
Feb 2025
Platforms
RHEL 9 &
compatible distros1
✅
✅
–
–
–
RHEL 9
FIPS mode5
✅
–
–
–
–
RHEL 8 &
compatible distros1
✅
✅
✅
✅
✅
RHEL 7 &
compatible distros1
–
–
⚠️
✅
✅
Ubuntu 20.042
✅
✅
✅
✅
–
Ubuntu 18.042
–
⚠️
⚠️
✅
✅
Ubuntu 16.042
–
–
⚠️
✅
✅
Amazon Linux 2
✅
✅
✅
✅
–
Amazon Linux 1
–
–
✅
✅
✅
Kubernetes3
✅
✅
✅
✅
✅
Docker4
✅
✅
✅
✅
✅
-
The RHEL-compatible distributions CentOS, CentOS Stream, Alma, and Rocky are supported if they have full RHEL compatibility. Oracle Linux running the Red Hat Compatible Kernel (RHCK) is supported, but the Unbreakable Enterprise Kernel (UEK) is not supported.
-
The server version of Ubuntu is recommended for production installations. The desktop version is only recommended for development deployments.
-
See the Redis Enterprise for Kubernetes documentation for details about support per version and Kubernetes distribution.
-
Docker images of Redis Software are certified for development and testing only.
-
Supported only if FIPS was enabled during RHEL installation to ensure FIPS compliance.
Downloads
The following table shows the SHA256 checksums for the available packages:
Package
SHA256 checksum (7.8.4-18 Dec release)
Ubuntu 20
1aee0b6cee72b6ceae73951611ac2073d8905189174c731561f1228c16cbcc3a
Red Hat Enterprise Linux (RHEL) 8
cceb563d56221d391667dd302ac334b5d98e3a8dc59bc479a79fe9b83c1634d6
Red Hat Enterprise Linux (RHEL) 9
396b2eeafe9b4a75aa8579b4d618ca7f2df8619b1256aeec7863c80ecba7703a
Amazon Linux 2
56e18f73fb8507fec476d9b59a00ed1b5fcc52b80005a749b869650641e6f6f6
Known issues
- RS131972: Creating an ACL that contains a line break in the Cluster Manager UI can cause shard migration to fail due to ACL errors.
Known limitations
New Cluster Manager UI limitations
The following legacy UI features are not yet available in the new Cluster Manager UI:
-
Purge an Active-Active instance.
Use crdb-cli crdb purge-instance
instead.
-
Search and export the log.
RedisGraph prevents upgrade to RHEL 9
You cannot upgrade from a prior RHEL version to RHEL 9 if the Redis Software cluster contains a RedisGraph module, even if unused by any database. The RedisGraph module has reached End-of-Life and is completely unavailable in RHEL 9.
Query results might include hash keys with lazily expired fields
If one or more fields of a hash key expire after an FT.SEARCH
or FT.AGGREGATE
query begins, Redis does not account for these lazily expired fields. As a result, keys with expired fields might still be included in the query results, leading to potentially incorrect or inconsistent results.
Security
Open source Redis security fixes compatibility
As part of Redis's commitment to security, Redis Software implements the latest security fixes available with open source Redis. Redis Software has already included the fixes for the relevant CVEs.
Some CVEs announced for open source Redis do not affect Redis Software due to different or additional functionality available in Redis Software that is not available in open source Redis.
Redis Software 7.8.4-18 supports open source Redis 7.4, 7.2, and 6.2. Below is the list of open source Redis CVEs fixed by version.
Redis 7.2.x:
-
(CVE-2024-31449) An authenticated user may use a specially crafted Lua script to trigger a stack buffer overflow in the bit library, which may potentially lead to remote code execution.
-
(CVE-2024-31228) An authenticated user can trigger a denial-of-service by using specially crafted, long string match patterns on supported commands such as KEYS
, SCAN
, PSUBSCRIBE
, FUNCTION LIST
, COMMAND LIST
, and ACL definitions. Matching of extremely long patterns may result in unbounded recursion, leading to stack overflow and process crashes.
-
(CVE-2023-41056) In some cases, Redis may incorrectly handle resizing of memory buffers, which can result in incorrect accounting of buffer sizes and lead to heap overflow and potential remote code execution.
-
(CVE-2023-41053) Redis does not correctly identify keys accessed by SORT_RO
and, as a result, may grant users executing this command access to keys that are not explicitly authorized by the ACL configuration. (Redis 7.2.1)
Redis 7.0.x:
-
(CVE-2024-31449) An authenticated user may use a specially crafted Lua script to trigger a stack buffer overflow in the bit library, which may potentially lead to remote code execution.
-
(CVE-2024-31228) An authenticated user can trigger a denial-of-service by using specially crafted, long string match patterns on supported commands such as KEYS
, SCAN
, PSUBSCRIBE
, FUNCTION LIST
, COMMAND LIST
, and ACL definitions. Matching of extremely long patterns may result in unbounded recursion, leading to stack overflow and process crashes.
-
(CVE-2023-41056) In some cases, Redis may incorrectly handle resizing of memory buffers, which can result in incorrect accounting of buffer sizes and lead to heap overflow and potential remote code execution.
-
(CVE-2023-41053) Redis does not correctly identify keys accessed by SORT_RO
and, as a result, may grant users executing this command access to keys that are not explicitly authorized by the ACL configuration. (Redis 7.0.13)
-
(CVE-2023-36824) Extracting key names from a command and a list of arguments may, in some cases, trigger a heap overflow and result in reading random heap memory, heap corruption, and potentially remote code execution. Specifically: using COMMAND GETKEYS*
and validation of key names in ACL rules. (Redis 7.0.12)
-
(CVE-2023-28856) Authenticated users can use the HINCRBYFLOAT
command to create an invalid hash field that will crash Redis on access. (Redis 7.0.11)
-
(CVE-2023-28425) Specially crafted MSETNX
commands can lead to assertion and denial-of-service. (Redis 7.0.10)
-
(CVE-2023-25155) Specially crafted SRANDMEMBER
, ZRANDMEMBER
, and HRANDFIELD
commands can trigger an integer overflow, resulting in a runtime assertion and termination of the Redis server process. (Redis 7.0.9)
-
(CVE-2023-22458) Integer overflow in the Redis HRANDFIELD
and ZRANDMEMBER
commands can lead to denial-of-service. (Redis 7.0.8)
-
(CVE-2022-36021) String matching commands (like SCAN
or KEYS
) with a specially crafted pattern to trigger a denial-of-service attack on Redis can cause it to hang and consume 100% CPU time. (Redis 7.0.9)
-
(CVE-2022-35977) Integer overflow in the Redis SETRANGE
and SORT
/SORT_RO
commands can drive Redis to OOM panic. (Redis 7.0.8)
-
(CVE-2022-35951) Executing an XAUTOCLAIM
command on a stream key in a specific state, with a specially crafted COUNT
argument, may cause an integer overflow, a subsequent heap overflow, and potentially lead to remote code execution. The problem affects Redis versions 7.0.0 or newer. (Redis 7.0.5)
-
(CVE-2022-31144) A specially crafted XAUTOCLAIM
command on a stream key in a specific state may result in heap overflow and potentially remote code execution. The problem affects Redis versions 7.0.0 or newer. (Redis 7.0.4)
-
(CVE-2022-24834) A specially crafted Lua script executing in Redis can trigger a heap overflow in the cjson and cmsgpack libraries, and result in heap corruption and potentially remote code execution. The problem exists in all versions of Redis with Lua scripting support, starting from 2.6, and affects only authenticated and authorized users. (Redis 7.0.12)
-
(CVE-2022-24736) An attacker attempting to load a specially crafted Lua script can cause NULL pointer dereference which will result in a crash of the redis-server
process. This issue affects all versions of Redis. (Redis 7.0.0)
-
(CVE-2022-24735) By exploiting weaknesses in the Lua script execution environment, an attacker with access to Redis can inject Lua code that will execute with the (potentially higher) privileges of another Redis user. (Redis 7.0.0)
Redis 6.2.x:
-
(CVE-2024-31449) An authenticated user may use a specially crafted Lua script to trigger a stack buffer overflow in the bit library, which may potentially lead to remote code execution.
-
(CVE-2024-31228) An authenticated user can trigger a denial-of-service by using specially crafted, long string match patterns on supported commands such as KEYS
, SCAN
, PSUBSCRIBE
, FUNCTION LIST
, COMMAND LIST
, and ACL definitions. Matching of extremely long patterns may result in unbounded recursion, leading to stack overflow and process crashes.
-
(CVE-2023-28856) Authenticated users can use the HINCRBYFLOAT
command to create an invalid hash field that will crash Redis on access. (Redis 6.2.12)
-
(CVE-2023-25155) Specially crafted SRANDMEMBER
, ZRANDMEMBER
, and HRANDFIELD
commands can trigger an integer overflow, resulting in a runtime assertion and termination of the Redis server process. (Redis 6.2.11)
-
(CVE-2023-22458) Integer overflow in the Redis HRANDFIELD
and ZRANDMEMBER
commands can lead to denial-of-service. (Redis 6.2.9)
-
(CVE-2022-36021) String matching commands (like SCAN
or KEYS
) with a specially crafted pattern to trigger a denial-of-service attack on Redis can cause it to hang and consume 100% CPU time. (Redis 6.2.11)
-
(CVE-2022-35977) Integer overflow in the Redis SETRANGE
and SORT
/SORT_RO
commands can drive Redis to OOM panic. (Redis 6.2.9)
-
(CVE-2022-24834) A specially crafted Lua script executing in Redis can trigger a heap overflow in the cjson and cmsgpack libraries, and result in heap corruption and potentially remote code execution. The problem exists in all versions of Redis with Lua scripting support, starting from 2.6, and affects only authenticated and authorized users. (Redis 6.2.13)
-
(CVE-2022-24736) An attacker attempting to load a specially crafted Lua script can cause NULL pointer dereference which will result in a crash of the redis-server
process. This issue affects all versions of Redis. (Redis 6.2.7)
-
(CVE-2022-24735) By exploiting weaknesses in the Lua script execution environment, an attacker with access to Redis can inject Lua code that will execute with the (potentially higher) privileges of another Redis user. (Redis 6.2.7)
-
(CVE-2021-41099) Integer to heap buffer overflow handling certain string commands and network payloads, when proto-max-bulk-len
is manually configured to a non-default, very large value. (Redis 6.2.6)
-
(CVE-2021-32762) Integer to heap buffer overflow issue in redis-cli
and redis-sentinel
parsing large multi-bulk replies on some older and less common platforms. (Redis 6.2.6)
-
(CVE-2021-32761) An integer overflow bug in Redis version 2.2 or newer can be exploited using the BITFIELD
command to corrupt the heap and potentially result with remote code execution. (Redis 6.2.5)
-
(CVE-2021-32687) Integer to heap buffer overflow with intsets, when set-max-intset-entries
is manually configured to a non-default, very large value. (Redis 6.2.6)
-
(CVE-2021-32675) Denial Of Service when processing RESP request payloads with a large number of elements on many connections. (Redis 6.2.6)
-
(CVE-2021-32672) Random heap reading issue with Lua Debugger. (Redis 6.2.6)
-
(CVE-2021-32628) Integer to heap buffer overflow handling ziplist-encoded data types, when configuring a large, non-default value for hash-max-ziplist-entries
, hash-max-ziplist-value
, zset-max-ziplist-entries
or zset-max-ziplist-value
. (Redis 6.2.6)
-
(CVE-2021-32627) Integer to heap buffer overflow issue with streams, when configuring a non-default, large value for proto-max-bulk-len
and client-query-buffer-limit
. (Redis 6.2.6)
-
(CVE-2021-32626) Specially crafted Lua scripts may result with Heap buffer overflow. (Redis 6.2.6)
-
(CVE-2021-32625) An integer overflow bug in Redis version 6.0 or newer can be exploited using the STRALGO LCS command to corrupt the heap and potentially result with remote code execution. This is a result of an incomplete fix by CVE-2021-29477. (Redis 6.2.4)
-
(CVE-2021-29478) An integer overflow bug in Redis 6.2 could be exploited to corrupt the heap and potentially result with remote code execution. The vulnerability involves changing the default set-max-intset-entries configuration value, creating a large set key that consists of integer values and using the COPY command to duplicate it. The integer overflow bug exists in all versions of Redis starting with 2.6, where it could result with a corrupted RDB or DUMP payload, but not exploited through COPY (which did not exist before 6.2). (Redis 6.2.3)
-
(CVE-2021-29477) An integer overflow bug in Redis version 6.0 or newer could be exploited using the STRALGO LCS command to corrupt the heap and potentially result in remote code execution. The integer overflow bug exists in all versions of Redis starting with 6.0. (Redis 6.2.3)
On this page