Fragen? Antworten! Siehe auch: Alternativlos
Zweitens ist der IP-Stack eine der am besten auditierten Gegenden von Windows. Wie konnte so ein Bug also unerkannt bleiben?! Ist der vielleicht relativ frisch eingebaut?
Drittens: UDP?! An einen geschlossenen Port?!? Was tut denn das Betriebssystem bitte mit solchen Paketen noch groß? Die wirft man weg und fertig ist.
Die sprechen im Advisory vom Überlauf eines Reference Counters. Das ist eine Art von Schwachstelle, die seit Jahren bekannt ist, die aber von vielen Leuten immer noch für unwahrscheinlich gehalten wird. Die Idee bei sowas ist, dass die anzugreifende Software einen Zähler hat, normalerweise 32 Bit groß, und für jeden, der noch einen Zeiger auf das Paket unterhält, den Zähler einen hochzählt. Wer seinen Zeiger nicht mehr braucht, teilt das mit, und der Zähler geht einen runter. Wenn der Zeiger bei 0 ist, gibt die Software die Daten frei. Der Bug ist jetzt, wenn man in einem Fehlerpfad vergisst, den Zähler runterzuzählen. Dann triggert der Angreifer den Fehlerpfad 232+1 Mal und gibt dann den überflüssigen einen wieder frei. Die Software sieht, dass der Zähler 0 ist und gibt den Speicher frei. Aber an anderer Stelle hat noch jemand eine Referenz offen, und über die greift man dann darauf zu, und das ist dann ein use-after-free Bug.
Ihr könnt euch schon denken, dass das Senden von 232 Paketen (gut 4 Milliarden) in der Praxis über das Internet auffallen würde, aber es ist natürlich trotzdem ein ausgesprochen peinlicher Bug, der gefixt werden muss.