Zusammenfassung

  • Im geprüften öffentlichen Commit 3c2068477eb38ebbbe70039ee6e1b7b004fc69cd erhält eine neu angelegte Wahl unabhängig vom Typ standardmäßig den Wiederherstellungsmodus ALL; ONLY_BR und NONE bleiben ausdrücklich einstellbar.
  • Eine normalisierte E-Mail-Adresse wird getrennt in Wähler-, Mitgliedsorganisations- und Nominierungsunterstützer-Datensätzen gesucht. Pro Klasse können bis zu zehn tokenisierte Links in die Versandwarteschlange gelangen.
  • Einheitliche Antworten und Klassenlimits sind sinnvolle Schutzmaßnahmen. Ein privater Befugnis-Wiederherstellungsbeleg sollte zusätzlich Wahlregel, Rolle, Konfigurationsherkunft, Token-Lebenszyklus, Zustellung, Nutzung und Ungültigkeit verbinden.

Der aufschlussreichste Teil des Programms besteht aus einer Funktion, die einen Parameter nicht unterscheidet. defaultForElectionType nimmt den Typ einer Wahl entgegen und liefert ALL zurück.

Beide Konstruktoren des Modells Election legen eine neue Wahl zunächst als BOARD an und rufen diese Funktion auf. Ein Verhaltenstest erwartet deshalb für das neue Objekt ElectionLinkRecoveryMode.ALL. Die öffentliche Funktionsbeschreibung bestätigt den Befund: Neue Wahlen beginnen in dieser Distribution unabhängig vom Typ mit ALL. Ein Administrator kann den Modus später auf ONLY_BR oder NONE setzen.

Das ist kein Beweis für eine Sicherheitslücke. Es ist nicht einmal ein Beweis dafür, dass eine laufende LACNIC-Wahl diesen Build oder diese Einstellung nutzt. Für diese Recherche wurde kein Wiederherstellungsformular abgeschickt, keine Teilnehmeradresse untersucht und kein echter Token gesehen. Die Aussage gilt dem fixierten öffentlichen Quellstand.

Der Standardwert ist trotzdem institutionell interessant. Wer eine ursprüngliche Nachricht wegen Spamfilter, Gerätewechsel oder Personalübergabe nicht mehr findet, kann weiterhin wahlberechtigt sein. Eine Wiederherstellung verhindert, dass ein Zustellungsfehler über politische Teilnahme entscheidet. Selbstbedienung kann Gleichbehandlung verbessern und den Support entlasten.

Doch der erneut zugestellte Link ist eine Fähigkeit. Er kann den Weg zur Stimmabgabe öffnen, eine Organisation nominieren lassen oder die Unterstützung einer Nominierung ermöglichen. Die E-Mail stellt diese Fähigkeit zu; sie begründet sie nicht. Genau diese Differenz muss ein belastbarer Auditpfad erhalten.

Drei Abfragen hinter einem Feld

Das Panel entfernt Leerraum und wandelt die eingegebene Adresse in Kleinbuchstaben um. Anschließend führt es drei auf dieselbe Wahl begrenzte Abfragen aus. Es sucht in UserVoter.mail, Organization.membershipContactEmail und SupportNomination.supportingContactEmail.

Diese Felder stehen für verschiedene Prinzipale. Die Berechtigung eines Wählers kommt aus dem Wählerverzeichnis. Die Mitgliedsorganisation verfügt im Nominierungsprozess über eine eigene Befugnis und handelt über ihren Kontakt. Der Unterstützer ist an eine bestimmte Nominierung und deren Ablauf gebunden. Eine identische Zeichenfolge im E-Mail-Feld verschmilzt diese Rechtsquellen nicht.

Auch der Code unterscheidet die Ausgaben. Ein Treffer bei Wählern führt zum Typ VOTER_VOTE_LINK. Eine Organisation erhält NOMINATION_LINK, sofern ihr Nominierungstoken nicht leer ist. Ein Unterstützer erhält SUPPORT_LINK. Die Links werden nicht dem Besucher angezeigt, sondern an die im Datensatz gespeicherte Adresse versandt.

Jede Abfrage ist auf zehn Treffer begrenzt. Das sind nicht zehn Treffer insgesamt, sondern bis zu zehn je Klasse. Im Modus ALL gibt es keinen Länderfilter. ONLY_BR filtert mit dem für die jeweilige Klasse passenden Land: dem Land des Wählers, der Organisation oder der Organisation, von der die Nominierung ausging.

Das Limit schützt die Verarbeitung, falls eine Adresse vielfach wiederverwendet wurde. Es ist kein Berechtigungsnachweis. Zehn Datensätze können gültig, veraltet, bereits erledigt oder außerhalb ihres Zeitfensters sein. Die Zahl sagt nur, wie weit die Suche geht.

Gute Geheimhaltung der Antwort, offene Frage der Übergabe

