专栏名称: OSC开源社区
OSChina 开源中国 官方微信账号
目录
相关文章推荐
OSC开源社区  ·  2024年度郑州软件产业市场分布报告 ·  3 天前  
程序员小灰  ·  年入千万的阿里P9,为什么要从大厂离职? ·  5 天前  
51好读  ›  专栏  ›  OSC开源社区

Linux 古老漏洞曝光!众发行版陷入困境;Struts 2 重大漏洞预警;GitLab 权限泄露漏洞|漏洞预警

OSC开源社区  · 公众号  · 程序员  · 2017-03-22 08:28

正文


 Linux 古老漏洞曝光!众发行版陷入困境

重大漏洞预警:Struts 2 远程代码执行漏洞(s2-045\s2-046) (含PoC)

● 漏洞预警:GitLab 权限泄露漏洞


Linux 古老漏洞曝光!众发行版陷入困境

https://www.oschina.net/news/83101/leading-linux-distros-dawdle-as-kernel-flaw-persists



Linux kernel 古老漏洞曝光,最早可追溯到 2009 年!影响到了红帽、Ubuntu、Debian 等多个发行版。


虽然在 Linux kernel 中修复了本地特权升级的缺陷,但几个上流发行版尚未发布更新。管理员应计划减轻 Linux 服务器和工作站本身的漏洞,并监视其更新计划的发行版。


俄罗斯技术研究员 Alexander Popov 称,Linux kernel 4.10.1(CVE-2017-2636)的 n_hdlc 驱动程序(drivers / tty / n_hdlc.c)中存在的竞争条件缺陷可能导致在访问 n_hdlc.tbuf 时,n_hdlc_release()中会出现 double-free 错误。


Double Free 其实就是同一个指针 free 两次。虽然一般把它叫做 double free,其实只要是 free 一个指向堆内存的指针都有可能产生可以利用的漏洞。能够在 tty 设备上设置 HDLC 线路规则的本地无特权用户可以利用此缺陷,并从而增加他们在系统上的特权。


该漏洞在 CVSS 3.0 下的基本得分为 7.8,它能够让本地无权限的用户获取 root 权限,或者发动 DoS 让系统崩溃。


4.10.1 以上的版本都存在这一问题,官方人员表示,该漏洞将影响 Linux 服务器,工作站以及虚拟机,但对大多数容器不造成影响。


波及范围


此漏洞影响的 Linux 发行版主要包括红帽、Ubuntu、Debian 等。


红帽表示非常重视这一漏洞的出现,并承诺在接下来的版本中会进行修复。该问题会影响 Red Hat Enterprise MRG 2 附带的实时内核程序包,Red Hat Enterprise Linux 7 附带的 kernel-rt 软件包以及 Red Hat Enterprise Linux 5/6/7 中的内核程序包,但不影响 Red Hat Enterprise Linux 5 附带的 Linux kernel 包。


Ubuntu 版本已严重受到影响,Canonical 已经发布了 Ubuntu Linux 12.04 LTS(Precise Pangolin),14.04 LTS(Trust Tahr),Ubuntu 16.04 LTS(Xenial Xerus)的主要 Linux Kernel 的修复程序 )和Ubuntu 16.10(Yakket Yak)。Canonical 已经更新了一些内核软件包,如 linux-ti-omap4(12.04 LTS)和 linux-gke(16.04 LTS)。


Debian 6.0 版本极易受到攻击,最新版本的 Debian jessie,3.16.39-1 + deb8u2 和 wheezy 3.2.86-1 中已有修复的内核模板。


安全措施


该漏洞广泛存在于经常使用的开源组件之中,在内核更新完全可用之前,管理员可通过手动防止内核加载来降低漏洞产生的可能。在修复之后请尽快下载安全更新。



Struts 2 远程代码执行漏洞(s2-045\s2-046) (含PoC)

https://www.oschina.net/news/83099/struts2--remote-code-execution-vulnerability



@安全客

背景介绍


近日,安全研究人员发现著名J2EE框架——Struts2存在远程代码执行的漏洞,Struts2官方已经确认该漏洞(S2-045,S2-046),并定级为高危漏洞。


