Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ai-vuln-rediscovery-nginx-cve-2026-42945 — 对nginx中CVE-2026-42945的可复现AI辅助漏洞重新发现,包括技术分析、PoC触发器和堆缓冲区溢出的补丁验证。 | Kitploit
工具/GitHubGitHub/chamsbouzaiene/ai-vuln-rediscovery-nginx-cve-2026-42945
漏洞分析Web安全论文与研究学习与教育AI 安全二进制利用
GitHubchamsbouzaiene/ai-vuln-rediscovery-nginx-cve-2026-42945

ai-vuln-rediscovery-nginx-cve-2026-42945

对nginx中CVE-2026-42945的可复现AI辅助漏洞重新发现,包括技术分析、PoC触发器和堆缓冲区溢出的补丁验证。

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
253个月前尚未审核
分享

AI辅助重新发现nginx中的CVE-2026-42945

本仓库记录了一个可复现的AI辅助漏洞重新发现实验,针对nginx的ngx_http_rewrite_module,该漏洞后来被关联为CVE-2026-42945。

该实验刻意缩小范围。易受攻击的文件src/http/ngx_http_script.c被直接提供给模型进行审计。这并非声称AI系统从头开始自主地在完整的nginx代码库中找到了该问题。

摘要

被审计的漏洞是一个由nginx重写处理中脚本引擎状态过时导致的堆缓冲区溢出。

在高层面上:

  1. 一个包含?的rewrite替换会设置e->is_args = 1。
  2. 在易受攻击的代码中,e->is_args在重写完成后未被清除。
  3. 后续的set、if或重写表达式如果复制了一个未命名的正则捕获(例如$1),可能会按照捕获将被原始复制的尺寸来分配目标缓冲区。
  4. 写入阶段随后看到过时的e->is_args = 1并对捕获进行URI转义。
  5. 转义可能将空格等字节从一个字节扩展到三个字节,因此写入阶段超过了长度阶段计算的分配大小。

本地的AddressSanitizer复现确认了以下位置的堆缓冲区溢出:

root@kitploit:~
ngx_escape_uri
ngx_http_script_copy_capture_code
ngx_http_rewrite_handler

本仓库包含的内容

root@kitploit:~
.
├── README.md
├── LICENSE
├── prompts/
│   ├── audit_prompt.md
│   └── poc_prompt.md
├── poc/
│   ├── trigger.py
│   ├── nginx.conf
│   ├── reproduce.sh
│   └── expected_output.txt
├── docs/
│   ├── technical-analysis.md
│   ├── vulnerability-breakdown.md
│   └── methodology.md
└── screenshots/
    └── asan-crash.png

复现

该PoC设计用于本地构建启用了AddressSanitizer的易受攻击nginx。它启动nginx在127.0.0.1:18080,向本地服务器发送精心构造的请求,并打印崩溃证据。

1. 使用ASan构建易受攻击的nginx

使用受影响的nginx源码树。该实验针对使用clang和ASan构建的nginx 1.30.0进行了验证:

root@kitploit:~
./auto/configure \
  --prefix=/tmp/nginx-asan-poc \
  --with-cc-opt='-O0 -g -fsanitize=address -fno-omit-frame-pointer' \
  --with-ld-opt='-fsanitize=address'

make -j"$(getconf _NPROCESSORS_ONLN 2>/dev/null || sysctl -n hw.ncpu)"

2. 运行PoC

从本仓库中:

root@kitploit:~
NGINX_BIN=/path/to/vulnerable/nginx/objs/nginx ./poc/reproduce.sh

如果本仓库直接放在用于验证的nginx源码检出目录内,该脚本也会自动找到../../objs/nginx。

3. 预期结果

成功的复现会打印类似以下的ASan报告:

root@kitploit:~
ERROR: AddressSanitizer: heap-buffer-overflow
WRITE of size 1
    #0 ngx_escape_uri ngx_string.c:1687
    #1 ngx_http_script_copy_capture_code ngx_http_script.c:1399
    #2 ngx_http_rewrite_handler ngx_http_rewrite_module.c:180

参见 poc/expected_output.txt。

ASan崩溃截图

最小触发配置

PoC使用的nginx配置故意保持简短:

root@kitploit:~
location / {
    rewrite ^(.*) /new?c=1;
    set $myvar $1;
    return 200 "$myvar\n";
}

第一个重写因为替换内容包含?而设置了e->is_args。后续的set在评估$1时,该过时状态仍然存在。

官方补丁

最小补丁在正则重写完成时重置脚本引擎的参数状态标志:

root@kitploit:~
e->is_args = 0;
e->quote = 0;

在该实验使用的源码树中,该修复出现在提交:

root@kitploit:~
524977e7c534e87e5b55739fa74601c9f1102686
Rewrite: fixed escaping and possible buffer overrun

关键点不在补丁的大小,而在于它恢复的状态不变性:长度阶段和写入阶段必须在是否将捕获作为URI参数进行复制上保持一致。

实验透明度

本实验使用了一个前沿的编码助手作为审计辅助。提示明确指导模型关注src/http/ngx_http_script.c中的内存安全问题,并特别注意两阶段长度/写入不匹配的漏洞。

重要限制:

  • 易受攻击的源文件是直接提供的。
  • 审计提示高度针对该漏洞类别。
  • 模型在验证期间可以访问本地仓库历史。
  • 该结果应理解为引导下的重新发现,而非自主漏洞狩猎。
  • PoC仅演示崩溃/ASan证据;它不是武器化的漏洞利用。

确切的提示包含在 prompts/audit_prompt.md 和 prompts/poc_prompt.md 中。

负责任使用

本仓库旨在用于防御性研究、补丁验证和可复现性。仅在你控制的本机实验环境中运行PoC。

许可证

本仓库中的文档和PoC框架采用MIT许可证发布。nginx本身不包含在内,并受其自己的许可证约束。

下载工具