只要你在 Alpine Linux 系统 Docker 镜像中安装有 shadow 或 linux-pam 软件包,那么这个镜像是有安全漏洞的,需要尽快修补,要说明的是,其他 Alpine Linux 系列不受这个漏洞影响,以下是详情和解决方法。

影响级别大

Alpine Linux Docker 镜像是一个十分小巧的镜像,大小仅 5MB,远小于其他的 Linux 发行版,在 Docker Hub 的下载次数已超过千万。

同时 Alpine Linux 发行版向来以轻巧和安全而被大家熟知,但最近思科安全研究人员却发现 Alpine Linux 的 Docker 镜像存在一个已有三年之久的安全漏洞,通过该漏洞可使用空密码登录 root 帐户。

该漏洞的编号为 CVE-2019-5021,严重程度评分为 9.8 分,最早在 Alpine Linux Docker 镜像 3.2 版本中被发现,并于2015年11月进行了修复,还添加了回归测试以防止将来再发生。

但后来为了简化回归测试,Alpine Linux Docker 镜像的 GitHub 仓库合并了一个新的 commit,而正是这个 commit 导致了错误的回归,并在 3.3 之后的版本中(包括 Alpine Docker Edge)都保留了这个漏洞,即:v3.5(EOL)、v3.4(EOL)、v3.3(EOL),目前该漏洞已被修复。

注:该问题已在 edge (20190228 snapshot)、v3.9.2、v3.8.4、v3.7.3、v3.6.5 版本的 Docker镜像(2019年3月7日)中修复。

漏洞说明

官方对这个漏洞的描述为:如果在 Docker 容器中安装了 shadow 软件包并以非 root 用户身份运行服务,那么具有 shell 访问权限的用户可在容器内对账号进行提权。密码以加密形式保存,但允许以 root 身份登录而无需输入任何密码:

该漏洞仅针对 Alpine Linux 的 Docker 镜像版本,且安装了shadow 或 linux-pam 软件包才会受影响。

如果没有安装 shadow 或 linux-pam 软件包,则不会受到影响,如果你使用 Alpine linux 安装程序 setup-alpine,则不会受到影响。

专业说明

Alpine Linux 使用 busybox 作为核心工具,我们已经测试并确保只允许来自 /etc/securetty 中列为安全的 TTY 的无密码的 root 登录,这样就可以在计算机上启动 Alpine 并以 root 身份登录,而无需为 Alpine 提供任何预生成的密码,我们认为一个预生成的密码比没有密码更糟糕,像 sshd 这样的服务根本不允许使用空白密码登录,不幸的是,当用户安装 shadow 和 linux-pam,而不是使用默认工具时,安全问题出现了。

解决方法

对于使用较旧的、不受支持的版本,可以将以下命令添加到 Dockerfile 来修复漏洞:

# make sure root login is disabled

RUN sed -i -e 's/^root::/root:!:/' /etc/shadow

或者在 Alpine Linux 系统中卸载 shadow 或 linux-pam 软件包。当然,你没有安装 shadow 或 linux-pam 软件包,系统就不会有安全问题,这种情况下,不需要做处理。

相关主题

