CVE-2021-40438_ Apache HTTP Server mod_proxy 模块 SSRF漏洞

CVE-2021-40438_ Apache HTTP Server mod_proxy 模块 SSRF漏洞

  • [1. 漏洞原理](#1. 漏洞原理)
  • [2. 漏洞危害](#2. 漏洞危害)
  • [3. 漏洞修复](#3. 漏洞修复)

CVSS评分:9.0

1. 漏洞原理

漏洞详细分析:

mod_proxy 架构

简单说说mod_proxy 架构:mod_proxy 是一个框架,具体协议由 mod_proxy_http、mod_proxy_fcgi、mod_proxy_ajp 等子模块实现。每个子模块会注册自己的 canon handler 来把配置或请求 URL 规范化,最终生成 r->filename 这样的中间表示(以 proxy: 开头的字符串),供后续代理逻辑使用。

举个例子,假设配置是:

bash 复制代码
ProxyPass /app http://backend:8080/api
  1. 用户访问 http://yoursite/app/users

mod_proxy_http的canon handler把这个请求规范化:

plain 复制代码
原始:/app/users
规范化后:proxy:http://backend:8080/api/users
  1. 这个标准化的字符串保存到 r->filename
  2. 后面的代理逻辑看到proxy:开头的内容,就知道:
  • 这是个代理请求
  • 具体由哪个子模块处理(根据协议类型)

漏洞怎么发生的?

Apache 支持一种 "unix socket + 后端 URL" 的混合写法(例如 unix:/path/to.sock|http://...)------这是用于把反代指向本地 UDS 的便利语法。解析步骤里有个 fix_uds_filename 函数负责把 unix: 部分解析成 uds_path,把 | 之后的部分当作真实目标 URL

但是,r->filename 的后半段(path/search)来源于 HTTP 请求中的 path/query,而不是仅来源于静态配置,因此攻击者能在请求中插入操控内容,影响 r->filename 的最终字符串

fix_uds_filename 在把 unix: 的 path 变成 uds_path 时,会调用 ap_runtime_dir_relative → 最终走到 apr_filepath_merge。当 apr_filepath_merge 因入参超长或其他条件返回错误时,会导致 ap_runtime_dir_relative 返回 NULL,uds_path 未被正确设置,从而使代理逻辑走回"以 TCP/域名/URI 连接"的分支,使用 | 之后的那个 URL 作为目标------这就给了攻击者控制代理目标的机会。

2. 漏洞危害

借助该 SSRF,攻击者可访问内部网络服务,窃取敏感信息等等

该漏洞并非只能发 HTTP 请求,其能力取决于 Apache mod_proxy 当前加载了哪些 "scheme handler" 模块。

如果服务器加载了其它 proxy 扩展模块,则此 SSRF 就能支持更多的协议。

3. 漏洞修复

目前厂商已发布升级补丁以修复漏洞,补丁获取链接:

https://access.redhat.com/security/cve/cve-2021-40438

相关推荐
龙亘川4 天前
一网统管AI平台民生业务实践:基于城市数字底座赋能公积金业务服务升级
大数据·安全·智慧城市·开源软件·数据可视化·政务
kybs19914 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
XUEYUAN52124 天前
ASN 自治系统号风控:平台如何通过 IP 所属自治域批量识别代理流量
python·网络协议·http·网络安全·socks5
LorryJovens4 天前
【LAAP科研】双系统具身AGI范式研究——基于LAAP认知架构与Jev概率决策模型的系统性技术调研与范式验证
人工智能·gpt·安全·架构
其实防守也摸鱼4 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
TechEdu2026064 天前
[人工智能]人工智能时代的零日漏洞与零日攻击
人工智能·网络安全·ai·信息安全
山东科恩光电4 天前
提升安全性的关键技术:安全触边在工业自动化中的应用解析
安全
LONGZETECH4 天前
一线职教实测:风光 580 汽车故障诊断仿真系统,破解实车实训四大核心痛点
人工智能·学习·安全·架构·汽车
Mikko74 天前
jackson-databind 升到 2.21.6 就安全了吗?jackson-core 是另一个坐标,它那条 high 全局库至今没收
java·后端·安全·json