ZITADEL - Identity infrastructure, simplified for you.
Go to file
Livio Spring 4b59cac67b
fix: sanitize output for email (#8373)
# Which Problems Are Solved

ZITADEL uses HTML for emails and renders certain information such as
usernames dynamically. That information can be entered by users or
administrators. Due to a missing output sanitization, these emails could
include malicious code.
This may potentially lead to a threat where an attacker, without
privileges, could send out altered notifications that are part of the
registration processes. An attacker could create a malicious link, where
the injected code would be rendered as part of the email.

During investigation of this issue a related issue was found and
mitigated, where on the user's detail page the username was not
sanitized and would also render HTML, giving an attacker the same
vulnerability.

While it was possible to inject HTML including javascript, the execution
of such scripts would be prevented by most email clients and the Content
Security Policy in Console UI.

# How the Problems Are Solved

- All arguments used for email are sanitized (`html.EscapeString`)
- The email text no longer `html.UnescapeString` (HTML in custom text is
still possible)
- Console no longer uses `[innerHtml]` to render the username

# Additional Changes

None

# Additional Context

- raised via email

---------

Co-authored-by: peintnermax <max@caos.ch>

(cherry picked from commit 189505c80f)
2024-07-31 16:44:54 +02:00
.codecov chore(codecov): make codecov configurable in repo (#40) 2020-04-08 07:37:24 +02:00
.devcontainer chore(deps): update all go deps (#7773) 2024-04-15 09:17:36 +00:00
.github chore: build and test on main for codecov (#7875) 2024-04-30 20:08:00 +03:00
build merge main into next 2023-10-19 12:34:00 +02:00
cmd fix(defaults): configure hashers via env (#7872) 2024-05-08 06:48:26 +00:00
console fix: sanitize output for email (#8373) 2024-07-31 16:44:54 +02:00
deploy/knative docs: fix knative docs (#7752) 2024-04-18 13:45:15 +00:00
docs docs: add note about symbol of passwords (#7919) 2024-05-07 10:10:45 +00:00
e2e test(e2e): check for exactly one displayed event (#7831) 2024-04-23 09:09:25 +00:00
internal fix: sanitize output for email (#8373) 2024-07-31 16:44:54 +02:00
load-test chore: init load tests (#7635) 2024-04-18 12:21:07 +03:00
openapi ci: improve performance (#5953) 2023-07-17 10:08:20 +02:00
pkg/grpc chore(build): update dependencies (#7606) 2024-03-22 07:10:34 +00:00
proto feat: add action v2 execution on requests and responses (#7637) 2024-05-04 11:55:57 +02:00
statik fix(zitadel-image): refactor dockerfiles and gh action (#2027) 2021-07-27 14:34:56 +02:00
.dockerignore ci: improve performance (#5953) 2023-07-17 10:08:20 +02:00
.gitignore chore: init load tests (#7635) 2024-04-18 12:21:07 +03:00
.golangci.yaml chore(deps): update all go deps (#7773) 2024-04-15 09:17:36 +00:00
.releaserc.js maintenance branch 2024-05-30 09:15:26 +02:00
buf.gen.yaml ci: improve performance (#5953) 2023-07-17 10:08:20 +02:00
buf.work.yaml chore(console): buf stub build (#5215) 2023-02-17 14:09:11 +00:00
changelog.config.js feat: Merge master (#1260) 2021-02-08 16:48:41 +01:00
CODE_OF_CONDUCT.md chore: rename docs links (#3668) 2022-05-20 14:32:06 +00:00
CONTRIBUTING.md fix: Unrecognized Authentication Type Error when SMTP LOGIN Auth method is required (#7761) 2024-04-30 07:31:07 +00:00
go.mod chore: set specific go version (#7873) 2024-05-07 08:44:39 +00:00
go.sum perf: cache auth request in memory (#7824) 2024-04-23 11:23:50 +00:00
LICENSE chore: Update LICENSE (#1087) 2020-12-14 09:40:09 +01:00
main.go chore: test server for direct resource access 2023-04-24 20:40:31 +03:00
Makefile feat(crypto): use passwap for machine and app secrets (#7657) 2024-04-05 09:35:49 +00:00
README.md chore: Update readme with new features and links (#7798) 2024-04-18 19:48:29 +00:00
release-channels.yaml chore(stable): v2.46.7 (#7901) 2024-05-03 11:29:11 +00:00
SECURITY.md docs: rename instance settings to default settings (#7484) 2024-03-06 10:36:04 +00:00

Zitadel Logo Zitadel Logo

GitHub Workflow Status (with event) Dynamic YAML Badge GitHub contributors

Are you searching for a user management tool that is quickly set up like Auth0 and open source like Keycloak?

Do you have a project that requires multi-tenant user management with self-service for your customers?

Look no further — ZITADEL is the identity infrastructure, simplified for you.

We provide you with a wide range of out-of-the-box features to accelerate your project, including:

Multi-tenancy with team management
Secure login
Self-service
OpenID Connect
OAuth2.x
SAML2
LDAP
Passkeys / FIDO2
OTP
and an unlimited audit trail is there for you, ready to use.

With ZITADEL, you are assured of a robust and customizable turnkey solution for all your authentication and authorization needs.


🏡 Website 💬 Chat 📋 Docs 🧑‍💻 Blog 📞 Contact

Get started

👉 Quick Start Guide

Deploy ZITADEL (Self-Hosted)

Deploying ZITADEL locally takes less than 3 minutes. Go ahead and give it a try!

See all guides here

If you are interested to get professional support for your self-hosted ZITADEL please reach out to us!

Setup ZITADEL Cloud (SaaS)

If you want to experience a hands-free ZITADEL, you should use ZITADEL Cloud.

ZITADEL Cloud comes with a free tier, providing you with all the same features as the open-source version. Learn more about the pay-as-you-go pricing.

Example applications

Clone one of our example applications or deploy them directly to Vercel.

SDKs

Use our SDKs for your favorite language and framework.

Why choose ZITADEL

We built ZITADEL with a complex multi-tenancy architecture in mind and provide the best solution to handle B2B customers and partners. Yet it offers everything you need for a customer identity (CIAM) use case.

Features

Authentication

Multi-Tenancy

Integration

Self-Service

Deployment

Track upcoming features on our roadmap.

How To Contribute

Find details about how you can contribute in our Contribution Guide

Contributors

Made with contrib.rocks.

Showcase

Quick Start Guide

Secure a React Application using OpenID Connect Authorization Code with PKCE

Quick Start Guide

Login with Passkeys

Use our login widget to allow easy and secure access to your applications and enjoy all the benefits of Passkeys (FIDO 2 / WebAuthN):

Passkeys

Admin Console

Use Console or our APIs to setup organizations, projects and applications.

Console Showcase

Security

You can find our security policy here.

Technical Advisories are published regarding major issues with the ZITADEL platform that could potentially impact security or stability in production environments.

License

here are our exact licensing terms.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See our license for detailed information governing permissions and limitations on use.