漏洞描述

此次漏洞主要由于 PHP-FPM 中 sapi/ fpm/ fpm/ fpm_main.c 文件内的 env_path_info 下溢导致,攻击者可以使用换行符 %0a 破坏 Nginx 中 fastcgi_split_path_info 对应的正则表达式,导致传递给 PHP-FPM 的 PATH_INFO 值为空,从而触发该漏洞,通过发送特制的URL请求,在一些特殊的配置情况下会导致任意代码执行。

影响范围

使用 Nginx + PHP-FPM 的服务器,且在 nginx 下进行了如下配置,都可能存在远程代码执行漏洞。

location ~ [^/]\.php(/|$) {
fastcgi_split_path_info^(.+?\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;
...
}

漏洞复现

1.正常访问靶机环境

2.执行exp后访问

漏洞修复

1.更新官网补丁:https://bugs.php.net/patch-display.php?bug_id=78599&patch=0001-Fix-bug-78599-env_path_info-underflow-can-lead-to-RC.patch&revision=latest

2.检查nginx上文的配置。

最新文章

  1. Laravel 5.3 登录注册底层实现详解
  2. 18 行 JS 代码编一个倒时器
  3. h5移动端滑动的细节
  4. POJ 1564 经典dfs
  5. LINK : fatal error LNK1104: 无法打开文件“LIBCD.lib”
  6. 转载一篇文章 python程序员经常犯的10个错误
  7. IOS学习感想
  8. Lock锁_线程_线程域
  9. 04--帮助类ScreenAdapter编写
  10. v9 调用模型中新增的字段
  11. html的语法注意事项
  12. Linux记录-告警脚本
  13. Hadoop 系列(三)Java API
  14. Apollo 1 融合 Spring 的三个入口
  15. 为 10000+ 业务系统提供数据可视化能力的 AntV 又进化了
  16. Unity----Scene加载问题
  17. mybatis大于小于的转义
  18. 手动安装gradle
  19. 如何搭建github+hexo博客-转
  20. va泛型

热门文章

  1. 用react+redux+webpack搭建项目一些疑惑
  2. linux CentOS7 nginx nginx-rtmp-module搭建直播
  3. Java网络编程:IP地址和端口号
  4. input file 上传文件类型控制
  5. Es学习第二课, ES安装和客户端使用
  6. Qt error: C2236: 意外的标记“class”。是否忘记了“;”?
  7. RGBA的值0-255范围如何转换成0-1范围
  8. Spring 讲解(六)
  9. 关于Linux_监控系统资源/性能命令_vmstat
  10. ContextLoaderListener vs DispatcherServlet