CVE-2026-105298
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
Podsumowanie
Przed wersją 0.9.0 Pingora akceptowała żądania HTTP/2, których nagłówek Host różnił się od pseudonagłówka :authority. Filtry żądań, klucze pamięci podręcznej i dzienniki odczytujące identyfikator URI żądania (session.req_header().uri) widziały wartość :authority, ale element nadrzędny otrzymał wartość hosta dostarczoną przez klienta. Pingora zaakceptowała także wartości :authority zawierające informacje o użytkowniku (na przykład uż[email protected]). Narusza to RFC 9113, sekcja 8.3.1, która wymaga od pośrednika użycia wartości :authority dla Hosta i zastąpienia dowolnego istniejącego pola Host.
Pierwotna przyczyna
*
HTTP/2 do HTTP/1.1: Host został wygenerowany z :authority tylko wtedy, gdy żądanie nie miało nagłówka Host, więc host klienta będącego w konflikcie został przekazany bez zmian.
*
HTTP/2 na HTTP/2: nagłówek hosta klienta został usunięty i użyty do zastąpienia nadrzędnego :authority, po tym jak filtry żądań zostały już uruchomione względem oryginalnego :authority.
*
Serwer HTTP/2 nie porównał Hosta z :authority i nie odrzucił informacji o użytkowniku w instytucji.
Wpływ
Zdalny, nieuwierzytelniony atakujący może wysłać pojedyncze żądanie HTTP/2, które aplikacja postrzega jako jeden host, a serwer nadrzędny odbiera jako inny. Gdy filtry żądań, kontrola dostępu lub klucze pamięci podręcznej korzystają z urzędu URI i tras nadrzędnych według hosta, może to prowadzić do:
*
Zatruwanie pamięci podręcznej: odpowiedź od innego hosta wirtualnego jest przechowywana w kluczu pamięci podręcznej hosta ofiary i udostępniana innym użytkownikom (wymaga to również, aby serwer nadrzędny udostępniał inną zawartość dla każdego hosta).
*
Obejście kontroli dostępu oparte na hoście: żądanie zatwierdzone dla jednego hosta jest obsługiwane przez inny host wirtualny na serwerze nadrzędnym.
Nie ma to wpływu na wdrożenia, które nie akceptują protokołu HTTP/2 od klientów lub które nie korzystają z uprawnień do żądania przy podejmowaniu decyzji dotyczących bezpieczeństwa lub buforowania.
Należy pamiętać, że nie miało to wpływu na klientów Cloudflare CDN, ponieważ wewnętrzne usługi Pingora w Cloudflare nie mają klientów HTTP/2.
Łagodzenie:
*
Uaktualnij do wersji pingora 0.9.0 lub nowszej. Pingora zwraca teraz 400 Bad Request dla żądań HTTP/2, których Host różni się od :authority, które zawierają więcej niż jeden Host lub których organ zawiera informacje o użytkowniku, i utrzymuje zgodność nadrzędnego hosta lub :authority z uprawnieniem żądania. Napraw zatwierdzenia: https://github.com/cloudflare/pingora/commit/915590a91811877795531f6ba0927a3138b5cb4b , https://github.com/cloudflare/pingora/commit/ffab8302d08d4292d1924eb8fe84647fd5cb8e76
*
Jeśli nie możesz dokonać aktualizacji: w request_filter odrzuć żądania HTTP/2, które zawierają nagłówek hosta inny niż organ URI lub którego organ zawiera „@”.
>_ Referencje
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org