9 Star 2 Fork 82

src-openEuler/python3

 / 详情

CVE-2023-36632

已完成
CVE和安全问题 拥有者
创建于  
2023-06-26 02:34

一、漏洞信息
漏洞编号:CVE-2023-36632
漏洞归属组件:python3
漏洞归属的版本:3.10.0,3.10.2,3.10.9,3.11.1,3.7.9,3.8.5,3.9.9
CVSS V2.0分值:
BaseScore:0.0 Low
Vector:CVSS:2.0/
漏洞简述:
** DISPUTED ** The legacy email.utils.parseaddr function in Python through 3.11.4 allows attackers to trigger RecursionError: maximum recursion depth exceeded while calling a Python object via a crafted argument. This argument is plausibly an untrusted value from an application s input data that was supposed to contain a name and an e-mail address. NOTE: email.utils.parseaddr is categorized as a Legacy API in the documentation of the Python email package. Applications should instead use the email.parser.BytesParser or email.parser.Parser class. NOTE: the vendor s perspective is that this is neither a vulnerability nor a bug. The email package is intended to have size limits and to throw an exception when limits are exceeded; they were exceeded by the example demonstration code.
漏洞公开时间:2023-06-26 02:15:00
漏洞创建时间:2023-06-26 02:34:28
漏洞详情参考链接:
https://nvd.nist.gov/vuln/detail/CVE-2023-36632

更多参考(点击展开)
参考来源 参考链接 来源链接
nvd https://docs.python.org/3/library/email.utils.html
nvd https://docs.python.org/3/library/email.html
nvd https://github.com/Daybreak2019/PoC_python3.9_Vul/blob/main/RecursionError-email.utils.parseaddr.py
nvd https://github.com/python/cpython/issues/103800
redhat https://access.redhat.com/security/cve/CVE-2023-36632
suse_bugzilla http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2023-36632 https://bugzilla.suse.com/show_bug.cgi?id=1212717
suse_bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=2217338 https://bugzilla.suse.com/show_bug.cgi?id=1212717
suse_bugzilla https://www.cve.org/CVERecord?id=CVE-2023-36632 https://bugzilla.suse.com/show_bug.cgi?id=1212717
suse_bugzilla http://www.cvedetails.com/cve/CVE-2023-36632/ https://bugzilla.suse.com/show_bug.cgi?id=1212717
suse_bugzilla https://docs.python.org/3/library/email.html https://bugzilla.suse.com/show_bug.cgi?id=1212717
suse_bugzilla https://docs.python.org/3/library/email.utils.html https://bugzilla.suse.com/show_bug.cgi?id=1212717
suse_bugzilla https://github.com/Daybreak2019/PoC_python3.9_Vul/blob/main/RecursionError-email.utils.parseaddr.py https://bugzilla.suse.com/show_bug.cgi?id=1212717
redhat_bugzilla https://docs.python.org/3/library/email.utils.html https://bugzilla.redhat.com/show_bug.cgi?id=2217338
redhat_bugzilla https://docs.python.org/3/library/email.html https://bugzilla.redhat.com/show_bug.cgi?id=2217338
redhat_bugzilla https://github.com/Daybreak2019/PoC_python3.9_Vul/blob/main/RecursionError-email.utils.parseaddr.py https://bugzilla.redhat.com/show_bug.cgi?id=2217338
cve_search https://docs.python.org/3/library/email.utils.html
cve_search https://docs.python.org/3/library/email.html
cve_search https://github.com/Daybreak2019/PoC_python3.9_Vul/blob/main/RecursionError-email.utils.parseaddr.py
cve_search https://github.com/python/cpython/issues/103800

漏洞分析指导链接:
https://gitee.com/openeuler/cve-manager/blob/master/cve-vulner-manager/doc/md/manual.md
漏洞数据来源:
openBrain开源漏洞感知系统
漏洞补丁信息:

详情(点击展开)

二、漏洞分析结构反馈
影响性分析说明:
这是关于Python中的一个函数漏洞的描述。具体来说,Python中的email.utils.parseaddr函数在版本3.11.4之前存在漏洞,攻击者可以通过构造的参数来触发 RecursionError: maximum recursion depth exceeded while calling a Python object 错误。这个参数很可能是来自应程序输入数据的一个不受信任的值,本应包含一个姓名和电子邮件地址。需要注意的是,email.utils.parseaddr被归类为Python邮件包文档中的传统API。应用程序应该使用email.parser.BytesParser或email.parser.Parser来代替。社区认为这既不是漏洞也不是错误。邮件包旨在具有大小限制,当超出限制时会引发异常;在示例演示代码中超出了限制。
openEuler评分:
5.3
Vector:CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
受影响版本排查(受影响/不受影响):
1.openEuler-20.03-LTS-SP1(3.7.9):不受影响
2.openEuler-20.03-LTS-SP3(3.7.9):不受影响
3.openEuler-22.03-LTS(3.9.9):不受影响
4.openEuler-22.03-LTS-SP1(3.9.9):不受影响
5.openEuler-22.03-LTS-SP2(3.9.9):不受影响

