From a196623892558623e467f20b67edb78794252a09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= Date: Fri, 5 May 2023 11:07:26 +0200 Subject: [PATCH] Hsts: match header names case insensitively (CVE-2023-32762) Header field names are always considered to be case-insensitive. Pick-to: 6.5 6.5.1 6.2 5.15 Fixes: QTBUG-113392 Change-Id: Ifb4def4bb7f2ac070416cdc76581a769f1e52b43 Reviewed-by: Qt CI Bot Reviewed-by: Edward Welbourne Reviewed-by: Volker Hilsheimer (cherry picked from commit 1b736a815be0222f4b24289cf17575fc15707305) * asturmlechner 2023-05-23: Upstream backport to 5.15 taken from https://www.qt.io/blog/security-advisory-qt-network --- src/network/access/qhsts.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/network/access/qhsts.cpp b/src/network/access/qhsts.cpp index 0cef0ad3dc..be7ef7ff58 100644 --- a/src/network/access/qhsts.cpp +++ b/src/network/access/qhsts.cpp @@ -364,8 +364,8 @@ quoted-pair = "\" CHAR bool QHstsHeaderParser::parse(const QList> &headers) { for (const auto &h : headers) { - // We use '==' since header name was already 'trimmed' for us: - if (h.first == "Strict-Transport-Security") { + // We compare directly because header name was already 'trimmed' for us: + if (h.first.compare("Strict-Transport-Security", Qt::CaseInsensitive) == 0) { header = h.second; // RFC6797, 8.1: // -- 2.40.1