From 0e6369bb38b75e767a456797f0f7dd4ebb066101 Mon Sep 17 00:00:00 2001 From: Kayou Date: Mon, 15 Nov 2021 00:49:51 +0100 Subject: [PATCH 1/8] fix not only alphanumeric characters domain name --- helpers.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helpers.lua b/helpers.lua index 6ddf7b5..5728a17 100644 --- a/helpers.lua +++ b/helpers.lua @@ -1070,7 +1070,7 @@ function redirect(url) if not string.starts(url, "/") and not string.starts(url, "http://") and not string.starts(url, "https://") then url = "https://"..url end - local domain = url:match("^https?://([%w%.]*)/?") + local domain = url:match("^https?://([^/]+)/?") if string.match(url, "(.*)\n") or (domain ~= nil and not is_in_table(conf["domains"], domain)) then logger.debug("Unauthorized redirection to "..url) flash("fail", t("redirection_error_invalid_url")) From 325964742d890b67206c93f38cdf4b42f75164a4 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Mon, 15 Nov 2021 19:02:13 +0100 Subject: [PATCH 2/8] Improve check for unauthorized redirect url Co-authored-by: Kayou --- helpers.lua | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/helpers.lua b/helpers.lua index 5728a17..b2d0046 100644 --- a/helpers.lua +++ b/helpers.lua @@ -1070,8 +1070,11 @@ function redirect(url) if not string.starts(url, "/") and not string.starts(url, "http://") and not string.starts(url, "https://") then url = "https://"..url end - local domain = url:match("^https?://([^/]+)/?") - if string.match(url, "(.*)\n") or (domain ~= nil and not is_in_table(conf["domains"], domain)) then + local is_known_domain = false + for _, domain in ipairs(conf["domains"]) do + is_known_domain = is_known_domain or url:match("^https?://"..domain.."/?") ~= nil + end + if string.match(url, "(.*)\n") or not is_known_domain then logger.debug("Unauthorized redirection to "..url) flash("fail", t("redirection_error_invalid_url")) url = conf.portal_url From 08be399a4942d342d04568722b8eb2edbf9be369 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Mon, 15 Nov 2021 19:55:20 +0100 Subject: [PATCH 3/8] Update changelog for 4.3.2.1 --- debian/changelog | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/debian/changelog b/debian/changelog index dd0efe3..a69cfc1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +ssowat (4.3.2.1) stable; urgency=low + + - [fix] unauthorized redirect url check not matching non-alphanumeric chars in domain name ([#197](https://github.com/YunoHost/ssowat/pull/197)) + + Thanks to all contributors <3 ! (Kayou) + + -- Alexandre Aubin Mon, 15 Nov 2021 19:54:43 +0100 + ssowat (4.3.2) stable; urgency=low - Bump version for stable release From 981960fb50465dd43762a4fc767bea51dcbcfd7e Mon Sep 17 00:00:00 2001 From: Kay0u Date: Tue, 16 Nov 2021 21:40:04 +0100 Subject: [PATCH 4/8] Another fix for redirect function --- helpers.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/helpers.lua b/helpers.lua index b2d0046..f5d330d 100644 --- a/helpers.lua +++ b/helpers.lua @@ -1070,8 +1070,13 @@ function redirect(url) if not string.starts(url, "/") and not string.starts(url, "http://") and not string.starts(url, "https://") then url = "https://"..url end - local is_known_domain = false + local is_known_domain = string.starts(url, "/") for _, domain in ipairs(conf["domains"]) do + if is_known_domain then + break + end + -- Replace - character to %- because - is a special char for regex in lua + domain = string.gsub(domain, "%-","%%-") is_known_domain = is_known_domain or url:match("^https?://"..domain.."/?") ~= nil end if string.match(url, "(.*)\n") or not is_known_domain then From 737d686623f8a630b7c820b65436f286e8d45964 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Thu, 18 Nov 2021 01:10:49 +0100 Subject: [PATCH 5/8] Update changelog for 4.3.2.2 --- debian/changelog | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/debian/changelog b/debian/changelog index a69cfc1..e827542 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +ssowat (4.3.2.2) stable; urgency=low + + - [fix] Another fix for the redirect url check (981960f) + + Thanks to all contributors <3 ! (Kay0u) + + -- Alexandre Aubin Thu, 18 Nov 2021 01:09:53 +0100 + ssowat (4.3.2.1) stable; urgency=low - [fix] unauthorized redirect url check not matching non-alphanumeric chars in domain name ([#197](https://github.com/YunoHost/ssowat/pull/197)) From 008632e0fb429a5177584739b6613494e6663140 Mon Sep 17 00:00:00 2001 From: Boudewijn Date: Mon, 22 Nov 2021 22:15:51 +0000 Subject: [PATCH 6/8] Translated using Weblate (Dutch) Currently translated at 100.0% (47 of 47 strings) Translation: YunoHost/SSOwat Translate-URL: https://translate.yunohost.org/projects/yunohost/ssowat/nl/ --- portal/locales/nl.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/portal/locales/nl.json b/portal/locales/nl.json index 1447934..18052bd 100644 --- a/portal/locales/nl.json +++ b/portal/locales/nl.json @@ -1,7 +1,7 @@ { "add_forward": "Voeg een e-mail doorstuuradres toe", "add_mail": "Voeg een e-mailalias toe", - "cancel": "Annuleer", + "cancel": "Annuleren", "change_password": "Verander wachtwoord", "confirm": "Bevestigen", "current_password": "Huidig wachtwoord", @@ -10,40 +10,40 @@ "footerlink_documentation": "Documentatie", "footerlink_edit": "Bewerk mijn profiel", "footerlink_support": "Ondersteuning", - "fullname": "Voor-en achternaam", + "fullname": "Voor- en achternaam", "information": "Uw gegevens", "information_updated": "Informatie bijgewerkt", - "invalid_domain": "Ongeldig domein", - "invalid_mail": "Ongeldig emailadres", - "invalid_mailforward": "Ongeldig email-forward adres", + "invalid_domain": "Ongeldig domein in", + "invalid_mail": "Ongeldig e-mailadres", + "invalid_mailforward": "Ongeldig email-doorstuuradres", "logged_out": "Uitgelogd", "login": "Inloggen", "logout": "Uitloggen", "mail_addresses": "E-mailadressen", "mail_already_used": "E-mailadres al in gebruik", "mail_forward": "E-mail doorstuuradres", - "missing_required_fields": "Verplichte velden zijn niet ingevuld", - "new_forward": "nieuwe_forward@mijndomein.org", + "missing_required_fields": "De verplichte velden moeten ingevuld worden", + "new_forward": "nieuw_doorstuuradres@mijndomein.org", "new_mail": "nieuwe_email@mijndomein.org", "new_password": "Nieuw wachtwoord", "ok": "OK", "password": "Wachtwoord", - "password_changed": "wachtwoord veranderd", + "password_changed": "Wachtwoord veranderd", "password_changed_error": "Kon wachtwoord niet veranderen", "password_not_match": "De wachtwoorden komen niet overeen", "please_login": "Log in om toegang te krijgen tot deze inhoud", "please_login_from_portal": "Log in vanaf het portaal", "portal": "YunoHost Portaal", - "user_saving_fail": "Er is een fout opgetreden bij het opslaan van wijzigingen aan gebruiker", + "user_saving_fail": "De nieuwe gebruikersinformatie kon niet opgeslagen worden", "username": "Gebruikersnaam", - "wrong_current_password": "Huidig wachtwoord is verkeerd", + "wrong_current_password": "Het huidige wachtwoord is fout", "wrong_username_password": "Verkeerde gebruikersnaam of wachtwoord", - "password_too_simple_2": "Het wachtwoord moet minimaal 8 tekens lang zijn en cijfers, hoofdletters en kleine letters bevatten", + "password_too_simple_2": "Het wachtwoord moet minimaal 8 tekens lang zijn en moet cijfers, hoofdletters en kleine letters bevatten", "password_too_simple_1": "Het wachtwoord moet minimaal 8 tekens lang zijn", "password_listed": "Dit wachtwoord is een van de meest gebruikte wachtwoorden ter wereld. Kies alstublieft iets uniekers.", "redirection_error_unmanaged_domain": "Omleidingsfout: onbeheerd domein", "redirection_error_invalid_url": "Omleidingsfout: ongeldige URL", - "good_practices_about_user_password": "Kies een gebruikerswachtwoord van minimaal 8 tekens - hoewel het een goede gewoonte is om langere (dat wil zeggen een wachtwoordzin) te gebruiken en / of verschillende soorten tekens te gebruiken (hoofdletters, kleine letters, cijfers en speciale tekens).", - "password_too_simple_4": "Het wachtwoord moet minimaal 12 tekens lang zijn en cijfers, bovenste, onderste en speciale tekens bevatten", - "password_too_simple_3": "Het wachtwoord moet minimaal 8 tekens lang zijn en cijfers, bovenste, onderste en speciale tekens bevatten" + "good_practices_about_user_password": "Kies een gebruikerswachtwoord van minimaal 8 tekens - hoewel het een goede gewoonte is om langere (bijvoorbeeld een wachtwoordzin) te gebruiken en/of verschillende soorten tekens te gebruiken (hoofdletters, kleine letters, cijfers en speciale tekens).", + "password_too_simple_4": "Het wachtwoord moet minimaal 12 tekens lang zijn en moet cijfers, hoofdletters, kleine letters en speciale tekens bevatten", + "password_too_simple_3": "Het wachtwoord moet minimaal 8 tekens lang zijn en moet cijfers, hoofdletters, kleine letters en speciale tekens bevatten" } From 7c6a95b2494bf88ee2fcc67c602257659ac1408a Mon Sep 17 00:00:00 2001 From: Valentin von Guttenberg Date: Mon, 29 Nov 2021 15:16:09 +0000 Subject: [PATCH 7/8] Translated using Weblate (German) Currently translated at 100.0% (47 of 47 strings) Translation: YunoHost/SSOwat Translate-URL: https://translate.yunohost.org/projects/yunohost/ssowat/de/ --- portal/locales/de.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/portal/locales/de.json b/portal/locales/de.json index de35f32..89f4a4f 100644 --- a/portal/locales/de.json +++ b/portal/locales/de.json @@ -40,9 +40,9 @@ "wrong_username_password": "Falscher Benutzername oder Passwort", "redirection_error_invalid_url": "Fehler bei Weiterleitung: Ungültige URL", "redirection_error_unmanaged_domain": "Fehler bei Weiterleitung: Nicht-verwaltete Domain", - "good_practices_about_user_password": "Wähle ein Nutzerpasswort mit mindestens 8 Zeichen - es ist jedoch empfehlenswert, ein längeres Passwort (z.B. eine Passphrase) und/oder verschiedene Arten von Zeichen (Groß- und Kleinschreibung, Ziffern und Sonderzeichen) zu verwenden.", + "good_practices_about_user_password": "Wähle ein Benutzerpasswort mit mindestens 8 Zeichen - es ist jedoch empfehlenswert, ein längeres Passwort (z.B. eine Passphrase) und/oder verschiedene Arten von Zeichen (Groß- und Kleinschreibung, Ziffern und Sonderzeichen) zu verwenden.", "password_too_simple_3": "Das Passwort muss mindestens 8 Zeichen lang sein und Grossbuchstaben, Kleinbuchstaben, Zahlen und Sonderzeichen enthalten", - "password_too_simple_2": "Das Passwort muss mindestens 8 Zeichen lang sein und Grossbuchstaben, Kleinbuchstaben und Zahlen enthalten", + "password_too_simple_2": "Das Passwort muss mindestens 8 Zeichen lang sein und Gross- und Kleinbuchstaben sowie Zahlen enthalten", "password_listed": "Dieses Passwort zählt zu den meistgenutzten Passwörtern der Welt. Bitte wähle ein anderes, einzigartigeres Passwort.", "password_too_simple_4": "Das Passwort muss mindestens 12 Zeichen lang sein und Grossbuchstaben, Kleinbuchstaben, Zahlen und Sonderzeichen enthalten", "password_too_simple_1": "Das Passwort muss mindestens 8 Zeichen lang sein" From beedb9b20f93b725d59f8f021941a04d06aa7d57 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Wed, 29 Dec 2021 01:12:12 +0100 Subject: [PATCH 8/8] Update changelog for 4.3.3 --- debian/changelog | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/debian/changelog b/debian/changelog index e827542..389694a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +ssowat (4.3.3) stable; urgency=low + + - [i18n] Translations updated for Dutch, German + + Thanks to all contributors <3 ! (Boudewijn, Valentin von Guttenberg) + + -- Alexandre Aubin Wed, 29 Dec 2021 01:11:41 +0100 + ssowat (4.3.2.2) stable; urgency=low - [fix] Another fix for the redirect url check (981960f)