之前Node.js基金会曾承诺将修复两个危险漏洞,并更新所有长期维护和稳定的Node.js分支。上周补丁已经发布并预计在本周发布更新,但为了包含最新的OpenSSL版本,基金会决定推迟更新,这是因为OpenSSL中的漏洞也影响了Node.js。

\\

上述提到的漏洞分别为拒绝服务漏洞(CVE-2015-8027)和内存越界访问漏洞(CVE-2015-6764)。

\\

拒绝服务漏洞影响了从 v0.12.x 至 v5.x 的所有Node.js版本。将其标记为危险漏洞是因为外部恶意攻击者可以通过此漏洞关闭运行在指定系统的Node.js服务。在一定的条件下,HTTP SOCKET可能无法获取到与之相关的解析器,但一个流水线请求可能会在没有解析器的情况下触发暂停或者恢复操作,这将会抛出uncaughtException。对外提供HTTP服务的被影响用户应该尽快升级到已修复版本,具体为:Node.js 0.12.x 应升级至 Node.js 0.12.9 (LTS);Node.js 4.x 包括 LTS Argon 应升级至 Node.js 4.2.3 Argon (LTS);Node.js 5.x 应升级至 Node.js 5.1.1 (Stable)。

\\

访问越界漏洞被发现于V8引擎的JSON.stringify()实现中,json-stringifier.h的函数BasicJsonStringifier::SerializeJSArray未正确加载数组元素,远程攻击者通过构造的JS代码,利用此漏洞可造成拒绝服务(越界内存访问)。。这个问题被Google Chrome归类为非常严重的漏洞并在本周Chrome稳定版的升级中被修复。该漏洞对于Node.js用户来说风险较低,因为只有第三方的特定JavaScript代码在应用中被执行才会触发。只有对外提供服务且可能执行不信任的JavaScript代码的用户会有风险,但所有用户都应进行升级,具体为:Node.js 4.x 包括 LTS Argon 应升级至 Node.js 4.2.3 Argon (LTS);Node.js 5.x 应升级至 Node.js 5.1.1 (Stable)。

\\

OpenSSL中的漏洞也会影响Node.js。尽管Node.js 0.10.x 没有被上述问题影响,但由于它依赖于OpenSSL v1.0.1,而OpenSSL v1.0.1 和 1.0.2(CVE-2015-3194)可能在证书检查过程中被提供了使用RSA PSS算法生成的存在缺陷的 ASN.1 签名而导致崩溃,攻击者可以利用该缺陷使用客户端授权进行拒绝服务攻击Node.js服务器,所以还是需要升级。Node.js 4.x LTS 5.x 同样受到了OpenSSL 1.0.2中Montgomery平方过程中的错误的影响,针对RSA和DSA进行攻击是有可能的,尽管非常困难。

\\

Node.js基金会拥有最流行的JavaScript服务器平台的管辖权。而OpenSSL则完全是一个独立的项目,由自己的团队维护。Heatbleed事件已经表明,OpenSSL被广泛用于各种应用,所以更新OpenSSL通常会引起各种连锁反映,这就是为什么OpenSSL步伐缓慢,Node.js基金会不得不等待,推迟更新。如果基金会不等待按照计划发布了更新,几天后再同修复的OpenSSL发布新的版本,这将造成更多混乱,例如一些开发者可能错过第二次更新的提示,或者将意识不到过期的OpenSSL的影响。

\\

许多开发人员甚至都不知道他们应用中的所有组件,他们不知道调用了哪些libraries,更别说这些被调用的libraries可能依赖了其他libraries,这导致了当项目中出现了有漏洞的代码的时候很难通知他们。开源代码是普遍紧密联系着的,任何依赖关系树中的代码出现问题都可能有着深远而广泛的影响。

\\


感谢魏星对本文的审校。

