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_httpmod_proxy_fcgimod_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 返回 NULLuds_path 未被正确设置,从而使代理逻辑走回"以 TCP/域名/URI 连接"的分支,使用 | 之后的那个 URL 作为目标------这就给了攻击者控制代理目标的机会。

2. 漏洞危害

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

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

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

3. 漏洞修复

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

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

相关推荐
PXM的算法星球5 小时前
并发安全的轮询下标设计:用取模消灭越界与状态依赖
安全
优选资源分享5 小时前
PDF Anti-Copy Pro v2.6.2.4:PDF 防拷贝工具
网络·安全·pdf
三块可乐两块冰5 小时前
【无标题】
安全
边际效应6 小时前
第十三章:Native层安全深度剖析
安全
边际效应6 小时前
第四章:Unidbg原理与环境搭建
安全
yintele6 小时前
类人机器人BMS的静电防护
网络·安全·机器人
●VON6 小时前
AI 保险机制:为智能时代的不确定性兜底
人工智能·学习·安全·制造·von
bleach-7 小时前
buuctf系列解题思路祥讲--[SUCTF 2019]CheckIn1--文件上传以及user.ini的应用
nginx·web安全·网络安全·php
视觉&物联智能7 小时前
【杂谈】-人工智能在风险管理中的应用:愿景与现实的差距
人工智能·网络安全·ai·aigc·agi
Bruce_Liuxiaowei7 小时前
内网探测常用技术方法整理
网络·安全·网络安全