Electron 惊现十级漏洞!到底是谁的锅?

Electron 安全性最佳实践:防范常见漏洞 在 Electron 框架的开发生态中,安全性最佳实践是防范常见漏洞的核心保障。它不仅仅是一系列技术措施,更是 Electron 应用从概念到部署的防护盾牌。想象一下,一个广泛使用的桌面应用如一个企业级文件管理器或在线协作工具,它处理敏感数据、加载用户内容,并在多平台运行。如果安全性漏洞未得到有效防范,应用将面临 XSS(跨站脚本攻击)、RCE(远程代码执行)或数据泄露的风险,导致用户隐私受损和信任崩塌。Electron 的安全模型通过上下文隔离、节点集成禁用、webSecurity 和 sandbox 等 阅读详情

最近开源软件又爆出一个十级漏洞,该漏洞冲击范围巨大,涉及数百万不同的应用程序,其中也包括 iOS、Android 应用程序以及使用 Electron 构建的跨平台应用程序。

这个漏洞两周前就已经被苹果和谷歌发现,但苹果和谷歌在披露漏洞时缺乏关键信息,造成了“巨大的盲点”,导致全球范围内其他开发者提供的大量应用程序未能得到修补,这些应用程序可能一直处于攻击危险之中。

1 | 为什么会产生“巨大的盲点”

两周前,苹果报告称,威胁行为者正在积极利用 iOS 中的一个关键漏洞(编号为 CVE-2023-41064),以便安装世界上已知的最先进的恶意软件之一“飞马”(Pegasus)间谍软件。这些攻击使用了零点击的漏洞利用方法,也就是说攻击者不需要与目标进行任何交互,只要接收到 iPhone 上的来电或短信,就足以被“飞马”感染。

四天后,谷歌报告称, Chrome 浏览器中存在一个关键漏洞。谷歌表示,该漏洞被指定为 CVE-2023-4863,由苹果安全工程和架构团队以及公民实验室报告。披露中列出的受影响供应商为“谷歌”,受影响软件则为“Chrome”,而且该漏洞已经出现在野利用。谷歌和 Mozilla 马上紧急修复了各自浏览器(分别是 Chrome 和 Firefox)中的漏洞。

图片

实际上,从谷歌的信息中,可以看出该漏洞源自谷歌于 2010 年开发的 libWebp 代码库,用于以 Webp 格式渲染图像。Webp 是当时的一种新兴格式,能够让文件体积比 PNG 图像再降低 26%。libwebp 几乎被整合进各种应用、操作系统及其他渲染 Webp 图像的代码库当中,其中最知名的当数 Chrome 中使用的 Electron 框架,以及在桌面和移动设备上运行的各类应用产品。

本周一,谷歌悄悄重新提交了一项关于影响众多独立应用和软件框架的关键代码执行漏洞信息,以纠正此威胁只会影响到 Chrome 浏览器的错误印象。这份新的披露信息,编号为 CVE-2023-5129。新条目正确为 libwebp 列出了受影响的供应商和软件类别,还将漏洞的严重等级从 8.8 分(满分 10 分)提高到 10 分。

图片

安全公司 Rezillion 的研究人员认为苹果和谷歌的产品漏洞源自同一个基础漏洞,但苹果、谷歌并没有相互协调、准确报告漏洞的共同来源,反而都选择使用单独的 CVE 漏洞编号。这样一来,那些开发者用来追踪其产品中已知漏洞的自动化系统将很难检测到正在被利用的关键漏洞。

Rezillion 研究人员 Ofri Ouzan 和 Yotam Perkal 写道:“由于该漏洞的影响范围包括带漏洞依赖项的软件产品,只有这些软件产品的漏洞扫描器才能识别出漏洞。那些盲目依赖漏洞扫描结果的组织将面对一个巨大的盲点。”

谷歌提交的第一条不完整 CVE 绝不是单纯的技术失误,导致在漏洞曝光两周多之后,不少软件仍未进行修复。其中最典型的例子就是 Microsoft Teams。

