【Azure Redis 缓存】Azure Redis 4.0 被扫描到漏洞,如何修补呢?

Azure,Redis ,漏洞 · 浏览次数 : 32

小编点评

**安全漏洞:** * CVE-2019-10192:堆缓冲区溢出漏洞,可利用 SETRANGE 命令欺骗 Redis 写入超出堆分配缓冲区末尾的内容。 * CVE-2019-10193:堆缓冲区溢出漏洞,可利用 SETRANGE 命令破坏 Redis 的堆栈,导致远程攻击。 * CVE-2018-12453:类型混淆漏洞,可通过 XGROUP 命令导致拒绝服务。 **漏洞影响范围:** * Redis 5.x * Redis 4.x * Redis 3.x **解决方案:** * 升级 Redis 版本到 6.x 或更高版本。 * 确保所有 Redis 服务器都使用最新版本。 **其他提示:** * 使用其他安全技术,如 SSL 认证,来保护 Redis 和任何其他服务器。 * 定期对 Redis 进行安全扫描。 * 了解 Redis 的漏洞并采取适当的预防措施。

正文

问题描述

在安全级别要求高的公司中,任何系统都会进行安全扫描。比如Azure 云上的Redis服务,也在扫描的范围中,最后发现Redis 4.0存在以下漏洞:

  1. CVE-2019-10192:https://nvd.nist.gov/vuln/detail/CVE-2019-10192
  2. CVE-2019-10193:https://nvd.nist.gov/vuln/detail/CVE-2019-10193
  3. CVE-2018-12453:https://nvd.nist.gov/vuln/detail/CVE-2018-12453

 

问题解答

根据漏洞编号(CVE: Common Vulnerabilities and Exposures, 常见的漏洞和风险),分析这些漏洞均发生在Redis 5.x, 4.x, 3.x中。如:

CVE-2019-10192 Detail

Description :A heap-buffer overflow vulnerability was found in the Redis hyperloglog data structure versions 3.x before 3.2.13, 4.x before 4.0.14 and 5.x before 5.0.4. By carefully corrupting a hyperloglog using the SETRANGE command, an attacker could trick Redis interpretation of dense HLL encoding to write up to 3 bytes beyond the end of a heap-allocated buffer.

描述:在 Redis hyperloglog 数据结构版本 3.x的 3.2.13 之前,4.x 的4.0.14 之前和 5.x的 5.0.4 之前发现了一个堆缓冲区溢出漏洞。使用 SETRANGE 命令破坏 hyperloglog,攻击者可以欺骗 Redis 对密集 HLL 编码的解释,以写入超出堆分配缓冲区末尾多达 3 个字节的内容。

CVE-2019-10193 Detail

Description : A stack-buffer overflow vulnerability was found in the Redis hyperloglog data structure versions 3.x before 3.2.13, 4.x before 4.0.14 and 5.x before 5.0.4. By corrupting a hyperloglog using the SETRANGE command, an attacker could cause Redis to perform controlled increments of up to 12 bytes past the end of a stack-allocated buffer.

描述:在 Redis hyperloglog 数据结构版本 3.x 的 3.2.13 之前,4.x 的 4.0.14 之前和 5.x 的 5.0.4 之前发现了一个堆缓冲区溢出漏洞。使用 SETRANGE 命令破坏 hyperloglog,攻击者可以导致 Redis 在栈分配缓冲区末尾超过 12 个字节的受控增量

CVE-2018-12453 Detail

Description : Type confusion in the xgroupCommand function in t_stream.c in redis-server in Redis before 5.0 allows remote attackers to cause denial-of-service via an XGROUP command in which the key is not a stream.

描述:Redis 5.0 之前的 Redis-server 中的 t_stream.c 中的 xgroupCommand 函数存在类型混淆漏洞,远程攻击者可以通过 XGROUP 命令导致拒绝服务

 

如果要规避这些漏洞,只能升级Redis版本,而Azure Redis只支持4.x, 6.x 。

并且近期Redis 4.x也即将退役,所有的Azure Redis都将被升级到6.X。

当然,也可以手动升级Redis版本来主动规避风险。

 

参考资料

What's been retired from Azure Cache for Redis? - Azure Cache for Redis | Azure Docs

 