Das Formular zeigt nicht an, ob es einen Treffer gab. Solange kein Betriebsfehler auftritt, erhält ein Besucher immer dieselbe Annahmebestätigung. Die Dokumentation hebt hervor, dass damit weder ein vorhandener Zugang noch dessen Fehlen offengelegt wird.

Das ist ein wertvoller Schutz gegen Enumeration. Niemand soll durch systematisches Probieren eine Wähler- oder Kontaktliste gewinnen. Die Nachricht wird an die bereits gespeicherte Adresse geschickt, nicht an eine vom Bildschirm zurückgegebene Adresse.

Antwortgeheimhaltung und korrekte Befugnisübergabe sind jedoch zwei verschiedene Kontrollen. Eine Oberfläche kann Treffer vollständig verbergen und dennoch mehrere Fähigkeiten an ein gemeinsam genutztes oder veraltetes Postfach schicken. Die einheitliche Antwort schützt vor dem Antragsteller. Der Befugnisbeleg schützt den Wahlprozess vor einer falschen Deutung der Zustellung.

Intern zählt das Panel Treffer und erfolgreich eingereihte Nachrichten. Findet eine Klasse Datensätze, kann aber keine Nachricht einreihen, markiert das Ergebnis einen Betriebsfehler. Dadurch wird „kein Treffer“ von „Treffer, aber kein Versandstart“ unterschieden. Die Warteschlange bestätigt indes weder Zustellung noch zulässige Ausübung.

Eine Unternehmens-Mailbox kann eine Nachricht abweisen oder isolieren. Eine Verzögerung kann ein Wahlfenster überschreiten. Ein Funktionspostfach kann inzwischen von anderen Personen betreut werden. Umgekehrt kann ein berechtigter Empfänger wegen eines Mailfehlers leer ausgehen. Warteschlange, Zustellung, Öffnung, Nutzung und Widerruf bleiben fünf getrennte Ereignisse.

Ein Default ist noch kein Beschluss

Software-Defaults sparen Arbeit. Bei jeder neuen Wahl muss nicht dieselbe technische Option neu gesetzt werden. Governance verlangt aber mehr als einen Endwert. Sie verlangt einen Grund, einen Verantwortlichen und einen Zeitpunkt.

Wahlen zum Board, zur Fiscal Commission, zur Electoral Commission, zur PDP-Moderation, zum ASO AC oder zum IANA Review Committee können unterschiedliche Wahlkörper, Fristen und Kontrollinstanzen haben. Ein einheitliches Wiederherstellungsmodell mag für alle richtig sein. Diese Gleichbehandlung muss beschlossen werden; sie entsteht nicht dadurch, dass eine Methode jeden Typ gleich behandelt.

Sieht ein Prüfer später ALL, bleiben mehrere Erklärungen offen. Der Modus wurde nach Risikoabwägung bestätigt. Er wurde beim Erstellen geerbt und nie wieder betrachtet. Oder er blieb vorübergehend aktiv, weil eine andere Wiederherstellung ausfiel. Die Spalte bewahrt keine Entscheidungsherkunft.

Auch das Zeitfenster ist zusammengesetzt. Recovery ist nur aktiviert, wenn die Wahl nicht geschlossen und der Modus nicht NONE ist. Die öffentliche Landingpage muss eingeschaltet sein und mindestens die Phase N_1 erreicht haben. Laut Dokumentation besitzt die Wiederherstellung keinen eigenen Kalender.

Die Zielseiten haben dagegen eigene Schranken. Wählen hängt vom Abstimmungszeitraum und vom bereits abgegebenen Votum ab. Nominierung und Unterstützung folgen anderen Phasen und Zuständen. Ein wiederhergestellter Link kann bei Ankunft wirkungslos sein oder noch Entscheidungsmacht tragen. Der Auditpfad muss deshalb vom Versand bis zum nachgelagerten Gate reichen.

CAPTCHA ist eine wirksame Möglichkeit, keine feste Eigenschaft

Das Panel validiert reCAPTCHA nur, wenn Recovery aktiv ist, ein globaler Schalter CAPTCHA vorsieht und ein Site-Key vorhanden ist. Fehlt eine Bedingung, überspringt der Code die Prüfung. Der Quellstand sagt nichts darüber, welche Einstellung eine Live-Wahl verwendet.

Daher wäre sowohl „LACNIC nutzt kein CAPTCHA“ als auch „LACNIC schützt jede Recovery mit CAPTCHA“ unbelegt. Fest steht lediglich: Die Kontrolle ist bedingt, und ALL schaltet sie nicht automatisch ein. Ein Beleg sollte die wirksame Konfiguration festhalten.

