Signal corrige un bug qui envoyait des images aléatoires aux mauvais contacts

0

Signal a corrigé un grave bug dans son application Android qui, dans certains cas, envoyait des images aléatoires involontaires à des contacts sans explication évidente.

Bien que le problème ait été signalé en Décembre 2020, compte tenu de la difficulté de reproduire le bogue, ce n’est que ce mois-ci qu’un correctif a été déployé pour les utilisateurs de l’application de messagerie cryptée de bout en bout d’Android.

Images aléatoires envoyées aux mauvais contacts

Ce mois-ci, Signal a corrigé un bogue affectant les utilisateurs de leurs applications sur Android dans certaines circonstances.

Lors de l’envoi d’une image à l’aide de l’application Signal sur Android à l’un de vos contacts, le contact recevait occasionnellement non seulement l’image sélectionnée, mais également quelques images aléatoires et involontaires, que l’expéditeur n’avait jamais envoyées.

Un exemple de capture d’écran ci-dessous montre comment l’expéditeur (à gauche) a simplement envoyé un GIF dans le cadre d’une conversation textuelle, mais le destinataire (à droite) a obtenu deux images supplémentaires sans explication plausible:

signal bug
Un utilisateur de Signal (à gauche) a envoyé un GIF à un contact qui a reçu plusieurs images involontaires (à droite)

Le problème a été signalé pour la première fois en Décembre 2020 par Rob Connolly sur la page GitHub de l’application. D’autres utilisateurs sont progressivement intervenus pour confirmer les conclusions de Connolly.

Connolly a également déclaré que, étant donné que l’expéditeur n’avait pas envoyé les images supplémentaires, il s’agissait soit de messages « croisés » d’un autre contact du destinataire ou pire, d’une personne inconnue.

Heureusement, dans l’exemple ci-dessus, les images exposées n’étaient pas de nature sensible.

En février de cette année, un autre technologue a confirmé le problème :

« Désolé de revenir dessus, mais je voulais dire que cela se produit régulièrement pour moi maintenant. »

« Chaque fois que j’envoie des images ou des liens (avec un aperçu), d’autres images ou images des aperçus de liens sont également envoyées au récepteur (peu importe si elles étaient au courant des images précédentes). »

« C’est arrivé au point où j’envoie les images sur mon bureau via ‘note to self’ (qui présente le même comportement), puis je télécharge l’image et l’envoie à la bonne personne », a déclaré Christopher M. Hobbs dans le même fil.

Bug causé par une « intersection rare » des propriétés de la base de données

À la suite du rapport initial de décembre 2020, l’équipe de Signal a immédiatement demandé des logs, afin de déboguer et de résoudre le problème.

Mais il a fallu un certain temps et des efforts pour reproduire efficacement le problème.

En tant que tel, ce n’est que le mois dernier qu’une version corrigée de l’application Signal d’Android a été déployée.

« C’est fou. Ce bogue devrait être la priorité numéro 1 pour Signal en ce moment et pourtant tout ce qu’ils font est de demander des logs et d’apporter des améliorations qui ne sont pas aussi importantes que de résoudre ce problème. C’est un bogue qui devrait tuer Signal, honnêtement », s’est plaint InfiniteLight, un défenseur de la sécurité et de la confidentialité.

Un autre utilisateur, Adrian Ostrowski, a déclaré qu’un bogue comme celui-ci empêchait effectivement de partager des images de manière confidentielle via Signal.

Ce à quoi le développeur Android de Signal, Greyson Parrelli, a répondu qu’un correctif avait été déployé dans la version 5.17 de l’application Signal d’Android, publiée le mois dernier.

Parelli est également intervenu sur un fil de discussion YCombinator Hacker News indiquant que Signal prend très au sérieux les bogues comme ceux-ci:

« En fait, nous prenons des problèmes comme celui-ci très au sérieux. Ce bogue était extraordinairement rare, et comme nous n’avons pas de métriques/collecte de logs à distance, il y a eu une période initiale où nous avons dû passer du temps à ajouter des logs et à collecter des logs soumis par les utilisateurs pour essayer de le retrouver. »

« Dès que nous avons pu trouver le fil conducteur, c’était tout ce sur quoi nous travaillions et nous avons pu trouver une solution très rapidement », a déclaré le développeur.

signal
Google Play Store montre que la dernière version 5.17.3 est sortie le 19 juillet 2021

Pour les personnes intéressées, le problème provenait du fait que les champs « ID » n’étaient pas configurés pour s’incrémenter automatiquement dans les tables de base de données SQLite utilisées par l’application.

Les commits de correction[1, 2] partagés par Signal montre que « AUTOINCREMENT » a maintenant été ajouté à quelques tables qui nécessitaient cette propriété:

signal correction
Les correctifs ont ajouté le mot-clé « AUTOINCREMENT » au champ ID (GitHub)

« Pour un certain contexte, ce bogue est survenu comme une intersection rare de certaines propriétés de base de données et d’un bogue distinct. »

« Le TL;DR est que si quelqu’un avait une conversation coupée, cela pourrait créer une situation rare où un ID de base de données était réutilisé d’une manière qui pourrait entraîner ce comportement. »

« C’était très difficile à retrouver, avec des phases antérieures impliquant l’obtention d’une connexion supplémentaire dans les versions. »

« Une fois que nous avons eu plus d’informations, cela est en fait devenu notre priorité absolue, un correctif a été apporté et nous l’avons sorti aussi rapidement et en toute sécurité que possible. Le correctif lui-même devrait faire en sorte que les problèmes de base de données comme celui qui a causé ce bug ne peuvent plus se reproduire », a conclu Parelli dans sa réponse sur GitHub.

Pour le moment, le problème semble n’avoir affecté que la version Android de l’application.

Les utilisateurs de l’application Signal d’Android doivent mettre à jour vers la dernière version de l’application, disponible sur le Google Play Store.

Laisser un commentaire