From 255a4ae4e571d40f83028efc34295d1ff6698841 Mon Sep 17 00:00:00 2001 From: Daniel James Smith <2670567+djsmith85@users.noreply.github.com> Date: Tue, 17 Mar 2026 14:09:31 +0100 Subject: [PATCH] Let tldts check for invalid characters within URI/hostname (#19415) Co-authored-by: Daniel James Smith --- libs/common/src/platform/misc/utils.spec.ts | 5 +++++ libs/common/src/platform/misc/utils.ts | 6 ------ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/libs/common/src/platform/misc/utils.spec.ts b/libs/common/src/platform/misc/utils.spec.ts index 2956e94fea8..aa134757629 100644 --- a/libs/common/src/platform/misc/utils.spec.ts +++ b/libs/common/src/platform/misc/utils.spec.ts @@ -156,6 +156,11 @@ describe("Utils Service", () => { expect(Utils.getHostname('https://bit!:"_&ward.com')).toBeNull(); }); + it("should not treat '!' in query string as an invalid url", () => { + expect(Utils.getHostname("http://localhost:8080?a=!")).toBe("localhost"); + expect(Utils.getHostname("https://bitwarden.com?q=!")).toBe("bitwarden.com"); + }); + it("should fail for data urls", () => { expect(Utils.getHostname("data:image/jpeg;base64,AAA")).toBeNull(); }); diff --git a/libs/common/src/platform/misc/utils.ts b/libs/common/src/platform/misc/utils.ts index df6af4a4ccd..075c1146e2c 100644 --- a/libs/common/src/platform/misc/utils.ts +++ b/libs/common/src/platform/misc/utils.ts @@ -434,12 +434,6 @@ export class Utils { return null; } - // Does uriString contain invalid characters - // TODO Needs to possibly be extended, although '!' is a reserved character - if (uriString.indexOf("!") > 0) { - return null; - } - try { const hostname = getHostname(uriString, { validHosts: this.validHosts }); if (hostname != null) {