漏洞扫描工具扫出的一些漏洞

Author: ban-lingCreated Jun 25, 2026Updated Jun 25, 2026

漏洞概述

本次审计发现项目 Config配置模块、WebServer核心服务模块、http_connHTTP处理模块 存在多处安全漏洞与稳定性缺陷,包含栈缓冲区溢出、SQL注入、空指针解引用、并发连接丢失、参数无校验等问题,可导致服务器崩溃、数据泄露、服务不可用、非法入侵等风险。

受影响文件

  • config.cpp
  • webserver.cpp
  • http_conn.cpp

一、Config 配置解析模块(行:5、36、38、40、42)

  1. 端口号无合法范围校验,支持传入0/负数/超范围数值,导致端口绑定失败
  2. 局部变量opt未初始化,存在C++未定义行为
  3. 未处理getopt()错误返回值,非法参数静默解析失败无提示
  4. switch语句无default兜底分支,无法捕获异常参数
  5. 使用不安全atoi函数转换参数,无输入校验,非法值直接污染配置

二、WebServer 核心服务模块(行:9、10、80、111、135)

  1. 内存分配无异常捕获,内存不足时程序直接崩溃
  2. 固定大小栈数组存储路径,getcwd无长度校验,存在高危栈缓冲区溢出
  3. 栈上固定容量epoll事件数组,高并发场景下事件丢失
  4. LT模式下仅单次调用accept,高并发时新连接永久丢失
  5. 定时器指针无空指针校验,直接使用触发空指针解引用,服务器崩溃

三、http_conn HTTP连接处理模块(行:44、45、56、104、166)

  1. 数据库结果集mysql_store_result无空指针校验
  2. 直接使用空指针结果集mysql_num_fields,必现程序崩溃
  3. 使用strcpy无长度限制,存在高危栈缓冲区溢出
  4. HTTP请求行解析无边界校验,存在解析漏洞
  5. 固定大小数组解析POST参数无校验,存在栈缓冲区溢出 + 高危SQL注入漏洞

复现方式

  1. 传入非法/超长命令行参数,触发配置解析失败
  2. 程序部署在超长工作路径,触发栈溢出
  3. 高并发压测,复现连接/事件丢失
  4. 恶意构造POST请求,触发SQL注入、缓冲区溢出
  5. 客户端异常断开,触发定时器空指针崩溃
  6. 数据库查询失败,触发MySQL结果集空指针崩溃