谷歌在新提交的漏洞描述中补充了更多细节。之前提交中的描述是:

116.0.5845.176 版本之前的谷歌 Chrome 中,Webp 的堆缓冲区溢出漏洞允许远程攻击者在精心设计的 HTML 页面中执行越界内存写入。(Chromium 安全严重度:严重)

现在新的描述调整为:

使用特定 Webp 无损格式文件,libwebp 可能将数据越界写入堆。ReadHuffmanCodes() 函数在分配 HuffmanCode 缓冲区时,其大小来自预先计算出的 size 数组:kTableSize。color_cache_bits 值的定义需要使用此 size。kTableSize 数组仅考虑到 8-bit 一级表查找,但未考虑到二级表查找的 size。而 libwebp 最多只允许 15-bit(MAX_ALLOWED_CODE_LENGTH) 的代码大小。因此当 BuildHuffmanTable() 尝试填充二级表时,可能会写入越界数据。对尺寸不足数组的越界写入发生在 ReplicateValue 当中。

无论是按 CVE-2023-4863 还是 CVE-2023-5129 的表述来看,libwebp 的这项漏洞都相当严重。因此在使用 App 之前,用户应确保对应的 Electron 版本已经升级为 v22.3.24、v24.8.3 或者 v25.8.1。

2 | 看似无害的工具,却造成了惊人的影响和冲击范围

2010 年谷歌无意间留下的这个 bug,很可能是引发本次 iOS 零日漏洞的根本原因,并跨越 13 年精确击中了 iPhone 14。

Webp 是谷歌开发的一种开源图像格式(与其他公司共享),跟 jpeg 和 png 属于同一类选手,负责提供一种新的图像压缩方法。这样文件体积更小巧,还原度也更高。没错,大家在看小尺寸 jepg 文件时,是不是经常遇到“色素块”一样的压缩痕迹?Webp 格式就是为了解决这个问题而生。

图片

Jpeg 与 Webp 文件大小对比。

