写点什么

OpenJDK Docker 镜像存在错误版本漏洞

  • 2019-06-25
  • 本文字数:1177 字

    阅读完需:约 4 分钟

OpenJDK Docker 镜像存在错误版本漏洞

OpenJDK 邮件列表在五月确认,OpenJDK的官方Docker镜像中包含错误标记版本号,这表明部分 JRE 应包含的安全补丁实际上并不存在。该问题已经通过 OpenJDK 和 Debian 间的跨社区协作得以解决


该“官方”版本是由 Docker 和其他方制作的,因为 OpenJDK 社区没有创建镜像或生成构建。在GitHub issue 320中,充分讨论了该镜像构建是由谁创建的、该“官方”镜像的意义、参与镜像的各方包括谁等问题。该 Docker 镜像已被下载超过一千万次。


问题的核心与构建开发层的检查时间和使用时间相关。该版本于 2019 年 3 月 27 日生成,并标记版本号为 8u212 和 11.0.3。其中的安全补丁直到 2019 年 4 月 16 日才发布。按 Azul 首席技术官 Gil Tene 的说法,“按一些人的说法,这些累积起来的’合理’选择最终导致数百万人在 Docker 上运行的默认 OpenJDK 事实上完全是块‘神秘之肉’(mystery meat),并不完整的、暴露的构建,虽然看起来似乎推荐的是 8u212 或 11.0.3 的一个 Java 版本”。Tene 最早在 OpenJDK 邮件列表上报告了这个问题。 “神秘之肉”(mystery meat)一词是指难以确定来源的标签项。该术语并不意味着内容不安全,只是表示它们不为人知。


InfoQ 与 jClarity 首席执行官兼伦敦 JUG 联合牵头人 Martijn Verburg 探讨了这个问题。这次混乱源自版本控制系统中最近引入的标签,其中添加了后缀“-ga”。该标签向 Debian 志愿者维护者等第三方标明了构建应何时提供 GA 版。该标记晚于各 JVM 供应商的“开放获取时滞期”(embargo period)之后应用,以确保以安全的方式将安全更新分发给所有 JVM 提供商。如果没有开放获取时滞期,那么黑客会定期反编译安全补丁,找出可攻击的位置,然后利用该工具包攻击尚未修补漏洞的版本。Debian 项目提供了超过 51,000 个 Linux 软件包,难以合理地参与每个项目去理解版本的复杂性。这包括 OpenJDK,其中“-ga”标记是 JDK 7 和 JDK 8 的新版本和以前版本之间跳过的数字。


Docker 镜像中的该版本号表明应该包含CVE-2019-2602CVE-2019-2684补丁,但实际并未包含。在镜像发布过程中,至少给出了六个应该加入Docker镜像的安全补丁。 版本不匹配可能会增加下游软件组合分析(Software Composition Analysis)工具的复杂性,这些分析工具根据版本分析软件的补丁情况。它们帮助组织识别哪里具有已知 CVE 的过期软件,以便组织做出适当的修补或降低风险。许多工具根据该版本号,错误地确定这些 JRE 不易受到攻击。由于许多 Java 供应商每季度发布一次安全补丁,因此开放获取时滞期可能会很短。例如,Oracle 计划下一次重要补丁更新将在 2019 年 7 月 16 日推出。那时,目前的 Java 版本号将被视为不安全,由新的安全基线取而代之。


该问题已由 Apache 软件基金会的 Emanuel Bourg 完成修复,并做了补救工作以防止其再次发生。


查看英文原文: OpenJDK Docker Image Served Mis-Labeled Vulnerable JDK


2019-06-25 08:006143
用户头像

发布了 391 篇内容, 共 134.1 次阅读, 收获喜欢 256 次。

关注

评论

发布
暂无评论
发现更多内容

2022秋招前端面试题(八)(附答案)

helloworld1024fd

如何快速打通镜像发布流程?

鲸品堂

镜像

语音直播系统——有没有必要开展代码优化

开源直播系统源码

软件开发 直播系统 语音聊天源码 语音直播系统

Kubernetes 企业如何落地

CTO技术共享

开源 签约计划第三季 8月月更

Java 多行字符串

HoneyMoose

Discourse 的关闭主题(Close Topic )和重新开放主题

HoneyMoose

Java基础 | Stream流原理与用法总结

Java 架构

mysql进阶(三十一)常用命令汇总

No Silver Bullet

MySQL 常用命令 8月月更

中断系统结构及中断控制详解

timerring

8月月更

Edge 提供了标签分组功能

HoneyMoose

绝了,这套RESTful API接口设计总结

知识浅谈

8月月更

2022秋招前端面试题(七)(附答案)

helloworld1024fd

微服务架构的核心关键点

阿泽🧸

微服务架构 8月月更

Kubernetes 资源核心原理

CTO技术共享

开源 签约计划第三季 8月月更

MySQL 原理与优化,Group By 优化 技巧

老崔说架构

用Java扩展Nginx(nginx-clojure入门实战)

程序员欣宸

Java nginx 签约计划第三季

【LeetCode】逐步求和得到正数的最小值Java题解

Albert

LeetCode 8月月更

Kubernetes 实现 CI/CD 发布流程

CTO技术共享

开源 CI/CD 签约计划第三季 8月月更

springboot应用查询城市天气

程序员欣宸

Java spring-boot 8月月更

数据治理(四):数据仓库数据质量管理

Lansonli

大数据 数据治理 8月月更

C++运算符重载之加号运算符重载

CtrlX

c c++ 后端 运算符 8月月更

每日一R「01」跟着大佬学 Rust

Samson

8月月更

Kubernetes web网站无法访问

CTO技术共享

开源 签约计划第三季 8月月更

《MySQL入门很轻松》第3章:数据库的创建与操作

乌龟哥哥

8月月更

OpenMLDB + Jupyter Notebook:快速搭建机器学习应用

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征工程

程序员为什么一定要用Linux?

TimeFriends

8月月更

Sass.vs.Less | 简介之基础语法

Jason199

SASS 8月月更

RocketMQ 详解系列

牧小农

RocketMQ

STM32F103实现IAP在线升级应用程序

DS小龙哥

8月月更

electron 应用开发优秀实践

vivo互联网技术

前端 Web Electron 桌面开发

Kubernetes与OpenStack

CTO技术共享

开源 OpenStack 签约计划第三季 8月月更

OpenJDK Docker 镜像存在错误版本漏洞_软件工程_Erik Costlow_InfoQ精选文章