FreeBSD:cURL 库 -- curl_easy_unescape 中的堆损坏 (01cf67b3-dc3b-11e2-a6cd-c48508086173)

medium Nessus 插件 ID 66968

简介

远程 FreeBSD 主机缺少与安全相关的更新。

描述

cURL 开发人员报告:

libcurl 容易遇到错误检查输入数据的情况,可能导致堆损坏。

函数 curl_easy_unescape() 将 URL 编码的字符串解码为原始二进制数据。URL 编码的八进制数使用 %HH 组合表示,其中 HH 是一个两位十六进制数。解码的字符串被写入该函数返回给调用程序的所分配内存区域中。

该函数采用一个源字符串和一个长度参数,并且如果提供的长度为 0,该函数将改用 strlen() 计算要解析的数据量。

“%HH”解析器错误地仅考虑零字节终止输入这一情况。如果传递长度受限且在外部以“%”字符加两个十六进制数字结尾的缓冲区,则允许 libcurl 解析不是以零结尾的别名,并且 libcurl 仍然也解析该序列。
要处理的其余数据的计数器将过分减小并封装变为极大整数,而复制持续时间太久,且堆中分配的目标缓冲区会被覆盖。

我们认为程序不可能允许将用户提供的字符串不经过滤即添加到此函数中。此外,此缺陷仅影响不是以零结尾的输入字符串使用案例。特定情况下可利用此缺陷达到目标,但是我们认为此缺陷的整体风险为低危。

curl 命令行工具不使用此函数,因而不受此问题的影响。

目前尚无已知的利用案例。

解决方案

更新受影响的程序包。

另见

https://curl.haxx.se/docs/CVE-2013-2174.html

http://www.nessus.org/u?b98d322a

插件详情

严重性: Medium

ID: 66968

文件名: freebsd_pkg_01cf67b3dc3b11e2a6cdc48508086173.nasl

版本: 1.7

类型: local

发布时间: 2013/6/24

最近更新时间: 2021/1/6

支持的传感器: Nessus

风险信息

VPR

风险因素: Medium

分数: 6.7

CVSS v2

风险因素: Medium

基本分数: 6.8

矢量: CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:P

漏洞信息

CPE: p-cpe:/a:freebsd:freebsd:curl, cpe:/o:freebsd:freebsd

必需的 KB 项: Host/local_checks_enabled, Host/FreeBSD/release, Host/FreeBSD/pkg_info

补丁发布日期: 2013/6/23

漏洞发布日期: 2013/6/22

参考资料信息

CVE: CVE-2013-2174