与【Azure Redis 缓存】Azure Redis 4.0 被扫描到漏洞,如何修补呢?相似的内容:

【Azure Redis 缓存】Azure Redis 4.0 被扫描到漏洞,如何修补呢?

问题描述 在安全级别要求高的公司中,任何系统都会进行安全扫描。比如Azure 云上的Redis服务,也在扫描的范围中,最后发现Redis 4.0存在以下漏洞: CVE-2019-10192:https://nvd.nist.gov/vuln/detail/CVE-2019-10192 CVE-201

【Azure Redis 缓存】对于Azure Redis 从 Redis 4 升级到 Redis 6 的一些疑问

问题描述 使用Azure Redis服务,客户端使用Redisson 3.X , 在近期Microsoft Azure对Redis服务进行大规模变动升级( Redis 版本由 4 升级到 6),对于这次升级的影响有以下的问题? 问题解释 问题一:Redis 6.0 和 Redisson 3.X 之间

【Azure Redis 缓存】Azure Redis服务开启了SSL(6380端口), PHP如何访问缓存呢?

问题描述 使用6379端口连接Azure Redis服务,连接失败。因为默认情况下Azure Redis的设置没有打开6379的端口。需要使用SSL(6380端口)进行连接,但是遇见了无法连接的问题。 使用非SSL(6379端口)的连接代码

【Azure Redis 缓存】Azure Redis 遇见的连接不上问题和数据丢失的情况解答

问题描述 PHP应用再连接Azure Redis服务时,出现Connection Timed out。当通过升级提高Azure Redis的性能时候,发现之前的数据丢失了。 问题解答 当Redis服务出现Timeout的情况时,可以从Redis服务的指标(Metrics)开始查看,如果出现负载(Se

【Azure Redis 缓存】在Azure Redis中,如何限制只允许Azure App Service访问?

问题描述 在Azure Redis服务中,如何实现只允许Azure App Service访问呢? 问题解答 Azure Redis 开启 防火墙的功能,并在防火墙中添加上App Service的出口IP地址即可。两步即可实现此目的! 1)查询 App Service 的出口IP地址 2)添加第1步

【Azure Redis 缓存】关于Azure Cache for Redis 服务在传输和存储键值对(Key/Value)的加密问题

问题描述 Azure Cache for Redis 服务在传输和存储数据时是如何加密呢? 问题回答 一:关于Azure cache for Redis服务在数据传输过程中是如何加密的? 为了确保在Azure cache for Redis和客户端应用程序之间传输的数据安全,需要启用TLS加密。Az

【Azure Redis 缓存】使用StackExchange.Redis,偶发ERROR - Timeout performing HSET (15000ms)

问题描述 使用StackExchange.Redis 作为Redis客户端SDK,连接Azure Redis服务,长期运行后发现,每天都偶发 Timeout Error。 错误消息如下: StackExchange.Redis.RedisTimeoutException: Timeout perfo

【Azure Redis 缓存】Redis 连接失败

问题描述 Azure Redis 出现连接失败,过一会儿后,又能自动恢复。 问题解答 其实,因为Azure Redis服务一直都有升级维护的操作(平均每月一次),Redis服务更新是平台自动进行的计划内的维护升级行为,一般客户端都有重试机制,是不会影响应用。 故障转移发生的情况有: 系统更新,例如

【Azure Redis 缓存】使用开源工具redis-copy时遇见6379端口无法连接到Redis服务器的问题

问题描述 当使用Azure Redis服务时,需要把一个Redis服务的数据导入到另一个Redis上,因为Redis服务没有使用高级版,所以不支持直接导入/导出RDB文件。 以编程方式来读取数据并写入到新的Redis服务端,使用开源工具 Redis-Copy 却遇见了 6379 端口无法连接的问题。

【Azure Redis 缓存】Lettuce 连接到Azure Redis服务,出现15分钟Timeout问题

问题描述 在Java应用中,使用 Lettuce 作为客户端SDK与Azure Redis 服务连接,当遇见连接断开后,长达15分钟才会重连。导致应用在长达15分的时间,持续报错Timeout 问题解答 这是 Lettuce 目前的一个未解决的已知问题,可以查看此 github issue来了解这个