修复是否涉及abi变化(是/否):
1.openEuler-20.03-LTS-SP1(3.7.9):否
2.openEuler-20.03-LTS-SP3(3.7.9):否
3.openEuler-22.03-LTS(3.9.9):否
4.openEuler-22.03-LTS-SP1(3.9.9):否

评论 (6)

openeuler-ci-bot 创建了CVE和安全问题 2年前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
2年前
展开全部操作日志
openeuler-ci-bot 添加了
 
sig/Base-service
标签
2年前
参考网址 关联pr 状态 补丁链接
https://nvd.nist.gov/vuln/detail/CVE-2023-36632
https://ubuntu.com/security/CVE-2023-36632NoneNonehttps://discourse.ubuntu.com/c/ubuntu-pro
https://www.opencve.io/cve/CVE-2023-36632
https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2023-36632
https://security-tracker.debian.org/tracker/CVE-2023-36632
http://www.cnnvd.org.cn/web/vulnerability/queryLds.tag?qcvCnnvdid=CVE-2023-36632

说明:补丁链接仅供初步排查参考,实际可用性请人工再次确认,补丁下载验证可使用CVE补丁工具
若补丁不准确,烦请在此issue下评论 '/report-patch 参考网址 补丁链接1,补丁链接2' 反馈正确信息,便于我们不断优化工具,不胜感激。
如 /report-patch https://security-tracker.debian.org/tracker/CVE-2021-3997 https://github.com/systemd/systemd/commit/5b1cf7a9be37e20133c0208005274ce4a5b5c6a1

openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
zhaotianyang 负责人hexiaowen 修改为zhaotianyang 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前
openeuler-ci-bot 修改了描述 2年前

这是关于Python中的一个函数漏洞的描述。具体来说,Python中的email.utils.parseaddr函数在版本3.11.4之前存在漏洞,攻击者可以通过构造的参数来触发"RecursionError: maximum recursion depth exceeded while calling a Python object"错误。这个参数很可能是来自应程序输入数据的一个不受信任的值,本应包含一个姓名和电子邮件地址。需要注意的是,email.utils.parseaddr被归类为Python邮件包文档中的传统API。应用程序应该使用email.parser.BytesParseremail.parser.Parser来代替。

社区认为这既不是漏洞也不是错误。邮件包旨在具有大小限制,当超出限制时会引发异常;在示例演示代码中超出了限制。

具体可见:https://github.com/python/cpython/issues/103800

社区认为:递归深度达到(可修改的)递归限制时,RecursionError并不是一个错误。而且,在我们的代码中使用递归也是合理的,因为我们已经记录了我们的代码存在(未记录的)输入大小限制。所以,这并不是一个错误。

可能只是一个性能需求请求。在getaddress函数中,returnlist = returnlist + self.getaddress() 是唯一的直接递归操作。它通过':'触发。如果没有间接递归调用,getaddress函数可以被改写为尾递归形式,从而实现迭代。(但不是非常简单)。不过,考虑到在我的机器上,使用默认sys模块在IDLE环境下,对于n ≤ 1022,parseaddr(':' * n)的结果是('','')(当n=1023时会引发RecursionError),我怀疑默认的堆栈限制对Python的email模块几乎所有的使用场景都足够。如果不够,可以在代码中增加堆栈限制。

从社区的回复可以得出以下几点:

  1. 这个问题中的RecursionError并不被视为一个错误,因为当递归达到(可修改的)递归限制时,产生RecursionError是一个预期的结果。

  2. 代码中使用递归是被允许的,因为已经记录了代码中存在(未记录的)输入大小限制,说明了递归在这种情况下是合理的。

  3. 文本中提到了一个性能需求的请求,针对getaddress函数中的returnlist = returnlist + self.getaddress()这个递归操作,可以考虑将其改写为尾递归形式,从而实现迭代。不过,实现这个改写并不是非常简单。

  4. 针对Python的email模块来说,在绝大多数情况下,默认的堆栈限制是足够的,并且通过提高堆栈限制来解决潜在的问题。

