Python 被发现存在 IP 地址验证漏洞
Python 标准库 ipaddress 被发现存在严重的 IP 地址验证漏洞,与今年早些时候 "netmask" 库中报告的漏洞相同。
本周,发现 netmask 关键漏洞的研究人员也在 ipaddress 模块中发现了同样的漏洞,并获得了一个新的漏洞标识符:CVE-2021-29921。该漏洞于 Python 3.3 版本中随 ipaddress 标准库引入。Python 的 ipaddress 模块主要提供创建 IP 地址、网络和接口的功能,并可以对以不同格式输入的 IP 地址进行解析。
众所周知,IPv4 地址可以用多种格式表示,包括十进制、整数、八进制和十六进制,但最常见的格式是十进制,例如 localhost 127.0.0.1。但如果在它前面加上一个 0,浏览器会将整个字符串视为八进制格式的 IP 地址。比如在 Chrome 的地址栏中输入 0127.0.0.1,IP 实际上变成了十进制的87.0.0.1,这也是大多数应用程序应该处理这种模糊的 IP 地址的方式。
值得注意的是,127.0.0.1 并不是一个公共的 IP 地址,这种模糊的表述将它变成了一个公共的 IP 地址。根据 IETF 的原始规范,对于模糊的 IP 地址,如果前缀为 "0",IPv4 地址的部分内容可以用八进制解释。但是,在 Python 标准库 ipaddress 的情况下,任何前缀零都会被简单地丢弃,即 '010.8.8.8' 会被当作 '10.8.8.8',而不是 '8.8.8.8'。
由于 ipaddress 输入验证不当,攻击者能够对许多依赖 ipaddress 的程序进行服务器端请求伪造(SSRF)、远程文件包含(RFI)和本地文件包含(LFI)攻击,例如,如果反 SSRF 绕过的封锁名单一直依赖 ipaddress 来解析 IP 列表,那么这种模糊的 IP 就很容易被塞进去。不过,尽管 ipaddress 模块是在 Python 3.3 中引入的,但据研究人员说,这个漏洞从 Python 3.8.0 到 3.10 版本时才出现,因为此前有一些检查,完全拒绝以混合格式(即八进制和十进制)提供的 IP 地址。
目前,Python 的维护者们正在讨论解决方案,但具体细节以及何时修复仍未明确。关于该漏洞的更多细节,可以在研究人员的博文中查阅。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
BeeCP-3.1.9 发布,高性能 JDBC池
小蜜蜂连接池:一款轻量级JDBC连接池。 1:版本下载(java7) <dependency> <groupId>com.github.chris2018998</groupId> <artifactId>beecp</artifactId> <version>3.1.9</version> </dependency> 2:更新内容 调整配置项名 ‘ connectionTestSQL’ 为‘ connectionTestSql’ 增强连接检查时事务处理 在池化对象上增加onBeforeRemove方法 5:Springboot启动器同步更新 <dependency> <groupId>com.github.chris2018998</groupId> <artifactId>beecp-spring-boot-starter</artifactId> <version>1.5.5</vers...
- 下一篇
Blanket —— 环境噪音播放器
Blanket 是一个令人印象深刻的环境噪音播放器,它具有不同的声音,可以帮助你入睡或只是通过帮助你忘记周围的干扰来重获注意力。 它包括自然界的声音,像雨声、海浪声、鸟鸣声、风暴声、风声、水流声、夏夜声。 此外,如果你是一个通勤者或在轻微繁忙的环境中感到舒适的人,你可以找到火车、船、城市、咖啡馆或壁炉的声音。 如果你喜欢白噪声或粉红噪声,它结合了人类能听到的所有声音频率,在这里也可以找到。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装Docker,最新的服务器搭配容器使用
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19