因为这种格式既实用又有谷歌大佬的强力助推,Webp 自然就流行了起来。过去 12 年间,Android 和 Chrome 都默认捆绑 Webp,2 年前开始 Mac/iOS/Safari 也将其纳入自身,更不用说其他各种浏览器了。感兴趣的朋友可以参考这里的支持浏览器完整列表(https://caniuse.com/webp)。

简单讲,Webp 库中的一个 bug 似乎会导致图像解码过程时发生堆缓冲区溢出。就是说,黑客可以向目标 iPhone 发送短信,借此实现设备入侵。对,你没有看错,黑客可以向受害者发送特制的图像来访问对方 iPhone。该图像在被接收后会由 iPhone 中捆绑的 Webp 解码器负责处理,这样黑客就能在 iPhone 上执行命令,且无需用户交互或者许可。

在安全社区中,这类问题被称为零日(0-day)漏洞,即“攻击者先于厂商所发现的软件漏洞”。而这次的 bug,存在大概有 4 到 10 年了吧。而且之所以闹这么大,就是因为 Webp 目前存在于全球数十亿台设备之上。

有很多应用程序使用 libwebp 来渲染 WebP 图像,包括 LibreOffice、Telegram、ffmpeg 以及许多许多 Android 应用程序以及使用 Flutter 构建的跨平台应用程序。

还有基于 Electron 的应用程序,根据维基百科上编制的列表,包括了 1Password、Discord、Eclipse Theia、GitHub Desktop、Microsoft Teams、MongoDB Compass、Notion、QQ (for macOS)、Signal、Skype、Visual Studio Code 等等。

主流浏览器、Linux 操作系统以及大量开源软件均包含 libwebp 库。

图片

该图表中提到的每个产品(以及许多其他产品)都发现自己在某种程度上受到 libwebp 中的此漏洞的影响,但该漏洞的定义 CVE 是由 Google Chrome CNA 作为 Chrome 漏洞发布的,而不是针对任一上游来源。有无数的应用程序使用 Electron、Chromium 或 libwebp,它们都受到此漏洞的影响,而 CVE 则与 Chrome 相关。

当谈论这个 CVE 时,它可能指的是 Chrome、Chrome 的上游,或者上游组件下游的事物。如果问你是否已经修补了这个漏洞,你能给出一个自信的答案吗?随着 Electron 的大规模扩散,可能有许多应用程序受到影响,而你甚至可能不知道究竟哪些受到影响。

但在之前提交的 CVE 中,谷歌并未提及将有众多 App 受此影响。

目前,Electron 修补了该漏洞(https://github.com/electron/electron/pull/39828)。

图片

1Password for Mac 已发布更新来解决该问题。Telegram Desktop 进行了更新,并且 Ubuntu、Debian、SUSE 和其他 Linux 平台也在积极更新其 libwebp 版本。

图片

 Android 受不受影响?

Ben Hawkes 曾经在 Google 担任零号项目的经理,他写了一篇关于他对此 CVE 的想法的完整文章(https://blog.isosceles.com/the-webp-0day/)。

Ben 确认 Android 100% 受此影响。“与 Apple 的 ImageIO 类似,Android 有一个名为 BitmapFactory 的工具来处理图像解码,当然也支持 libwebp。截至今天,Android 尚未发布包含 CVE-2023-4863 修复程序的安全公告。”

Android 保护措施能解决这次的问题吗?目前还不清楚,目前事情还在发酵当中。谷歌已经发布了 Webp 更新,可能会通过下个月的 Android 定期补丁推出。到时候参考发行说明,我们才能知道 Android 媒体强化有没有缓解影响,或者说在 iOS 端带来可靠的保护效果。

现在,我们能做的就是更新所有软件。从现在开始,认真检查自动更新有没有开启。苹果已经发布了 Mac 和 iOS 端的重要更新,Chrome 也是一样。预计后续会有更多供应商快速跟进。

身为应用开发者,如果你的应用允许用户生成图像,那请考虑提供更新的 Webp 库版本,并用它来解码用户提交的内容。这样就能主动为用户提供保护,无需等待 Android 平台的整体更新(特别是能保护那些版本太旧、已经停止更新的 Android 设备用户)。

要使用特定版本,大家可以从源代码进行编译(建议包含最新修复),或在这里找到你的目标库:https://developers.google.com/speed/webp/docs/precompiled.

如果你的应用不允许用户生成内容,那就完全无需担心。只要你的应用资产是“安全”的 Webp 文件(即未受恶意篡改的文件),就不会对用户造成任何损害。

参考链接:

https://arstechnica.com/security/2023/09/incomplete-disclosures-by-apple-and-google-create-huge-blindspot-for-0-day-hunters/

https://mp.weixin.qq.com/s/8_7bd_ovF6DSNDVJOSAjjQ

https://arstechnica.com/security/2023/09/google-quietly-corrects-previously-submitted-disclosure-for-critical-webp-0-day/

https://blog.isosceles.com/the-webp-0day/https://medium.com/@shmuelr/my-thoughts-on-the-webp-exploit-98c2e024929f

https://stackdiary.com/critical-vulnerability-in-webp-codec-cve-2023-4863/

https://adamcaudill.com/2023/09/14/whose-cve-is-it-anyway/

新的 Electron Flaw 漏洞允许 Signal、1Password 和 Slack 被植入后门 该漏洞允许攻击者绕过代码完整性检查并对应用程序进行后门攻击。 阅读详情

相关推荐

从XSS到RCE:Electron应用安全漏洞链实战分析与加固

跨站脚本攻击(XSS)和远程代码执行(RCE)是Web安全领域的核心威胁。XSS允许攻击者在受害者浏览器中注入恶意脚本,而RCE则使攻击者能在目标系统上执行任意代码,危害极大。在基于Web技术的桌面应用如Electron中,这两类漏洞常形成攻击链,XSS成为进入渲染进程的跳板,进而利用Node.js集成或IPC通信实现RCE,最终完全控制系统。本文通过一个真实案例,剖析了从存储型XSS到命令注入的完整漏洞链,并深入探讨了Electron安全架构中的关键风险点,如上下文隔离配置、预加载脚本的API暴露以及主进

congran6617的博客 445

Electron WebPreferences 远程命令执行漏洞(CVE-2018-15685)

漏洞背景 GitHub Electron是美国GitHub公司的一个应用程序开发框架。该框架支持使用JavaScript、HTML和CSS编写跨平台桌面应用程序。 GitHub Electron中存在安全漏洞。远程攻击者可利用该漏洞执行代码。以下版本受到影响:GitHub Electron 1.7.15版本,1.8.7版本,2.0.7版本,3.0.0-beta.6版本。 Electron在设置了nodeIntegration=false的情况下(默认),页面中的JavaScript无法访问node.js的内

EC_Carrot的博客 1559

Electron打包工具对比

在 Electron 生态中,打包工具的选择直接影响开发效率、配置复杂度和最终应用的性能。

Mamba的博客 4052

ElasticSearch 目录穿越漏洞(CVE-2015-3337)

声明 好好学习,天天向上 漏洞描述 在安装了具有“site”功能的插件以后,插件目录使用…/即可向上跳转,导致目录穿越漏洞,可读取任意文件。没有安装任意插件的elasticsearch不受影响。 影响范围 1.4.5以下/1.5.2以下 复现过程 这里使用v1.4.4版本 使用vulhub cd /app/vulhub-master/elasticsearch/CVE-2015-3337 使用docker启动 docker-compose up -d 环境启动后,访问http://your-ip:920

黑白的博客 2924

Electron 惊现十级漏洞,到底谁的锅?

无论是按 CVE-2023-4863 还是 CVE-2023-5129 的表述来看,libwebp 的这项漏洞都相当严重。因此在使用 App 之前,用户应确保对应的 Electron 版本已经升级为 v22.3.24、v24.8.3 或者 v25.8.1。

xiangzhihong8的专栏 434

基于stm32f407VGT6控制WS2812的TIM1+PWM+DMA实现方式

项目中使用到了ws2812灯带,作为产品的外观显示灯,经过开发之后,整理一下,仅供大家参考。 WS2812B是一个集控制电路与发光电路于一体的智能外控LED光源。 其外型与一个5050 LED灯珠相同, 每个元件即为一个像素点。 像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路, 还包含有高精度的内部振荡器和可编程定电流控制部分, 有效保证了像素点光的颜色高度一致。数据协议采用单线归零码的通讯方式, 像素点在上电复位以后, DIN端接受从控制器传输过来的数据, 首先送过来的24bit数据被第一个像素

weixin_43608153的博客 9214

clipboard.js的初步用法-将网页文本复制到剪贴板

简单讲一下单个选择器下的复制和多个选择器下的复制,文件不到4kb,文末下载。 单个选择器下的复制 1.首先引入你下载的clipboard.min.js文件 <script src="https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js"></script> 2.举个例子,你要复制的...

滴水石穿 818

【C++】lambda表达式

本篇文章我们要学习的是lambda表达式,它是C++11新增的一种特别方便的语法,相较于之前的函数指针以及仿函数都方便了不少,下面就让我们一起来学习吧。

malloc不出对象的博客 2630

Electron攻击面分析

无

顶峰 759

【新手流程】1小时解决Anaconda+Cuda+Cudnn+Pytorch+Pycharm深度学习环境配置

一小时速通Anaconda+Cuda+Cudnn+Pytorch+Pycharm环境配置

m0_57190453的博客 4087

一个超酷的开源uHand2.0机械手掌项目

uHand2.0是深圳乐幻索尔公司开源的一款机械手掌,它长下面这个样子:1、uHand2.0外观图之前在公众号就分享过视频:学习嵌入式可以带娃,不信你们看2、uHand2.0硬件原理图看...

Bruce.yang的嵌入式之旅 4460

ClipboardJS 的最大 Bug

问题描述 今天在 OJ 网站上增加了拷贝功能。开始的时候使用的是 JavaScript 原生的功能。对应的 JavaScript 代码如下: function copyDivToClipboard(containerid) { if (window.getSelection) { if (window.getSelection().empty) { // Chrome window.getSelection().empty(); } else

努力中的老周的专栏 947

黑猫带你学UFS协议第8篇:UFS电气特性详解(Power、CLK、Reset等)

UFS强制支持secure mode。UFS设备可能会存储个人或者公司的信息,UFS提供把数据永久从设备上移除的功能,并且保证对存储介质进行逆向恢复数据也恢复不回来原有数据。安全模式是以逻辑单元为单位进行应用的,不同的逻辑单元可以有不同的安全模式。由于UFS设备的存储介质不同,所以把数据安全从存储介质上移除方式会有不同,spec提供了三种通用的移除方法,UFS设备至少支持其中一种。● 对存储的位置进行一次擦除操作。● 对存储的位置使用单一字符(比如0xAA)覆盖写,然后进行擦除。.........

黑猫奥利奥的博客 4076

XSSTRON终极指南:如何快速发现网站XSS漏洞的Electron浏览器工具

XSSTRON是一款基于Electron JS开发的浏览器工具,专为自动发现网站XSS漏洞设计。本指南将帮助你快速掌握这款强大工具的使用方法,轻松提升Web安全测试效率。 ## 📋 什么是XSS漏洞? 跨站脚本(XSS)是一种常见的Web安全漏洞,攻击者通过注入恶意脚本,在用户浏览器中执行非预期操作。XSSTRON通过自动化检测流程,帮助开发者和安全测试人员在开发阶段就能发现并修复这类漏洞。

gitblog_01076的博客 927

RK3588+YT9215快速拓展以太网口

YT9215支持7个端口的非阻塞数据传输,确保高效的数据流处理;在开发过程中,最重要的一点就是YT9215与RK3588的GMAC连接和配置部分,下面是gmac1对应dtsi文件的修改,包括注释掉rgmii_phy1对应的mdio1,以及gmac1对应的phy-handle部分,同时将gmac1修改成1000Mbps全双工模式。这就是最简单,最快速的RK3588拓展网口的方法了,如果需要用到交换芯片的其他功能,那就不可以直接使用原厂提供的bin,而是需要对YT9215进行另外的驱动开发。

带着耳朵取流浪的博客 2793

地平线旭日X3 安装xfce桌面+VNC查看USB摄像头

VNC是Virtual Network Computing的缩写,它是一种使用RFB(Remote Frame Buffer)协议的用于控制远程电脑的图形桌面分享系统。xfce桌面相比于GNOME桌面更加轻量,占用的资源更少,在没有GPU的设备上也可以运行(旭日的Desktop版本从外观上好像就是xfce桌面,具体没有尝试)。可以使用专用的VNC客户端连接到开发板,例如vnc viewer。板子默认带有openssh-server,因此,WiFi热点连接成功后,就可以使用ssh登录开发板了。

bingdund的博客 509

XSSTRON实战案例:从零开始使用Electron浏览器发现真实XSS漏洞

XSSTRON是一款基于Electron JS开发的浏览器工具,能够自动发现XSS漏洞,为安全测试人员和开发者提供了便捷的漏洞检测解决方案。本文将详细介绍如何从零开始使用XSSTRON,通过实际案例展示其在发现真实XSS漏洞过程中的应用。 ## 一、准备工作:快速搭建XSSTRON环境 要使用XSSTRON进行XSS漏洞检测,首先需要完成环境搭建。以下是具体的安装步骤: 1. **安装Nod

gitblog_00423的博客 740

YOLO11全网首发优化:卷积魔改创新 | AAAI 2025 | 一种新颖的风车形卷积(PConv)符合微弱小目标的像素高斯空间分布,增强特征提取,显著增加接受野

我们提出了一种新颖的风车形卷积(PConv)作为骨干网络下层标准卷积的替代品。PConv能更好地符合微弱小目标的像素高斯空间分布,增强特征提取,显著增加接受野,且只引入最小的参数增加。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1973

Electron应用安全:从XSS到RCE的漏洞原理与防御实战

跨站脚本攻击是Web应用常见的安全威胁,其原理在于攻击者能够向网页中注入恶意脚本,从而窃取用户数据或执行未授权操作。在桌面应用开发领域,Electron框架因其使用Web技术构建跨平台应用而广受欢迎,但其独特架构也引入了新的安全考量。Electron应用由主进程和渲染进程组成,其中渲染进程默认运行在沙箱环境中,但通过nodeIntegration和contextIsolation等关键配置,可以控制其访问Node.js环境的能力。当这些安全配置不当,例如将contextIsolation设置为false时,

weixin_34280237的博客 392

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Electron应用安全:从XSS到RCE的漏洞链分析与防御实践

跨站脚本(XSS)是一种常见的Web安全漏洞,攻击者通过注入恶意脚本,可在用户浏览器中执行非授权操作。其原理在于Web应用对用户输入未充分过滤,导致脚本在渲染时被执行。在传统Web环境中,XSS通常用于窃取会话信息或进行钓鱼攻击,危害相对受限。然而,当XSS与特定应用架构结合时,其技术价值与危害性将发生质变。例如,在基于Electron框架开发的桌面应用中,由于融合了Chromium渲染引擎与Node.js运行时,若安全配置不当,渲染器进程可能具备Node.js环境访问权限。此时,一个前端XSS漏洞便可能成

weixin_33720078的博客 276

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

electron系列4之安全白皮书:你不能忽视的8个漏洞

electron系列和安全有关的内容,后面会有实际在vue和react中使用的教程

浩星 429

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

CVE-2018-1000136:Electron nodeIntegration绕过漏洞

1周前,研究人员发现一个影响Electron所有版本的漏洞,利用该漏洞可以开启nodeIntegration,这可能会造成远程代码执行。Electron是一个使用JavaScript,HTML和CSS等Web技术创建原生程序的框架,它负责比较难搞的部分,而用户只需把精力放在应用的核心上即可。Slack、Discord、Signal、Atom、Visual...

weixin_33842304的博客 1273

Electron审计入门知识铺垫

前言 最近被 XMind 2020 XSS 导致远程代码执行的漏洞所吸引,复现过程比较简单,于是想研究一下漏洞造成的原因,因为 XMind 属于 electorn 应用,应用了很多 Web 前端技术,然后就发现自己什么也看不懂。所以后面收集了很多知识,构成了这篇文章,相信看完这篇文章后,大家会对 electorn 审计会有大概的思路。 Electron的安全策略 nodeIntegration nodeIntegration 是用来隔离不受信任的资源,如来自不受信任的远程服务器的代码在本地被执行,将会造成安

jelly 1574

【待补漏洞】Electron 报错 Uncaught ReferenceError: require is not defined

使用ipcRenderer渲染时 const electron = require(‘electron’);报错如下 解决办法: 在 addWindow = new BrowserWindow({ ...... webPreferences: { //在这里添加 nodeIntegration: false, // 改为true 即可 contextIsolation:false

sxy258的博客 1215

electron 下载依赖 npm i 报 ‘found 1 high severity vulnerability’漏洞提示解决方法及过程

在尝试打包electron项目运行npx electron-forge import后,卡在了Installing dependencies下载依赖这一步,直接instal Failed to install modules: ["electron-squirrel-startup"] 感觉像是下载依赖失败了,然后中断后进行npm i把对应的下载全部的模块。 npm i 虽然是成功运行了但是又出现了安全漏洞错误 found 1 high severity vulnerability run `npm au

weixin_42351895的博客 9203
上一篇: Z-library官网终于免翻了!
下一篇: 不愧是腾讯天美,面的贼细!
IT界那些事儿
博客等级 码龄6年 2万+粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值