news 2026/6/9 11:41:42

前端最近不太平啊!Storybook 再曝严重漏洞:你的密钥、数据库密码可能已经在“裸奔”了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
前端最近不太平啊!Storybook 再曝严重漏洞:你的密钥、数据库密码可能已经在“裸奔”了

前脚 React 刚被曝出严重的安全漏洞 毁灭吧!React又爆两大漏洞,请(再次)速查!,让大家忙着升级补丁;后脚作为前端组件开发神器的Storybook又传来“噩耗”。

就在几天前,Storybook 官方发布了一则紧急安全公告:在特定配置下,你的 Storybook 构建产物可能会直接将.env文件中的所有环境变量(包括敏感密钥)打包进去,并公之于众。

这可不是危言耸听,如果你的项目正以此方式部署在公网上,你的 API Key、数据库密码可能已经在“裸奔”了。

发生了什么?

事情的起因是 Storybook 在处理环境变量时存在一个 Bug(CVE-2025-68429)。

简单来说,当你在项目中使用 Storybook 7.0 及以上版本,并且在构建(Build)过程中使用了.env文件来管理环境变量时,Storybook 的某些机制可能会错误地将整个 .env 文件的内容包含在最终生成的静态文件中。

这意味着,任何人只要访问你部署好的 Storybook 页面,通过查看源码或者网络请求,就有可能获取到你原本只想在本地或构建阶段使用的私密信息。

谁是受害者?(请立刻自查)

并不是所有使用 Storybook 的人都会中招。根据官方公告,只有同时满足以下条件的项目才会受影响:

  1. 版本范围:使用的是 Storybook7.0.0及以上版本。

  2. 构建环境:在包含.env文件(包括.env.local等变体)的目录中运行了storybook build

  3. 代码模式:你的代码(包括manager.js/ts或使用的插件)中包含特定的process.env访问模式,例如:

  • 解构赋值:const { MY_SECRET } = process.env

  • 对象展开:{ ...process.env }

  • 直接赋值:const env = process.env

  • 公网发布:你将构建好的静态 Storybook 发布到了公网上。

  • 注意:如果是 CI/CD 环境(通常通过平台环境变量而非.env文件注入),或者仅在本地运行storybook dev,通常是不受影响的。

    但是,值得警惕的是,官方审计发现,Top 100 的 Storybook 插件中,有几个常用插件的代码模式会触发这个漏洞,其中包括:

    • @chromatic-com/storybook(Visual Tests addon)

    • @storybook/addon-designs

    这意味着,即使你自己的代码写得很小心,你引入的插件也可能把你“卖”了。

    如何自救?

    官方已经发布了紧急补丁。解决办法非常简单粗暴:升级!立刻升级!

    请确保你的 Storybook 版本不低于以下安全版本:

    • v10.x用户:升级到10.1.10+

    • v9.x用户:升级到9.1.17+

    • v8.x用户:升级到8.6.15+

    • v7.x用户:升级到7.6.21+

    在升级并重新构建发布之前,建议先轮换(Rotate)掉所有可能已泄露的密钥。安全无小事,不要抱有侥幸心理。

    这次事件再次给我们敲响了警钟。

    在现代前端开发中,我们习惯了使用 Webpack、Vite、Storybook 等各种工具。我们往.env里塞各种配置,以为它是安全的“后端”领域。但实际上,前端构建工具的最终产物是完全公开的静态资源

    任何试图混淆“构建时环境变量”与“运行时环境变量”边界的行为,都可能埋下雷。

    对于.env文件,最好的实践永远是:不要在.env文件中存放任何真正的生产环境机密(Secrets),除非你明确知道它们会被如何处理。对于必须使用的密钥,尽量通过 CI/CD 平台的 Variables 功能注入,而不是依赖提交到仓库或本地残留的文件。

    参考来源:Storybook Security Advisory: https://storybook.js.org/blog/security-advisory/*

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/21 0:09:35

12月确认2026专项附加扣除与 明年3月个税汇算,到底啥区别?

12月确认2026专项附加扣除与 明年3月个税汇算,到底啥区别?每年一到12月就懵圈:个税抵扣到底该咋弄? 12月确认2026专项附加扣除与 明年3月个税汇算,到底啥区别? 为啥非要12月确认? 简单说&#x…

作者头像 李华
网站建设 2026/6/6 15:57:50

快手直播灾难级事故?快手是被黑客入侵了?还是有别的特殊原因?快手急招网安岗位?

这场事件甚至可以成为互联网元年事件,因为性质非常严重,你甚至无法想象这是一个中大厂能干出来的T0级事故。 事故能产生具备几个非常难的黑客需要攻破的技术难点。1、同时大量正常号被盗,被用于直播。 2、看起来模型审核失效,快手…

作者头像 李华
网站建设 2026/6/1 7:46:32

27、Drupal API与Drush命令全解析

Drupal API与Drush命令全解析 在Drupal开发中,API和命令行工具起着至关重要的作用。下面将详细介绍Drupal中的Field CRUD API、Field Attach API以及Drush命令等相关内容。 1. Field CRUD API Field CRUD API主要用于创建字段、捆绑包和实例。以下是该API中的一些主要函数和…

作者头像 李华
网站建设 2026/5/20 11:30:10

28、开发技术综合指南

开发技术综合指南 1. 数据库操作 1.1 数据库层概述 数据库层在开发中占据重要地位,涵盖了从抽象到具体操作的多个方面。数据库抽象层(data abstraction layer)为数据库操作提供了统一的接口,使得开发者可以更方便地与不同类型的数据库进行交互。数据库层的抽象(abstrac…

作者头像 李华
网站建设 2026/6/7 0:03:28

ModbusSlave使用教程:STM32平台手把手入门指南

手把手教你用STM32实现Modbus从机:从协议到代码的完整实战指南在工业现场,你是否遇到过这样的问题?多个传感器各自为政,数据无法统一采集;PLC要读取温湿度却对接困难;上位机监控系统只能“盲操”……这些问…

作者头像 李华
网站建设 2026/6/5 19:58:56

基于单片机的模拟I2C工业通信手把手教程

手把手教你用单片机实现工业级模拟I2C通信你有没有遇到过这样的情况:项目紧急,板子已经打好了,结果发现主控芯片的硬件I2C引脚被其他功能占用了?或者现场传感器总是在通信中途“卡死”,硬件模块束手无策,只…

作者头像 李华