2025年7月19日星期六

BIND 9 CVE-2025-40777 漏洞分析与修复建议

最近关注到 BIND 9 中的一个较严重漏洞,编号为 CVE-2025-40777。
通过查阅文档,这个漏洞主要在递归服务器中出现,在特定配置下,遇到某些 CNAME 解析请求时,named 进程因断言失败崩溃,造成 DNS 服务不可用。

漏洞背景

漏洞出现在 BIND 的 serve-stale 功能上。serve-stale 作用是当上游服务器响应失败时,
允许使用过期缓存应答,从而保证解析的连续性和稳定性。

然而当配置文件中设置了 stale-answer-client-timeout 为 0,同时启用了 serve-stale,
遇到某些特殊的 CNAME 链解析请求时,named 进程会触发断言失败崩溃。

影响范围

  • BIND 9.20.0 到 9.20.10 
  • BIND 9.21.0 到 9.21.9
  • BIND 9.20.9-S1 到 BIND 9.20.10-S1
  • 9.18.0之前和9.18.11-S1之前的版本官方没有测试

默认情况下,serve-stale 是关闭的,且 stale-answer-client-timeout 也不是 0,
因此如果没有手动设置,一般不会受到影响。

如果没有开启递归,纯权威服务器不会受此漏洞的影响。

漏洞等级与风险

  • CVSS v3.1 基础分数:7.5(高危)
  • 攻击者无需认证即可远程触发 DoS 攻击
  • 攻击结果为 DNS 服务进程崩溃,导致解析中断
  • 影响依赖该服务的系统和应用,可能造成网站访问失败、邮件中断、微服务不可用

漏洞原理简述

在处理递归查询时,serve-stale 允许返回过期的缓存答案以提高容错性。
但当 stale-answer-client-timeout 设置为 0,表示客户端不等待任何上游响应,
这与内部对 CNAME 链的处理逻辑发生冲突,最终导致断言失败。

临时解决办法

如果暂时无法升级,建议修改配置关闭此功能,避免崩溃:

options {  
  stale-answer-client-timeout off;  
  // 或者直接关闭 serve-stale  
  stale-answer-enable no;  
};

改完后请重启 named 服务生效。

推荐修复方案

官方已经发布了 BIND 9.20.11  BIND 9.21.10  BIND 9.20.11-S1 修复了此漏洞,升级后该漏洞断言失败问题将被彻底解决。

如果自行编译源码,官方源码包地址:

https://downloads.isc.org/isc/bind9/9.20.11/bind-9.20.11.tar.xz

升级完成后用 named -v 命令确认版本信息。

漏洞来源

该漏洞最初由 ISC 官方披露,相关安全咨询也已提交至 GitHub Advisory 数据库,
详情见:https://github.com/advisories/GHSA-4x4c-8qp9-8ggh

2025年7月17日星期四

F7015TV3光猫固化Telnet

临时得到 Telnet 权限后,执行下面的命令来固化。

sendcmd 1 DB p TelnetCfg

sendcmd 1 DB set TelnetCfg 0 Lan_Enable 1
sendcmd 1 DB set TelnetCfg 0 TS_UName root
sendcmd 1 DB set TelnetCfg 0 TSLan_UName root
sendcmd 1 DB set TelnetCfg 0 TS_UPwd Zte521   
sendcmd 1 DB set TelnetCfg 0 TSLan_UPwd Zte521
sendcmd 1 DB set TelnetCfg 0 Max_Con_Num 99
sendcmd 1 DB set TelnetCfg 0 ExitTime 999999
sendcmd 1 DB set TelnetCfg 0 InitSecLvl 3
sendcmd 1 DB set TelnetCfg 0 CloseServerTime 9999999
sendcmd 1 DB set TelnetCfg 0 Lan_EnableAfterOlt 1

sendcmd 1 DB save

F7015TV3光猫复位方法


开机时看到红灯在闪,就立刻按住复位键不要松,一直等到所有灯都亮了再松开,这样光猫就会自动恢复出厂设置了。

2025年7月14日星期一

手动修改 dynamic zone


#  冻结 zone(变为静态 zone,允许手动修改文件)

rndc freeze  example.com   


#  手动修改

vim /etc/bind/zones/example.com.zone  


#  重新加载

rndc reload example.com  


#  解冻(恢复 DDNS)

rndc thaw example.com    


2025年7月13日星期日

Replace OpenWrt DHCP and DNS Servers with Kea DHCP4 and BIND9

This guide explains how to replace the default OpenWrt DHCP and DNS servers with Kea DHCP4 and BIND9.


1. Install BIND and Kea DHCP4

opkg update
opkg install bind-server bind-check bind-dnssec bind-tools kea-dhcp4

2. Remove OpenWrt's default dnsmasq and odhcpd-ipv6only

opkg remove dnsmasq odhcpd-ipv6only
uci -q delete dhcp.@dnsmasq[0]
uci commit dhcp

3. Install and Configure Kea DHCP4

Copy init script and configuration file:

cp ./kea-dhcp4/etc/init/kea-dhcp4 /etc/init/
cp ./kea-dhcp4/etc/kea/kea-dhcp4.conf /etc/kea/

Edit the DHCP server configuration:

vim /etc/kea/kea-dhcp4.conf

Start and enable Kea DHCP4 service:

/etc/init.d/kea-dhcp4 start
/etc/init.d/kea-dhcp4 enable

4. Configure BIND9 DNS Server

Edit the main configuration:

cp ./bind/etc/bind/named.conf /etc/bind/
vim /etc/bind/named.conf

(Optional) Edit zone files:

vim /etc/bind/db.liuyu.dns
vim /etc/bind/db.192.168.1

5. Configure OpenWrt to use local BIND DNS Server

Set WAN DNS to localhost:

uci set network.wan.dns='127.0.0.1'
uci commit network

6. Start and enable BIND service

/etc/init.d/named start
/etc/init.d/named enable

7. Other useful commands

Restart services if needed:

service kea-dhcp4 restart
service named restart

This setup replaces the default dnsmasq with a more flexible and robust Kea DHCP4 and BIND9 combination.

GitHub Repository: https://github.com/liuyuf78fk/isc-openwrt

XG-040G-XX SuPassword 解密工具

 买了新光猫 XG-040G-TF ,  所以写了一个 SuPassword 解密工具, 以备不时之需 . 点击下载