[SECURITY] Critical vulnerability in Gluon - Bugfix release on Thursday, 2022-05-05

Cross-posting von der Gluon Mailingliste. Original Text:

Hi everyone,

we have recently found a critial security vulnerability in Gluon, making a timely update of all nodes necessary.

The bugfix has not been pushed to the public Gluon repository yet to avoid disclosing information on this issue. A detailed advisory will be published at the same time as Gluon 2021.1.2, which will contain the fix.

The release is scheduled for the evening of Thursday, 2022-05-05. As all previous Gluon releases are affected, we will also provide bugfix backports for various older release branches that are still in use, regardless of end-of-life status.

– NeoRaider

9 Likes

Impact

ecdsa_verify_[prepare_]legacy() does not check whether the signature values r and s are non-zero. A signature consisting only of zeroes is always considered valid, making it trivial to forge signatures.

Requiring multiple signatures from different public keys does not mitigate the issue: ecdsa_verify_list_legacy() will accept an arbitrary number of such forged signatures.

Both the ecdsautil verify CLI command and the libecdsautil library are affected.

The exact same vulnerability was recently found in the Java Runtime Environment (CVE-2022-21449).

Patches

The issue has been fixed in ecdsautils 0.4.1.

All older versions of ecdsautils (including versions before the split into a library and a CLI utility) are vulnerable.

ecdsautils 0.4.1 is API- and ABI-compatible with version 0.4.0 (which is the same as version 0.3.2.20160630 found in the OpenWrt packages feed). The patch [add reference to fix commit here] should also apply to older versions of ecdsautuils with minor adjustments.

https://gluon.readthedocs.io/en/latest/releases/v2021.1.2.html

I know ECDSA in SSH-context. What’s the use of the algorithm in the Freifunk environment? Is ist used for the fastd tunnels?

Die Release Notes, die oben verlinkt sind, geben dazu detaillierter Auskunft. Aber hier ganz kurz: Es geht um das Signieren von Firmware Updates. Aufgrund dieser SicherheitslĂŒcke kann jedermann als gĂŒltig akzeptierte Firmware Manifeste erstellen. Damit kann man Gluon Knoten unter bestimmten UmstĂ€nden ein beliebiges Firmware Update unterjubeln.

2 Likes

Ist das selbe Problem wie mit java vor 14 tagen 


2 Likes

Ja, aber 


Der Angreifer muß dazu die Kontrolle ĂŒber den hinterlegten Updateserver haben oder aber die Mittel, diesen im gegebenen Setup impersonieren zu können. Wobei letzteres sowohl auf L2- als auch L3-Ebene nicht trivial ist.

Kurzfassung: ja, ist Kacke, aber auch nicht direkte GötterdĂ€mmerung. Der Alarmismus ist aus Gluon-/Projektsicht verstĂ€ndlich – Level: major fuckup –, aus der Warte der Anwender oder Admins jedoch eher im Bereich »blaues Auge« einzuordnen.

2 Likes

Es ist ja so, dass sowieso nur communitys und branches betroffen sind bei denen man ein Firmware Update mit nur einer Signatur auslösen kann, da man nur eine durch Nullen ersetzen kann

Sicher? Wird nicht zeilenweise geprĂŒft und gueltigesigs++ gemacht, wenn Signatur ‚paßt‘?

Ziemlich sicher, wir brauchen bei uns drei gĂŒltige Signaturen, und ich hatte es einmal probiert mit drei Mal Null Zeilen
 ging nicht

1 Like

Das ist falsch.

Steht so auch im Security Advisory:

Requiring multiple signatures does not mitigate the issue.

siehe: Improper verification of cryptographic signature in Gluon's autoupdater · Advisory · freifunk-gluon/gluon · GitHub

Und es haben auch mehrere Communities die gepatchte Firmware mit multiplen Nullsignaturen ausgerollt. Keine Ahnung was du gemacht hast.

Ja, das ist seltsam, in Kiel meine ich auch dass es zuerst geklappt hat beim Update von 2018.x auf 2020.2.x mit dreimal Nullen, aber in Freifunk Nord, wo wir zwei Signaturen brauchen, hat es dann nicht geklappt, erst als ich eine gĂŒltige Signatur hinzugefĂŒgt habe, und die zweite mit Nullen, ging das Update los. Ebenso bei @heini66 in Nordwest.
Vielleicht ist der Bug nicht in allen Firmware-Versionen gleich?

mit nordwest hab ich nix am hut. ich freifunke in der nordheide. ffnh. oder auch map.freifun-nordheide.de
aber: scarry ist das mit der manifestunterschrift. auf version n1 brauchten wir 1 gĂŒltige & 1 fake . auf version n2 klappten 2 fake unterschriften. n1 und n2 versionsinfo’s gibt esfĂŒr berknnte user per pm

1 Like

Zumindest in einer 2021.1.1 hat die 0000er nur den Wert einer gĂŒltigen Signatur gehabt, wir brauchten dort noch weitere „echte“, nur halt eine weniger als sonst.