Amazon Linux AMI : ruby20 / ruby22,ruby23,ruby24 (ALAS-2018-983)

critical Nessus 插件 ID 108846

简介

远程 Amazon Linux AMI 主机缺少安全更新。

描述

写入 root RubyGems 版本 Ruby 2.2 系列外部符号链接的 basedir 时,发现路径遍历:2.2.9 和更旧版本,Ruby 2.3 系列:2.3.6 和更旧版本,Ruby 2.4 系列:2.4.3 和更旧版本,Ruby 2.5 系列:2.5.0 和更旧版本,在主干修订版 62422 之前,在 package.rb 的 install_location 函数中含有一个目录遍历漏洞,当写入 root 外部符号链接的 basedir 时,此漏洞可导致路径遍历。此漏洞似乎已在 2.7.6 中修复。(CVE-2018-1000073) tarball 中的不当签名验证允许安装签名错误的 gem:RubyGems 版本 Ruby 2.2 系列:2.2.9 和更旧版本,Ruby 2.3 系列:2.3.6 和更旧版本,Ruby 2.4 系列:2.4.3 和更旧版本,Ruby 2.5 系列:2.5.0 和更旧版本,在主干修订版 62422 之前,在 package.rb 中含有一个不当验证加密签名漏洞,可导致安装签名错误的 gem,因为 tarball 将包含多个 gem 签名。此漏洞似乎已在 2.7.6 中修复。(CVE-2018-1000076) 因为 tar 标头中的负大小而导致的无限循环漏洞可造成拒绝服务。RubyGems 版本 Ruby 2.2 系列:2.2.9 和更旧版本,Ruby 2.3 系列:2.3.6 和更旧版本,Ruby 2.4 系列:2.4.3 和更旧版本,Ruby 2.5 系列:2.5.0 和更旧版本,在主干修订版 62422 之前,在 ruby gem 程序包 tar 标头中包含一个负大小漏洞造成的无限循环,可导致能够造成无限循环的负大小。此漏洞似乎已在 2.7.6 中修复。(CVE-2018-1000075) lib/resolv.rb:lazy_initialize() 中的命令注入可导致任意代码执行:lib/resolv.rb 中的 'lazy_initialize' 函数未正确处理某些文件名称。远程攻击者可能利用此缺陷注入并执行任意命令。(CVE-2017-17790) 规格首页属性缺少 URL 验证可让恶意 gem 设置无效的首页 URL:RubyGems 版本 Ruby 2.2 系列:2.2.9 和更旧版本,Ruby 2.3 系列:2.3.6 和更旧版本,Ruby 2.4 系列:2.4.3 和更旧版本,Ruby 2.5 系列:2.5.0 和更旧版本,在主干修订版 62422 之前,在 ruby gems 规格首页属性中含有一个不当输入验证漏洞,可导致恶意 gem 设置无效的首页 URL。此漏洞似乎已在 2.7.6 中修复。(CVE-2018-1000077) 通过 gem 服务器显示时,首页属性中发现 XSS 漏洞。RubyGems 版本 Ruby 2.2 系列:2.2.9 和更旧版本,Ruby 2.3 系列:2.3.6 和更旧版本,Ruby 2.4 系列:2.4.3 和更旧版本,Ruby 2.5 系列:2.5.0 和更旧版本,在主干修订版 62422 之前,在 gem 服务器首页属性显示中,含有一个跨站脚本 (XSS) 漏洞,可导致 XSS。若要恶意利用此攻击,必须由受害者浏览至容易受到影响的 gem 服务器上的恶意 gem。此漏洞似乎已在 2.7.6 中修复。(CVE-2018-1000078) gem 所有者中发现不安全的对象反序列化漏洞,进而允许在特制的 YAML 上执行任意代码。RubyGems 版本 Ruby 2.2 系列:2.2.9 和更旧版本,Ruby 2.3 系列:2.3.6 和更旧版本,Ruby 2.4 系列:2.4.3 和更旧版本,Ruby 2.5 系列:2.5.0 和更旧版本,在主干修订版 62422 之前,在所有者命令中含有一个未受信任数据反序列化漏洞,可导致代码执行。若要恶意利用此攻击,必须通过特制的 YAML 文件,由受害者在 gem 上执行 `gem owner` 命令。此漏洞似乎已在 2.7.6 中修复。(CVE-2018-1000074) gem 安装期间发生的路径遍历问题允许写入任意文件系统位置。RubyGems 版本 Ruby 2.2 系列:2.2.9 和更旧版本,Ruby 2.3 系列:2.3.6 和更旧版本,Ruby 2.4 系列:2.4.3 和更旧版本,Ruby 2.5 系列:2.5.0 和更旧版本,在主干修订版 62422 之前,在 gem 安装中含有一个目录遍历漏洞,可导致 gem 在安装期间写入任意文件系统位置。若要恶意利用此攻击,必须由受害者安装恶意的 gem。此漏洞似乎已在 2.7.6 中修复。(CVE-2018-1000079) 如果某个脚本接受外部输入,并在不修改的情况下,将其当做 HTTP 响应的一部分输出,攻击者可利用换行符欺骗客户端 HTTP 响应标头已在该处停止,而且可以在换行符后面注入假的 HTTP 响应,以便向客户端显示恶意内容。(CVE-2017-17742) tmpdir 库引入的 Dir.mktmpdir 方法可接受作为第一个参数创建之目录的前缀和后缀。前缀可以包含相对目录说明符 '../',因此可以使用此方法设定任何目标目录。因此,如果某个脚本接受外部输入做为前缀,而且目标目录拥有不当权限或 ruby 进程拥有不当权限,则攻击者可以在任何目录建立目录或文件。(CVE-2018-6914) 如果攻击者发送含有大量 HTTP 标头的大型请求,WEBrick 会尝试在内存中处理该要求,因此该要求会造成内存不足的 DoS 攻击。(CVE-2018-8777) String#unpack 会接受格式说明符作为其参数,而且说明符 @ 可以指定解析数据的位置。如果使用 @ 传递大数字,该数字会被视为负值,并发生缓冲区溢出读取。因此,如果某个脚本接受外部输入作为 String#unpack 的参数,攻击者可读取堆上的数据。(CVE-2018-8778) UNIXServer.open 接受在第一个参数建立的套接字路径。如果路径含有 NUL (\0) 字节,此方法可辨识路径在 NUL 字节之前完成。因此,如果某个脚本接受外部输入作为此方法的参数,攻击者可在错误路径中建立套接字文件。此外,与 UNIXServer.open 类似,UNIXSocket.open 也接受在第一个参数建立的套接字路径,而不会检查 NUL 字节。因此,如果某个脚本接受外部输入作为此方法的参数,攻击者可接受错误路径中的套接字文件。(CVE-2018-8779) Dir.open、Dir.new、Dir.entries 和 Dir.empty? 接受目标目录的路径作为其参数。如果参数含有 NUL (\0) 字节,这些方法可辨识路径在 NUL 字节之前完成。因此,如果某个脚本接受外部输入作为这些方法的参数,攻击者可进行错误的目录遍历。(CVE-2018-8780)

