Collisions
Unicode Case Mapping Collisions
'ß'.toUpperCase() === 'ss'.toUpperCase() // true
'ß'.toUpperCase() === 'SS' // truemalicious_email = 'saß@sass.com';
// Converted to 'SASS@SASS.COM'
uppercased_email = malicious_email.toUpperCase();
// Will match a an existing user that's not controlled by the attacker ('SASS@SASS.COM')
user_id = get_user_from_database(uppercased_email);
if (user_id) {
// Sends an email to 'saß@sass.com' for a password reset for the 'sass@sass.com' user.
send_recovery_email(user_id, malicious_email);
}Last updated