linux docker漏洞,安装shadow或linux-pam的Alpine Linux Docker镜像有漏洞,附解决相关推荐

  1. jemter在linux上怎么安装_【JMeter之一】在linux系统下安装jmeter

    Apache JMeter是Apache组织开发的基于Java的压力测试工具,因此首先需要安装的是JDK 目前JMeter3.0需要的在JDK1.7及以上版本运行这是需要注意的一点 一.下载JDK 下 ...

  2. linux python默认安装目录_非root用户在linux服务器自己目录下安装需要的python版本及其模块...

    由于之前使用服务器现在不再使用,最近使用一台新的服务器.科研分析用到一个python 程序, lmfit需要在服务器上运行.由于该程序基于python 2.7,而服务器默认安装的python 为2.6 ...

  3. linux中可以安装不同版本的gcc么,在linux下安装多个版本的GCC

    文章链接:http://blog.csdn.net/chid/article/details/6251781 很是有用,转载学习 1.查看当前linux版本 内核版本:cat /proc/versio ...

  4. 手机远程linux桌面,centos8安装xrdp远程桌面,Android手机连接linux桌面

    前言 毫无疑问手机已经成为了生产力,有时我们想用安卓手机远程连接centos/ubuntu/debian等linux系统,该怎么办呢? ssh连接可以远程访问终端,xrdp和vnc可以让我们远程连接l ...

  5. 安装linux分区设置密码,安装和使用Gnome Disk Utility在Linux上加密硬盘分区

    本文介绍的是安装和使用Gnome Disk Utility以能够在Linux操作系统上加密硬盘分区.加密硬盘分区是保存大量重要数据的好方法,无需经过使用GnuPG.VeraCrypt等工具的繁琐过程来 ...

  6. linux系统 能安装ie吗,手把手教你在Linux上运行IE浏览器

    [IT168 产品应用]对于在Linux上安装微软的产品,尤其是IE浏览器,大多数Linux用户会感到比较惊恐,唯恐其污染了纯洁的Linux.但是,在使用普通的Linux下的浏览器浏览网页的时候,例如 ...

  7. linux crossover教程,CrossOver Linux版如何安装已知应用程序?CrossOver Linux版安装已知应用程序教程...

    CrossOver Linux版是一款让您可以在Linux 系统上运行 Windows 应用的软件,不必购买 Windows 授权,不必重启系统,不必使用虚拟机.CrossOver 可以让您在 Ubu ...

  8. cairosvg在linux中的安装_直接用ISO文件在linux上安装新系统

    Use Case-When you don't have CD / DVD drive on your system. -You have Fedora DVD but your system has ...

  9. VMLite 安装linux系统,VMlite安装XPMode及xp、win7、linux的虚拟磁盘到D盘的方法(15页)-原创力文档...

    PAGE PAGE # 1.安装 windows xp mode 图文 错误! 未疋义书签. 2. 安装ubuntu.xp.win7.等类似图文教程错误!未定义书签. 安装vmlite我就不说了,一直 ...

最新文章

  1. C语言基础之--scanf函数
  2. Happy Number
  3. ff14服务器维护怎么办,《FF14》8月20日维护到几点 最终幻想14服务器迁移维护公告...
  4. ubuntu权限管理
  5. 同余(数论) AcWing算法课
  6. MFC_自定义事件响应
  7. 字符串匹配(多模式匹配篇)
  8. Magento2后台忘记密码
  9. .net解析传过来的xml_隧桥管廊BIM+GIS运维管理系统方案解析
  10. angularjs中的单选框绑定数据注意事项
  11. R语言入门(3)——R包的使用
  12. 红米K30、K40所有版本获取root教程,理论上支持所有小米手机(超级详细,附带原理解释)
  13. Matlab快速导入数据文件
  14. 各层电子数排布规则_按照核外电子排布规律:各电子层最多容纳电子数2n2(n为电子层数,...
  15. php表单时间控件,phpcmsV9中表单向导在js调用里日期控件在IE下报Calendar未定义的解决办法...
  16. 从血红细胞衰老看中老年疑难病和亚健康--
  17. 采用FPGA开发高清相机sensorISP芯片要点分析
  18. 电脑硬盘分区太多?如何合并分区?
  19. 4.多态(Thinking in java学习四)
  20. 蓝牙3.0/4.0/5.0联系与区别

热门文章

  1. 在WinAPI环境下获得1小时前系统时间
  2. MFC中STL容器中Vector,List,Map基本用法汇总
  3. MFC控件随窗口大小变化原理及实现
  4. win32 汇编基础概念整理
  5. Android拨打电话号功能
  6. android listadepter 释放资源,SimpleAdepter浅谈
  7. flask 模板 php,Flask四之模板
  8. springboot扫描组件_springboot多模块包扫描问题的解决方法
  9. java反射减少servlet_利用java 反射机制来实现一个servlet处理多种请求
  10. SVN使用和解决方案