解决方案

运行 'yum update ruby20' 以更新系统。运行 'yum update ruby22' 以更新系统。运行 'yum update ruby23' 以更新系统。运行 'yum update ruby24' 以更新系统。

另见

https://alas.aws.amazon.com/ALAS-2018-983.html

插件详情

严重性: Critical

ID: 108846

文件名: ala_ALAS-2018-983.nasl

版本: 1.4

类型: local

代理: unix

发布时间: 2018/4/6

最近更新时间: 2019/7/10

支持的传感器: Agentless Assessment, Frictionless Assessment Agent, Frictionless Assessment AWS, Nessus Agent, Nessus

风险信息

VPR

风险因素: Medium

分数: 6.7

CVSS v2

风险因素: High

基本分数: 7.5

矢量: CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P

CVSS v3

风险因素: Critical

基本分数: 9.8

矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

漏洞信息

CPE: p-cpe:/a:amazon:linux:ruby20, p-cpe:/a:amazon:linux:ruby20-debuginfo, p-cpe:/a:amazon:linux:ruby20-devel, p-cpe:/a:amazon:linux:ruby20-doc, p-cpe:/a:amazon:linux:ruby20-irb, p-cpe:/a:amazon:linux:ruby20-libs, p-cpe:/a:amazon:linux:ruby22, p-cpe:/a:amazon:linux:ruby22-debuginfo, p-cpe:/a:amazon:linux:ruby22-devel, p-cpe:/a:amazon:linux:ruby22-doc, p-cpe:/a:amazon:linux:ruby22-irb, p-cpe:/a:amazon:linux:ruby22-libs, p-cpe:/a:amazon:linux:ruby23, p-cpe:/a:amazon:linux:ruby23-debuginfo, p-cpe:/a:amazon:linux:ruby23-devel, p-cpe:/a:amazon:linux:ruby23-doc, p-cpe:/a:amazon:linux:ruby23-irb, p-cpe:/a:amazon:linux:ruby23-libs, p-cpe:/a:amazon:linux:ruby24, p-cpe:/a:amazon:linux:ruby24-debuginfo, p-cpe:/a:amazon:linux:ruby24-devel, p-cpe:/a:amazon:linux:ruby24-doc, p-cpe:/a:amazon:linux:ruby24-irb, p-cpe:/a:amazon:linux:ruby24-libs, p-cpe:/a:amazon:linux:rubygem20-bigdecimal, p-cpe:/a:amazon:linux:rubygem20-io-console, p-cpe:/a:amazon:linux:rubygem20-psych, p-cpe:/a:amazon:linux:rubygem22-bigdecimal, p-cpe:/a:amazon:linux:rubygem22-io-console, p-cpe:/a:amazon:linux:rubygem22-psych, p-cpe:/a:amazon:linux:rubygem23-bigdecimal, p-cpe:/a:amazon:linux:rubygem23-did_you_mean, p-cpe:/a:amazon:linux:rubygem23-io-console, p-cpe:/a:amazon:linux:rubygem23-json, p-cpe:/a:amazon:linux:rubygem23-psych, p-cpe:/a:amazon:linux:rubygem24-bigdecimal, p-cpe:/a:amazon:linux:rubygem24-did_you_mean, p-cpe:/a:amazon:linux:rubygem24-io-console, p-cpe:/a:amazon:linux:rubygem24-json, p-cpe:/a:amazon:linux:rubygem24-psych, p-cpe:/a:amazon:linux:rubygem24-xmlrpc, p-cpe:/a:amazon:linux:rubygems20, p-cpe:/a:amazon:linux:rubygems20-devel, p-cpe:/a:amazon:linux:rubygems22, p-cpe:/a:amazon:linux:rubygems22-devel, p-cpe:/a:amazon:linux:rubygems23, p-cpe:/a:amazon:linux:rubygems23-devel, p-cpe:/a:amazon:linux:rubygems24, p-cpe:/a:amazon:linux:rubygems24-devel, cpe:/o:amazon:linux

必需的 KB 项: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list

补丁发布日期: 2018/5/10

漏洞发布日期: 2017/12/20

参考资料信息

CVE: CVE-2017-17742, CVE-2017-17790, CVE-2018-1000073, CVE-2018-1000074, CVE-2018-1000075, CVE-2018-1000076, CVE-2018-1000077, CVE-2018-1000078, CVE-2018-1000079, CVE-2018-6914, CVE-2018-8777, CVE-2018-8778, CVE-2018-8779, CVE-2018-8780

ALAS: 2018-983