Externe Leitlinien helfen, die Beweiskette zu strukturieren, ohne zu LACNIC-Regeln zu werden. OWASP empfiehlt für vergessene Passwörter einheitliche Antworten, vergleichbare Antwortzeiten, kontobezogene Drosselung oder CAPTCHA sowie zufällige, einmalig verwendbare und angemessen ablaufende URL-Token. NIST SP 800-63B verlangt in seinem Kontext digitaler Identitäten eine dokumentierte Risikoanalyse für alternative Wiederherstellungsmethoden und Benachrichtigungen bei Recovery-Ereignissen.

Ein Wahllink ist kein Passwort-Reset, und beide Texte regeln LACNICs Wahlverfahren nicht. Die Parallele liegt nur in der Architektur: Wiederherstellung ist ein eigenständiger Autoritätsvorgang, für den Zustellung, Lebensdauer und Abschluss belegt werden sollten.

Der fixierte Code enthält bereits Teile davon: generische Antwort, Klassenlimit, Wahl-Scope, optionales CAPTCHA und die Übergabe der Client-IP an die Versandoperation. Nicht belegt sind in den geprüften Quellen Token-Entropie, Ablauf, Rotation nach Wiederherstellung, Invalidierung nach Nutzung, tatsächliche Mailzustellung und aktuelle Postfachzuständigkeit. Solche Kontrollen können anderswo existieren. Dokumentarische Unsicherheit ist kein Schwachstellenfund.

Offener Code benötigt eine Deployment-Identität

LACNIC beschreibt sein Fernwahlsystem als Open Source und für Audit und Verifikation zugänglich. Das Repository liefert dafür Substanz. Der Weg vom Formular über drei Datenbestände zu drei Linkklassen und zum Mailversand ist nachvollziehbar. Tests fixieren den Default.

Ein Kompatibilitäts-Commit vom 11. September 2026 aktualisierte Server- und Maven-Bibliotheken und hielt die ALL-Erwartung fest. Der danach liegende Head-Commit ergänzte Tests für auf Platte gespeicherte Excel- und PDF-Uploads. Hash und Zeitpunkt begrenzen die untersuchte Fassung.

Sie verbinden sie nicht mit einer realen Wahl. Ein öffentliches Repository beweist weder das aktive Artefakt noch Parameter, Maildienst oder Netzschutz. Dieser Artikel überschreitet diese Grenze nicht.

Er unterscheidet sich auch von einer früheren BTW-Analyse, die eine E-Mail-Adresse im GET-Pfad einer authentifizierten Berichtssuche untersuchte. Dort ging es um die Verbreitung eines Identifikators in URI-tragenden Schichten. Hier löst eine E-Mail die erneute Zustellung von drei Befugnisklassen aus.

Ein knapper öffentlicher Nachweis je Wahl könnte den Abstand verringern: geprüfte Version, wirksamer Recovery-Modus, aktivierte Linkklassen, Zeitfenster, Automatisierungsschutz und die Rolle, die den Modus genehmigte. Personenbezogene Adressen, IPs, Token und Einzelereignisse bleiben privat.

Der minimale Befugnis-Wiederherstellungsbeleg

Der private Beleg beginnt mit Wahl-ID, Software-Build und Konfigurationsgeneration. Er nennt Wahltyp und Regel. Er unterscheidet, ob ALL, ONLY_BR oder NONE geerbt oder ausdrücklich gewählt wurde, und hält Genehmiger sowie Prüfdatum fest.

Im zweiten Teil bleibt die Befugnisklasse erhalten. „Benutzer“ genügt nicht. Wähler, nominierende Organisation und Nominierungsunterstützer brauchen getrennte, geschützte Referenzen auf ihre Ursprungsdatensätze. Der Beleg hält deren Gültigkeit und das betreffende Handlungsfenster zum Anforderungszeitpunkt fest.

Im dritten Teil wird der Token verfolgt. Wurde ein vorhandener Link erneut gesendet oder ein Ersatz erzeugt? Welche Generation und welches Ablaufdatum galten? Wurde der alte Token ungültig? Endete der neue durch Nutzung, Ablauf, Widerruf oder Ersetzung? Queue- und Zustellstatus stehen nebeneinander.

Der vierte Teil beweist den Abschluss. Ende der Abstimmung, Nominierungsfrist, erledigte Unterstützung und Wahlabschluss sind nicht zwingend derselbe Zeitpunkt. Bleibt eine historische Ansicht erreichbar, muss ihre Nur-Lese-Eigenschaft von Entscheidungsmacht getrennt sein.

Die öffentliche Projektion kann aggregiert bleiben: Version, Modus, Klassen, Fenster, Kontrollstatus, Summen mit Unterdrückung kleiner Kohorten, Invalidierungsregel und Prüfverantwortung. Der sensible Join bleibt geschützt.

Recovery soll nicht unbequemer werden. Sie soll nachvollziehbar sein. Das Postfach bringt einen verlorenen Weg zurück. Der Beleg zeigt, warum die Befugnis auf diesem Weg noch ausgeübt werden durfte.

Quellen