Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PM-7842] Fix validation of IDN emails #4036

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Commits on Apr 30, 2024

  1. Fix validation of IDN emails

    Tracking the flow of emails when signing up / changing emails (`[StrictEmailAddressAttribute]`):
    
    1. (frontend) emails are checked using this regex: https://github.com/angular/angular/blob/17.3.6/packages/forms/src/validators.ts#L127
    2. (backend) check for `ParseException` and `MimeKit.MailboxAddress.Parse(X).Address == X`
    3. (backend) check "edge cases" regex
    4. (backend) check `EmailAddressAttribute().IsValid` (https://github.com/Microsoft/referencesource/blob/master/System.ComponentModel.DataAnnotations/DataAnnotations/EmailAddressAttribute.cs#L54)
    
    The problem:
    
    1. doesn't allow IDN
    2. requires IDN
    3. allows IDN
    4. allows IDN
    
    This PR relaxes (2) to only check for ParseExceptions, allowing IDN to
    be specified in punycode form.
    
    Would have been nice if MimeKit had a ParserOptions to not turn punycode
    into IDN-form, but that is not the case: https://github.com/jstedfast/MimeKit/blob/master/MimeKit/InternetAddress.cs#L418-L419
    
    Bitwarden already have a ton of (unit-)test-cases for handling IDN, so
    that should already be covered.
    NicolaiSoeborg committed Apr 30, 2024
    Configuration menu
    Copy the full SHA
    64639c0 View commit details
    Browse the repository at this point in the history

Commits on May 1, 2024

  1. Configuration menu
    Copy the full SHA
    73b6208 View commit details
    Browse the repository at this point in the history

Commits on May 20, 2024

  1. Configuration menu
    Copy the full SHA
    4e5ba60 View commit details
    Browse the repository at this point in the history

Commits on Jun 18, 2024

  1. Configuration menu
    Copy the full SHA
    16653eb View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2024

  1. Configuration menu
    Copy the full SHA
    eaa6c79 View commit details
    Browse the repository at this point in the history

Commits on Jul 6, 2024

  1. Configuration menu
    Copy the full SHA
    c491d44 View commit details
    Browse the repository at this point in the history

Commits on Aug 10, 2024

  1. Configuration menu
    Copy the full SHA
    b50ad7c View commit details
    Browse the repository at this point in the history