On December 11th, the Storybook team received a responsible disclosure alerting us to a potential vulnerability in certain built and published Storybooks.
The vulnerability is a bug in how Storybook handles environment variables defined in a .env file, which could, in specific circumstances, lead to those variables being unexpectedly bundled into the artifacts created by the storybook build command. When a built Storybook is published to the web, the bundle’s source is viewable, thus potentially exposing those variables to anyone with access. If those variables contained secrets, they should be considered compromised.
No one has reported an exploited project to us. Once we learned of the vulnerability, we worked diligently to release patched versions and distribute a GitHub security advisory.
Who is impacted?
For a project to be vulnerable to this issue, it must:
- Build the Storybook (i.e. run
storybook build directly or indirectly) in a directory that contains a .env file (including variants like .env.local)
- The
.env file contains sensitive secrets
- Use Storybook version
7.0.0 or above
- Publish the built Storybook to the web
Storybooks built without a .env file at build time are not affected, including common CI-based builds where secrets are provided via platform environment variables rather than .env files.
Your Storybook runtime environments (i.e. storybook dev) are not affected. Your deployed applications that share a repo with your Storybook are not affected.
Storybook 6 and below is not affected.
Recommended actions
First, we are recommending that everyone audit for any sensitive secrets provided via .env files and rotate those keys.
Second, we have released patched versions of all affected major Storybook versions that no longer have this vulnerability. You should upgrade your Storybook—on both your local machines and CI environments—to one of these versions before publishing again.
10.1.10+
9.1.17+
8.6.15+
7.6.21+
Finally, some projects may have been relying on the undocumented behavior at the heart of this issue and will need to change how they reference environment variables after this update. If your project can no longer read necessary environmental variable values, you can either prefix the variables with STORYBOOK_ or use the env property in Storybook’s configuration to manually specify values. In either case, do not include sensitive secrets as they will be included in the built bundle.
Further information
Details of the vulnerability can be found on the Storybook announcement.
On December 11th, the Storybook team received a responsible disclosure alerting us to a potential vulnerability in certain built and published Storybooks.
The vulnerability is a bug in how Storybook handles environment variables defined in a
.envfile, which could, in specific circumstances, lead to those variables being unexpectedly bundled into the artifacts created by thestorybook buildcommand. When a built Storybook is published to the web, the bundle’s source is viewable, thus potentially exposing those variables to anyone with access. If those variables contained secrets, they should be considered compromised.No one has reported an exploited project to us. Once we learned of the vulnerability, we worked diligently to release patched versions and distribute a GitHub security advisory.
Who is impacted?
For a project to be vulnerable to this issue, it must:
storybook builddirectly or indirectly) in a directory that contains a.envfile (including variants like.env.local).envfile contains sensitive secrets7.0.0or aboveStorybooks built without a
.envfile at build time are not affected, including common CI-based builds where secrets are provided via platform environment variables rather than.envfiles.Your Storybook runtime environments (i.e.
storybook dev) are not affected. Your deployed applications that share a repo with your Storybook are not affected.Storybook 6 and below is not affected.
Recommended actions
First, we are recommending that everyone audit for any sensitive secrets provided via
.envfiles and rotate those keys.Second, we have released patched versions of all affected major Storybook versions that no longer have this vulnerability. You should upgrade your Storybook—on both your local machines and CI environments—to one of these versions before publishing again.
10.1.10+9.1.17+8.6.15+7.6.21+Finally, some projects may have been relying on the undocumented behavior at the heart of this issue and will need to change how they reference environment variables after this update. If your project can no longer read necessary environmental variable values, you can either prefix the variables with
STORYBOOK_or use theenvproperty in Storybook’s configuration to manually specify values. In either case, do not include sensitive secrets as they will be included in the built bundle.Further information
Details of the vulnerability can be found on the Storybook announcement.