Struts2 的使用范围及其广泛,国内外均有大量厂商使用该框架。


Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。(来源:百度百科)


漏洞描述


使用Jakarta插件处理文件上传操作时可能导致远程代码执行漏洞。



S2-045漏洞影响


攻击者可以通过构造HTTP请求头中的Content-Type值可能造成远程代码执行。



S2-045PoC(来源于网络:http://www.cnblogs.com/milantgh/p/6512739.html)



S2-046漏洞影响(更新)


触发条件


上传文件的大小(由Content-Length头指定)大于Struts2允许的最大大小(2GB)。


header中的Content-Disposition中包含空字节。


文件名内容构造恶意的OGNL内容。



S2-046PoC来源于网络:https://community.hpe.com/t5/Security-Research/Struts2-046-A-new-vector/ba-p/6949723#)



S2-046PoC_2(来源于网络:https://gist.githubusercontent.com/frohoff/a3e24764561c0c18b6270805140e7600 )



验证截图



修复建议


1. 严格过滤 Content-Type 、filename里的内容,严禁ognl表达式相关字段。

2. 如果您使用基于Jakarta插件,请升级到Apache Struts 2.3.32或2.5.10.1版本。(强烈推荐)


官网公告

https://cwiki.apache.org/confluence/display/WW/S2-045

https://cwiki.apache.org/confluence/display/WW/S2-046


补丁地址


Struts 2.3.32:https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.3.32


Struts 2.5.10.1:https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.10.1


参考

http://struts.apache.org/docs/s2-045.html

http://struts.apache.org/docs/s2-046.html

https://community.hpe.com/t5/Security-Research/Struts2-046-A-new-vector/ba-p/6949723#



GitLab 权限泄露漏洞

https://www.oschina.net/news/83098/gitlab-8-dot-17-dot-4-security-release



@长亭科技订阅号:


漏洞概述


GitLab 是一个使用 Ruby on Rails 开发的开源应用程序,实现了一个 Git 仓库管理平台,可通过 Web 界面进行访问公开的或者私有的项目。在企业中得到的广泛的使用。近日研究者发现在其多个版本中存在用户多项敏感信息泄漏漏洞,攻击者可以通过这些漏洞来获取相应的用户权限,危害严重。


漏洞详情


当修改任务的分配者信息的时候,API 将返回该用户的个人信息详情,其中包括了该用户的authentication_token、encrypted_otp_secret、otp_backup_codes等敏感信息。


使用这些敏感信息结合 Gitlab API 可以实现使用该用户的身份和权限操作 GitLab。如果用户为管理员权限,可能会造成更大的危害。


影响版本


GitLab 用户authentication_token等敏感信息泄露漏洞分析


以下版本都受该漏洞影响:

● 8.7.0 ~ 8.15.7

● 8.16.0 ~ 8.16.7

● 8.17.0 ~ 8.17.3

● 8.7.0 ~ 8.15.7

● 8.16.0 ~ 8.16.7

● 8.17.0 ~ 8.17.3


解决方案


更新 GitLab


升级 GitLab 至以下相应版本:

● 8.15.8

● 8.16.8

● 8.17.4

升级完成后需要使用下述方式来重置所有用户的 private token 和 email token。


对于以 Omnibus 方式安装的用户,新建文件/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/reset_token.rake;对于以源码方式安装的用户,新建文件/lib/tasks/reset_token.rake,并写入如下内容:(如有复制代码需求,请点击“官方升级公告”查看)



Omnibus 方式安装的用户执行以下命令:



源码方式安装的用户执行以下命令:



临时补丁


如果因为业务原因不能及时更新 GitLab,可使用下述方式进行临时修复:


将如下内容保存至 gitlab.patch



Omnibus 方式安装的用户执行以下命令:


源码方式安装的用户执行以下命令:


参考


官方升级公告

https://about.gitlab.com/2017/03/20/gitlab-8-dot-17-dot-4-security-release/









推荐阅读

Javascript 常用的设计模式详解

长 URL 转短连接的简单设计与实现

自制“神器”,2017 最新 Web 开发者成长路线图

基于 vue2 + vuex 构建一个具有 45 个页面的大型单页面应用

点击“阅读原文”查看更多精彩内容