news 2026/5/1 11:43:33

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CVE-2021-40438_ Apache HTTP Server mod_proxy 模块 SSRF漏洞

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

  • 1. 漏洞原理
    • mod_proxy 架构
    • 漏洞怎么发生的?
  • 2. 漏洞危害
  • 3. 漏洞修复

CVSS评分:9.0

1. 漏洞原理

漏洞详细分析:

  • https://firzen.de/building-a-poc-for-cve-2021-40438
  • https://www.leavesongs.com/PENETRATION/apache-mod-proxy-ssrf-cve-2021-40438.html

mod_proxy 架构

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

举个例子,假设配置是:

ProxyPass /app http://backend:8080/api
  1. 用户访问http://yoursite/app/users

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

原始:/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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 7:03:15

Open-AutoGLM调度引擎深度解析:如何实现毫秒级城市资源响应?

第一章:Open-AutoGLM调度引擎深度解析:如何实现毫秒级城市资源响应?Open-AutoGLM作为新一代智能调度引擎,专为高并发、低延迟的城市级资源调度场景设计。其核心架构融合了实时图神经网络推理与动态负载预测模型,能够在…

作者头像 李华
网站建设 2026/5/1 8:33:58

从对话到预判:Open-AutoGLM如何实现驾驶员意图理解的跨越式突破

第一章:从对话到预判:Open-AutoGLM的演进之路Open-AutoGLM 的发展标志着大语言模型从被动响应向主动推理的重要跨越。早期版本聚焦于自然语言理解与生成,能够完成基础对话任务。随着应用场景复杂化,系统逐步引入上下文感知、多轮状…

作者头像 李华
网站建设 2026/5/1 8:04:26

Open-AutoGLM电子病历整理全攻略(从部署到上线仅需7步)

第一章:Open-AutoGLM电子病历整理辅助Open-AutoGLM 是一款专为医疗信息处理设计的开源大语言模型辅助工具,专注于提升电子病历(EMR)的整理效率与准确性。通过自然语言理解与结构化输出能力,该系统能够自动解析医生口述…

作者头像 李华
网站建设 2026/4/30 23:39:03

Open-AutoGLM在虚拟城市中的应用:3步实现高并发场景智能调度

第一章:Open-AutoGLM在虚拟城市中的应用:3步实现高并发场景智能调度在虚拟城市模拟系统中,面对成千上万的智能体并发请求,传统调度算法常因响应延迟和资源争用而失效。Open-AutoGLM 作为一种基于自适应图学习机制的调度框架&#…

作者头像 李华
网站建设 2026/5/1 7:54:15

【工业智能控制新纪元】:Open-AutoGLM赋能数字孪生的7大应用场景

第一章:Open-AutoGLM 数字孪生联动控制Open-AutoGLM 是一个面向工业自动化与人工智能融合的开源框架,专注于实现数字孪生系统与大语言模型(LLM)之间的实时联动控制。该架构通过构建物理设备的虚拟映射,结合自然语言指令…

作者头像 李华
网站建设 2026/5/1 9:10:46

【AI进化的下一个拐点】:Open-AutoGLM如何重塑自主学习技术边界?

第一章:Open-AutoGLM 自主学习进化机制Open-AutoGLM 是一种基于生成语言模型的自主学习系统,其核心在于构建一个能够持续优化自身推理与知识获取能力的闭环机制。该系统通过动态反馈、任务自我生成与多阶段验证,实现模型在无强监督环境下的渐…

作者头像 李华