2025年8月1日星期五

Nginx Support for QUIC and HTTP/3

首先确保:

1 nginx 升级到 1.28.0 或者更新 .

2 防火墙放行 udp 443.


配置文件修改:

第一个 server 增加:

listen 443 quic reuseport;
listen [::]:443 quic reuseport;

ssl_protocols TLSv1.2 TLSv1.3;

http2 on;
http3 on;
add_header Alt-Svc 'h3=":443"; ma=86400';

完整示例:

server {
    listen 443 ssl ;
    listen [::]:443 ssl ;
    listen 443 quic reuseport;
    listen [::]:443 quic reuseport;
    server_name example.com;
    ssl_certificate /path/fullchain.pem;
    ssl_certificate_key /path/key.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';

    http2 on;
    http3 on;
    add_header Alt-Svc 'h3=":443"; ma=86400';

    root /var/www/html;
    index index.html index.htm index.php;
...
}

如果有多个 server 的话不允许再次
listen 443 quic reuseport;
否则会端口冲突。所以其余的 server 使用:
listen 443 quic;

例如:

第二个 server 增加:
listen 443 quic;
listen [::]:443 quic;
ssl_protocols TLSv1.2 TLSv1.3;
http2 on;
http3 on;
add_header  Alt-Svc 'h3=":443"; ma=86400';
更多的 server 同上。

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

CVE-2026-31431 漏洞验证和临时修复方案

昨天披露了一个漏洞,CVE-2026-31431。 简单说就是普通用户一旦拿到shell,就可以利用该漏洞直接提权到root。 漏洞验证: git clone https://github.com/rootsecdev/cve_2026_31431.git cd cve_2026...