Auslöser ist die fehlende Prüfung des Längenfelds eines Attribut-Wert-Paares. Laut StrongSwan validiert der Parser den Längenwert nicht, bevor er ihn in einer Subtraktion verarbeitet. Bei Längenwerten zwischen 0 und 7 kommt es dadurch zu einem Underflow eines 32-Bit-Integers.
In einer Mitteilung des NIST heißt es, Angreifer könnten die ausbleibende Validierung der AVP-Längenfelder vor der Subtraktion ausnutzen, um eine übermäßige Speicherzuweisung oder eine NULL-Zeiger-Dereferenzierung auszulösen und so den charon-IKE-Daemon zum Absturz zu bringen.
Gelingt die Speicherzuweisung, führt der Fehler zu Ressourcenerschöpfung. Schlägt die Zuweisung großer Speichermengen dagegen fehl, kommt es laut StrongSwan zu einer NULL-Zeiger-Dereferenzierung und einem Speicherzugriffsfehler (Segmentation Fault).
Nach Angaben von Bishop Fox setzt eine erfolgreiche Ausnutzung einen zweistufigen Angriff voraus: Ein erstes bösartiges Paket beschädigt den Heap, ein zweites löst den Segmentation Fault aus und bringt den Daemon zum Absturz. Das Sicherheitsunternehmen stellte fest, dass der Absturz davon abhängt, wie das System die unmöglich große Speicheranforderung verarbeitet. In einigen Fällen werde unmittelbar NULL zurückgegeben, in anderen stürze der Daemon erst dann ab, wenn beschädigte Strukturen in einer nachfolgenden Anfrage verwendet werden.
StrongSwan hat die Schwachstelle in Version 6.0.5 geschlossen. Diese ergänzt die erforderliche Prüfung der AVP-Längenwerte während des Parsing-Vorgangs.
