CVE-2001-0010 (CNNVD-200102-011)
中文标题:
ISC Bind 8 TSIG远程缓冲区溢出漏洞
英文标题:
Buffer overflow in transaction signature (TSIG) handling code in BIND 8 allows remote attackers to g...
漏洞描述
中文描述:
BIND是一个实现域名服务协议的服务器软件。它在Internet上被广为使用。 它在TSIG(传输签名)的实现上存在一个缓冲区溢出漏洞,可能允许远程攻击者在BIND服务器上执行任意代码。由于溢出发生在DNS请求的初始化过程中,因此并不需要攻击者控制任何地权威DNS服务器,而且此问题影响所有递归和非递归的DNS服务器。 当收到一个DNS请求时,根据传输协议的不同,DNS请求的数据可能被存放到heap区或者是堆栈中。如果收到的是UDP报文,函数datagram_read()负责将其读入堆栈中的一个513字节大小的缓冲区(u.buf);如果收到的是TCP报文,函数stream_getlen()负责将其读入位于heap区的一个64k大小的缓冲区(sp->s_buf).BIND使用两个关键的变量来跟踪这些缓冲区的使用情况:一个包含缓冲区中的实际长度,名为"msglen";另一个变量用来跟踪缓冲区的剩余长度,名为"buflen"。当BIND收到一个DNS信息后,msglen被初始化成从网络中接收到的数据长度。buflen被初始化成用来读取这个消息的缓冲区的大小。(对于UDP报文为512字节,对TCP报文为64k)。正常情况下,当BIND处理一个请求时,它会将回复记录附加到请求中。然后它会编辑DNS头,使其反映出这种变化,并发送此响应报文。在此过程中,BIND假设msglen加上buflen的大小等于缓冲区的原长度。从BIND 8.2开始,在BIND处理一个DNS请求之前,它会检查DNS信息的附加区域,检查是否有TSIG资源记录。函数ns_find_tsig()被用来进行这个检查。如果一个有效的TSIG标记被找到,但相应的安全字(security key)却没有找到,BIND将会报错,并绕过了正常的请求处理过程。结果,msglen和buflen都仍然保持它们的初始值。BIND将此请求看作时一个错误请求,它使用原来的请求缓冲区,在问题域中增加一段TSIG信息。这时候,BIND假设请求缓冲区的大小仍然是msglen+buflen.正常情况下,这是正确的,然而,在这种特殊情况下,msglen+buflen几乎是实际缓冲区大小的两倍!这样,当BIND使用ns_sign()函数添加TSIG信息时,它们将被填充在缓冲区之外。由于有效的安全字没有被发现,ns_sign()将只会增加很少的一些字节,而且字节的内容也是有限的。因此这可能导致两种类型的攻击。对于UDP请求,请求缓冲区在堆栈中,攻击者可以使用一些固定的值来覆盖datagram_read()函数保存在堆栈中的激活记录。在x86平台下,用0覆盖保留栈帧指针的最小字节,可能导致该指针指向原来的DNS请求缓冲区。这种单字节溢出可能导致执行任意代码。对于TCP请求,请求缓冲区在heap区中。攻击者可以使用一些固定的值来覆盖malloc()动态分配时的一些边界字节,这样下一个边界信息就可以从攻击者控制的缓冲区中读取,这可能导致一个恶意的指针覆盖,攻击者也可能执行任意代码。
英文描述:
Buffer overflow in transaction signature (TSIG) handling code in BIND 8 allows remote attackers to gain root privileges.
CWE类型:
标签:
受影响产品
| 厂商 | 产品 | 版本 | 版本范围 | 平台 | CPE |
|---|---|---|---|---|---|
| isc | bind | 8.2 | - | - |
cpe:2.3:a:isc:bind:8.2:*:*:*:*:*:*:*
|
| isc | bind | 8.2.1 | - | - |
cpe:2.3:a:isc:bind:8.2.1:*:*:*:*:*:*:*
|
| isc | bind | 8.2.2 | - | - |
cpe:2.3:a:isc:bind:8.2.2:*:*:*:*:*:*:*
|
解决方案
中文解决方案:
英文解决方案:
临时解决方案:
参考链接
cve.org
cve.org
cve.org
cve.org
cve.org
exploitdb
exploitdb
cve.org
exploitdb
exploitdb
exploitdb
exploitdb
exploitdb
exploitdb
CVSS评分详情
AV:N/AC:L/Au:N/C:C/I:C/A:C
时间信息
利用信息
数据源详情
| 数据源 | 记录ID | 版本 | 提取时间 |
|---|---|---|---|
| CVE | cve_CVE-2001-0010 |
2025-11-11 15:17:20 | 2025-11-11 07:32:13 |
| NVD | nvd_CVE-2001-0010 |
2025-11-11 14:50:25 | 2025-11-11 07:40:59 |
| CNNVD | cnnvd_CNNVD-200102-011 |
2025-11-11 15:08:39 | 2025-11-11 07:48:45 |
| EXPLOITDB | exploitdb_EDB-277 |
2025-11-11 15:05:26 | 2025-11-11 08:23:42 |
| EXPLOITDB | exploitdb_EDB-279 |
2025-11-11 15:05:26 | 2025-11-11 08:23:48 |
| EXPLOITDB | exploitdb_EDB-280 |
2025-11-11 15:05:48 | 2025-11-11 08:23:52 |
| EXPLOITDB | exploitdb_EDB-282 |
2025-11-11 15:05:26 | 2025-11-11 08:24:01 |
版本与语言
安全公告
变更历史
查看详细变更
- references_count: 12 -> 14
- tags_count: 6 -> 7
查看详细变更
- references_count: 10 -> 12
- tags_count: 5 -> 6
查看详细变更
- references_count: 8 -> 10
- tags_count: 4 -> 5
查看详细变更
- references_count: 5 -> 8
- tags_count: 0 -> 4
- data_sources: ['cnnvd', 'cve', 'nvd'] -> ['cnnvd', 'cve', 'exploitdb', 'nvd']
查看详细变更
- vulnerability_type: 未提取 -> 授权问题
- cnnvd_id: 未提取 -> CNNVD-200102-011
- data_sources: ['cve', 'nvd'] -> ['cnnvd', 'cve', 'nvd']
查看详细变更
- severity: SeverityLevel.MEDIUM -> SeverityLevel.CRITICAL
- cvss_score: 未提取 -> 10.0
- cvss_vector: NOT_EXTRACTED -> AV:N/AC:L/Au:N/C:C/I:C/A:C
- cvss_version: NOT_EXTRACTED -> 2.0
- affected_products_count: 0 -> 3
- data_sources: ['cve'] -> ['cve', 'nvd']