%ELO adaptor reuses a zero IV, breaking AES-GCM security
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 50/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- À l'abandon
- Stack technique
- rust
- Domaine
- cryptography, security
Piste de recherche
Read rust/loro-websocket-client/src/lib.rs:1045-1138 and protocol-e2ee.md first. Trace both encode_elo_snapshot_container and the live subscribe_local_update hook, then ensure each encrypted record gets a fresh 12-byte IV while retaining it in the record header for decryption. Done means the zero IV is no longer reused under the same key.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
rust/loro-websocket-client/src/lib.rs:1045-1138
- The %ELO client sets the IV to [0u8; 12] in both encode_elo_snapshot_container and the live
subscribe_local_update hook. Every encrypted record therefore repeats the same AES-GCM nonce under the
same key. - protocol-e2ee.md mandates 96-bit unique IVs and warns against reuse; violating that lets an attacker
recover XORs of plaintexts and eventually the key. - Fix: Plug in a CSPRNG (e.g. rand::rngs::OsRng) or a durable per-key counter to emit fresh IVs, and keep
embedding the 12-byte IV in the record header so receivers can decrypt.
- Langage dominant
- TypeScript
- Étoiles
- 41
- Forks
- 12
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de loro-dev/protocol
-
Difficulté 3/5 1-2 jours Accessibilité débutants 76/100
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 25/100
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
-
bug
Difficulté 3/5 1-2 jours Accessibilité débutants 48/100
Toutes les issues de loro-dev/protocol
Issues similaires
-
area: frontend priority: normal
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
formbricks/formbricks#9918 ·
Les mainteneurs répondent en général sous 1 jour
-
Chat: Resize question overlayOuverteenhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
thecodacus/pithagoras#364 ·
Les mainteneurs répondent en général sous 1 jour
-
TestAutonomousStop_ReportsObservedState fails under host load: 1s wall-clock ceiling vs 250ms cycleOuvertetype:bug
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
nightgauge/nightgauge#2909 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
Les mainteneurs répondent en général sous 1 jour