\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群(已满),InfoQ读者交流群(#2))。

Node.js因为OpenSSL安全问题推迟更新相关推荐

  1. Node.js ORM 框架 Sequelize 重要更新 v5 发布

    Node.js ORM 框架 Sequelize v5 已正式发布,这也是 v4 推出一年多后的主要版本. Sequelize 是一个基于 promise 的 Node.js ORM,目前支持 Pos ...

  2. Node.js零基础自学(持续更新中)

    1. Node.js时基于Chrome V8 引擎的JavaScript运行环境.官网:Node.jsNode.js® is a JavaScript runtime built on Chrome' ...

  3. node.js中mysql批量插入更新的三种方法

    [背景]在项目中遇到一个批量插入数据的需求,由于之前写过的sql语句都是插入一个对象一条数据,于是去网上搜关键词 "sql批量插入"."mysql批量插入"等, ...

  4. 如何更新Node.js?

    本文翻译自:How do I update Node.js? This post is a Community Wiki . 这篇文章是社区维基 . Edit existing answers to ...

  5. Node.JS的魔力与神话

    In May 2020, Node.JS turned 11 years old. 2020年5月,Node.JS才11岁. Since its inception, this programming ...

  6. Node.js TLS/SSL

    Stability: 3 - Stable 可以使用 require('tls') 来访问这个模块. tls 模块 使用 OpenSSL 来提供传输层(Transport Layer)安全性和(或)安 ...

  7. node.js升级和降低版本

     开门见山地说,我们在开发的过程中,随着时间的推移和新框架的层出不穷,我们使用的node.js会因为一直没有更新,导致无法使用最新的一些框架等问题,这个时候我们就需要升级我们的node版本,下文讲详细 ...

  8. node 更新_被创造者嫌弃,Node.js 如何应对来自 Deno 的挑战

    (给前端大全加星标,提升前端技能) 转自:OSC开源社区 JavaScript 运行时 Node.js 于日前更新到了 15 版本,该软件自发布至今已走过了 11 年的岁月.但在今年 5  月,其竞争 ...

  9. node.js更新升级(Mac与Windows)- 总结篇

    node.js升级更新(Mac与Windows对比)- 重要的提醒说一遍 windows用户 · 请注意: node.js不支持Windows系统中使用 n 命令 更新: 所以,windows下只有覆 ...

  10. node 更新_ESLint v7.0.0 发布:不再支持 Node.js v8

    作者 | 李俊辰 近日,ESLint 的主要升级版本 ESLint v7.0.0 正式发布.此次更新除了修复已知 bug 和增强特性外,还增加了一些新特性以及 bugfix.官方更新文档中提及,由于 ...

最新文章

  1. Android :landscape||portrait 切换
  2. 《Sibelius 脚本程序设计》连载(四十七) - 4.17 BracketsAndBraces 与 Bracket
  3. 网络运维基础之IP地址学习
  4. “腾讯看点”打响信息流的全面战争
  5. VMware通过vmdk文件创建虚拟机
  6. Lettuce替换Jedis操作Redis缓存
  7. python是什么意思啊-星号*在Python中是什么意思?
  8. 2015第一弹:调试自己,挖掘自己的最强手艺
  9. 深聊性能测试,从入门到放弃之:如何对IO进行性能调优
  10. Springboot启动提示:com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILAB
  11. Istio Egress Gateway出口流量管理
  12. ❤️数据可视化❤️:基于Echarts + GeoJson实现的地图视觉映射散点(气泡)组件【10】 - 黑龙江省
  13. 什么是阿尔法(Alpha)收益、贝塔(Beta)收益
  14. 跟网络游戏,手机APP游戏告别
  15. tf15: 中文语音识别
  16. 雷达人体存在感应器成品,广泛应用于感应灯控制,实时精准感知方案
  17. 生物信息学简介 -整理综合
  18. 地图坐标格式转换工具
  19. 【工程师有空了】安信可ESP32之TOUCH触摸传感器的花式应用--一个IO识别多个触摸按键
  20. 复旦大学黄萱菁:自然语言处理中的表示学习

热门文章

  1. 【python简洁之道】-----2.导入模块顺序(规范/风格)
  2. Pytorch——循环神经网络层、损失函数、优化器
  3. PostgreSQL(1)数据库安装(win和linux)
  4. linux源码安装php,nginx配置php
  5. MySQL创建视图的语法格式,MySQL如何创建视图
  6. 刀塔霸业android如何更新_战斗麻将!V社自走棋《刀塔霸业》APP端上线了
  7. c语言鸡蛙问题用while,C语言第3章课件.ppt
  8. java 默认为空的注解,错误注解的字段设置一个默认的空值
  9. python单链表实现荷兰国旗问题_[算法题] 荷兰国旗问题
  10. jquery上传 php,jQuery AJAX文件上传PHP