关于安全漏洞:漏洞分析Apache-ShardingSphereProxy-530-身份认证绕过

15次阅读

共计 1753 个字符,预计需要花费 5 分钟才能阅读完成。

破绽简介

2022 年 12 月 22 日,Apache 官网布告公布 ShardingSphere-Proxy 5.3.0 之前版本存在身份绕过破绽(CVE-2022-45347)。当 ShardingSphere-Proxy 应用 MySQL 作为后端数据库时,因为 ShardingSphere-Proxy 在客户端认证失败后没有齐全清理数据库会话信息,攻击者可利用未敞开的会话信息绕过 ShardingSphere-Proxy 的 MySQL 身份验证,执行任意 sql 命令。

破绽剖析

Apache ShardingSphere 是一个可将任意数据库转换为分布式数据库的生态系统,ShardingSphere-Proxy 是一个反对 MySQL 和 PostgreSQL 的数据库代理,提供了一个数据库服务器,并封装了数据库二进制协定来反对异构语言。

以 Apache ShardingSphere 5.2.1 版本为例,用户可通过配置连贯 ShardingSphere-Proxy 操作后端 MySQL 数据库:

(ShardingSphere-Proxy 利用场景示意图)

在该破绽中存在的交互过程如下

(MySQL client 与 ShardingSphere-Proxy 交互图)

以 Python 为例,当应用谬误的账号密码通过 MySQL 连贯库(如 pymysql)连贯 ShardingSphere-Proxy:

import pymysql

# MySQL client 连贯 ShardingSphere-Proxy
db = pymysql.connect(host='localhost',
                     port=3307,
                     user='root',
                     password='Wrong password',
                     database='sharding_db')

cursor = db.cursor()
cursor.execute("show tables")
results = cursor.fetchall()
print(results)
db.close()

此时 pymysql 将依据返回的报文抛出异样,程序终止:

(ShardingSphere-Proxy 身份认证失败抛出异样)

但这时 ShardingSphere-Proxy 的 MySQL 身份认证模块并未敞开 MySQL 客户端连贯会话:

(MySQLAuthenticationEngine#authenticate 源码)

攻击者如果结构一个疏忽身份验证失败音讯的 MySQL 客户端,则能够通过 ShardingSphere-Proxy 持续操作后端数据库。例如能够将 pymysql 中抛出异样的代码正文掉:

(删除 pymysql#connections.py 中的错误处理逻辑)

再次尝试能够发现在应用谬误的账号密码连贯后,依然可能失常应用 SQL 语句,取得相应的数据返回后果:

(绕过 ShardingSphere-Proxy 身份验证并操作后端数据库)

(ShardingSphere-Proxy 后端数据库信息)

ShardingSphere-Proxy v5.3.0 commits 中在 MySQL 客户端认证失败后清理 context 修复此破绽:

(破绽修复代码)

给开发者的倡议

  1. 对生效的会话信息及时清理敞开,避免会话重用的危险。此类危险较为广泛,例如 LibreNMS 在 22.10.0 之前的版本也呈现过相似的问题,因为未对生效的 cookie 进行清理,导致攻击者可利用旧的 cookie 进行登录。
  2. 对临时文件或文件流及时敞开,避免内存泄露或过多的资源耗费导致拒绝服务。

参考链接

  • https://www.oscs1024.com/hd/M…
  • https://lists.apache.org/thre…
  • https://github.com/apache/sha…

对于墨菲平安

墨菲平安是一家为您提供业余的软件供应链平安治理的科技公司,能力包含代码平安检测、开源组件许可证合规治理、云原生容器平安检测、软件成分剖析(SCA)等,丰盛的平安工具助您打造齐备的软件开发平安能力(DevSecOps)。

旗下的平安钻研团队墨菲平安实验室,专一于软件供应链平安相干畛域的技术钻研,关注的方向包含:开源软件平安、程序剖析、威逼情报分析、企业平安治理等。公司外围团队来自百度、华为等企业,领有超过十年的企业平安建设、平安产品研发及平安攻防教训。

正文完
 0