社区认为RecursionError并非错误,代码中的递归使用是合理的,并不承认这是一个漏洞

影响性分析说明:这是关于Python中的一个函数漏洞的描述。具体来说,Python中的email.utils.parseaddr函数在版本3.11.4之前存在漏洞,攻击者可以通过构造的参数来触发"RecursionError: maximum recursion depth exceeded while calling a Python object"错误。这个参数很可能是来自应程序输入数据的一个不受信任的值,本应包含一个姓名和电子邮件地址。需要注意的是,email.utils.parseaddr被归类为Python邮件包文档中的传统API。应用程序应该使用email.parser.BytesParser或email.parser.Parser来代替。

社区认为这既不是漏洞也不是错误。邮件包旨在具有大小限制,当超出限制时会引发异常;在示例演示代码中超出了限制。

openEuler评分: 5.3
Vector:CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

受影响版本排查(受影响/不受影响):
1.openEuler-20.03-LTS-SP1(3.7.9):不受影响
2.openEuler-20.03-LTS-SP3(3.7.9):不受影响
3.openEuler-22.03-LTS(3.9.9):不受影响
4.openEuler-22.03-LTS-SP1(3.9.9):不受影响

修复是否涉及abi变化(是/否):
1.openEuler-20.03-LTS-SP1(3.7.9):否
2.openEuler-20.03-LTS-SP3(3.7.9):否
3.openEuler-22.03-LTS(3.9.9):否
4.openEuler-22.03-LTS-SP1(3.9.9):否

openeuler-ci-bot 修改了描述 2年前
zhaotianyang 任务状态待办的 修改为已完成 2年前
openeuler-ci-bot 任务状态已完成 修改为待办的 2年前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
2年前
openeuler-ci-bot 移除了
 
sig/Base-service
标签
2年前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
2年前
openeuler-ci-bot 添加了
 
sig/Base-service
标签
2年前

影响性分析说明:这是关于Python中的一个函数漏洞的描述。具体来说,Python中的email.utils.parseaddr函数在版本3.11.4之前存在漏洞,攻击者可以通过构造的参数来触发"RecursionError: maximum recursion depth exceeded while calling a Python object"错误。这个参数很可能是来自应程序输入数据的一个不受信任的值,本应包含一个姓名和电子邮件地址。需要注意的是,email.utils.parseaddr被归类为Python邮件包文档中的传统API。应用程序应该使用email.parser.BytesParser或email.parser.Parser来代替。

社区认为这既不是漏洞也不是错误。邮件包旨在具有大小限制,当超出限制时会引发异常;在示例演示代码中超出了限制。

openEuler评分: 5.3
Vector:CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

受影响版本排查(受影响/不受影响):
1.openEuler-20.03-LTS-SP1(3.7.9):不受影响
2.openEuler-20.03-LTS-SP3(3.7.9):不受影响
3.openEuler-22.03-LTS(3.9.9):不受影响
4.openEuler-22.03-LTS-SP1(3.9.9):不受影响
5.openEuler-22.03-LTS-SP2(3.9.9):不受影响

修复是否涉及abi变化(是/否):
1.openEuler-20.03-LTS-SP1(3.7.9):否
2.openEuler-20.03-LTS-SP3(3.7.9):否
3.openEuler-22.03-LTS(3.9.9):否
4.openEuler-22.03-LTS-SP1(3.9.9):否

openeuler-ci-bot 修改了描述 2年前
zhaotianyang 任务状态待办的 修改为已完成 2年前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
2年前
openeuler-ci-bot 移除了
 
sig/Base-service
标签
2年前
openeuler-ci-bot 添加了
 
CVE/UNAFFECTED
标签
2年前
openeuler-ci-bot 添加了
 
sig/Base-service
标签
2年前
openeuler-ci-bot 计划开始日期设置为2023-07-05 2年前
openeuler-ci-bot 计划截止日期设置为2023-08-04 2年前
openeuler-ci-bot 优先级设置为主要 2年前

登录 后才可以发表评论

状态
负责人
项目
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
预计工期 (小时)
开始日期   -   截止日期
-
置顶选项
优先级
里程碑
分支
参与者(2)
5329419 openeuler ci bot 1632792936 zhuofeng-zhuofeng6
1
https://gitee.com/src-openeuler/python3.git
git@gitee.com:src-openeuler/python3.git
src-openeuler
python3
python3

搜索帮助