072 - 201 61 16 31722016116
Slide

Wij bouwen jouw unieke
Game PC op maat

Naar eigen budget samenstellen
Keuze uit AMD en Intel
Kwaliteit voor de laagste prijs
Vakkundig & gebouwd met aandacht
Uitvoerig door ons getest

Naar eigen wens samenstellen
Keuze uit AMD en Intel
Kwaliteit voor de laagste prijs
Vakkundig en gebouwd met aandacht
Uitvoerig door ons getest

Hans
Jordi

Game PC Expert
+ 10 jaar ervaring

Software Expert
+ 20 jaar ervaring

Slide
De kracht van de NVIDIA GeForce RTX 3090 Ti maakt intens gamen mogelijk.
Ontdek de videokaarten in één van onze builders.
previous arrow
next arrow

Verbindingsproblemen met Firefox waren te wijten aan een wijziging van Google en een bibliotheekfout

datum: 03-02-2022Categorie: SoftwareBron: Tweakers

Firefox was half januari een paar uur beperkt. Het bleek dat een Google-service onaangekondigd was overgestapt op HTTP/3. Dit veroorzaakte een bug in de browser die hoofdletters in een kop verving door kleine letters. De HTTP/3-code kan deze niet lezen.

Sommige Firefox-gebruikers konden op 13 januari langer dan vier uur geen websites bezoeken , hoewel het uitschakelen van HTTP/3 al hielp. Firefox Tech Lead en Senior Staff Security Engineer Christian Holler legt op een Mozilla-blog uit wat dit veroorzaakte. Het probleem deed zich voor toen Google Cloud Platform de standaard HTTP overzette naar HTTP/3. Google had dit vooraf niet aangekondigd en de Firefox-browser nam deze wijziging standaard over. Firefox gebruikt cloudservices zoals GCP voor updates, telemetrie, certificaatbeheer, crashrapporten en andere functies.

Mozilla kwam er al snel achter dat het overschakelen naar HTTP/3 tot de storing leidde. Toen dit werd uitgeschakeld en de browsers weer HTTP/2 gingen gebruiken, was het probleem verdwenen. Het was echter nog niet duidelijk waarom HTTP/3 voor problemen zorgde.

Dit bleek te wijten aan delen van de Firefox-browser die op Rust zijn gebaseerd, met name de Telemetry-header. Alle HTTP/3-verbindingen gaan via Necko, de netwerkstack van Firefox. Rustcomponenten gaan echter niet rechtstreeks via Necko, maar lopen eerst via het tussenliggende bibliotheekviaduct . Er is iets misgegaan met deze tussenliggende bibliotheek.

De HTTP/3-code op een lager niveau Content-Length header, die Necko automatisch maakt als de code deze header nog niet heeft. Bij het controleren of code die koptekst heeft, kijkt Necko echter niet naar het onderscheid tussen kleine letters en hoofdletters. Dit bleek een probleem te zijn, omdat viaduct alle hoofdletters in koppen kleine letters maakt. Hierdoor ontstaat de content-length header, dus zonder hoofdletters.

Met Rustcode waar de header nog niet was toegevoegd ging er niets mis. Viaduct zelf maakt geen headers, maar verandert alleen de hoofdletters in kleine letters. Dus de code ging zonder header naar Necko, die de juiste Content-Length header genereerde.

Telemetrie was de enige Firefox-component die in Rust werd gemaakt en die tijdens de storing Content-Length Viaduct heeft hiervan content-length gemaakt, die niet door Necko is aangepast. Omdat de HTTP/3-code op een lager niveau de Content-Length header vereist, kon de HTTP/3-code de header niet vinden, waarvan Necko zei dat die er was. Dit resulteerde in een oneindige lus en geen foutmelding. Die lus blokkeerde op zijn beurt andere netwerkcommunicatie en maakte de browser onbruikbaar. Rustdelen zonder de header werkten wel, omdat de header toen pas bij Necko werd toegevoegd. Als gevolg hiervan konden gebruikers die telemetrie hadden uitgeschakeld nog steeds de browser gebruiken.

Mozilla zegt nu in contact te zijn met Google om dergelijke onverwachte wijzigingen te voorkomen. Het bedrijf erkent dat een aankondiging het risico van een dergelijk incident niet volledig uitsluit, maar dat het meer testen mogelijk maakt. Daarnaast zal Mozilla alle serviceconfiguraties controleren om te zien of andere services ook gewoon de standaardinstellingen van een andere service overnemen, zoals gebeurde bij de overstap naar HTTP/3. Tot slot wil Mozilla meer testen uitvoeren met verschillende HTTP-versies en wil de organisatie sneller reageren op incidenten.

Nieuws overzicht
KvK nummer:  68747640
BTW nummer:  NL857574176B01