Home ¦ Archives ¦ Atom

Abuser de l'interface mail de Sympa

Le logiciel de gestion de listes de discussions et de diffusion Sympa propose une « interface mail », qui permet, en envoyant des mail, d'intéragir avec le système.

D'après un bout de la documentation, notamment la page d'index, on a:

Sympa mail interface is comparable to other well known mailing list softwares. Commands (subscribe, review, lists,...) are sent to an email address unique for each virtual robot. Each mailing list has a main address for sending messages and associated administative addresses (-request, -owner, -unsubscribe,...).

Il se trouve qu'en connaissant le mail d'un administrateur d'une liste utilisant sympa, il est possible d'abuser de cette interface en spoofant cette adresse email, i.e. le champ From du header (la RFC #7208 précise d'ailleurs que ce champ peut être modifié par un attaquant pour induire en erreur le destinataire). Il est donc possible, en changeant son identité (fonctionnalité par exemple disponible dans le logiciel thunderbird), d'inscrire quelqu'un à une liste de diffusion a priori modérée et fermée. Une fois cette personne inscrite, elle a la possibilité de télécharger l'ensemble des archives de la liste, qui contiennent potentiellement des informations sensibles.

Il suffit en pratique d'envoyer un mail à l'adresse sympa@listes.truc.tld, avec le contenu suivant: add nom_de_la_liste adresse_que_l'on_souhaite_ajouter@truc.tld.

Dans un monde idéal, où DKIM (DomainKeys Identified Mail) permettrait la vérification du header From (là où Sender Policy Framework vérifie le Envelope-From), cette « faille » n'aurait aucune conséquence. Mais, en pratique, ça fonctionne: l'ensemble des systèmes de gestion de liste de diffusion Sympa que j'ai croisé pour l'instant sont vulnérables à cette « faille ».

Un « workaround » simple, de facilité, serait de désactiver l'interface Mail de Sympa. Une autre solution serait de forcer à l'émission d'un mail de confirmation pour ces actions, quelles qu'elles soient, qui permettrait de vérifier que l'auteur du mail a en effet bien accès à la boite mail, ou de refuser simplement les mails sans signature DKIM valide.

À titre d'information, les commandes suivantes sont disponible (et souvent listées sur http://domain.tld/sympa/help/mail_commands).

Commands for users

  • HELP: receive a list of all available commands
  • LISTS: receive a list of all lists managed on the server
  • WHICH: receive a list of all lists to which you are subscribed
  • CONFIRM key: confirm sending of a message (according to the way the list is configured)
  • QUIT: indicates the end of the commands (used to ignore a signature)

  • INFO list: get information about the list

  • REVIEW list: receive a list of all list members
  • SUBSCRIBE list name: subscription (or subscription confirmation) to the list
  • INVITE list email: invite someone to subscribe to the list
  • UNSUBSCRIBE list email: unsubscribe from the list. The email address is required only if you want to unsubscribe with an address other than the address with which you send the message
  • UNSUBSCRIBE * email: unsubscribe from all the lists to which you are subscribed

  • SET list NOMAIL: suspend receipt of the list's messages

  • SET list DIGEST: receive messages in digest mode
  • SET list DIGESTPLAIN: receive messages in digest mode (plain text)
  • SET list SUMMARY: only receive the message list
  • SET list NOTICE: only receive the message subjects
  • SET list MAIL: normal message delivery mode
  • SET list CONCEAL: become unlisted (hidden subscriber address)
  • SET list NOCONCEAL: subscriber address visible via REView

  • INDEX list: receive the list of the archive files

  • GET list file: receive a file of the list archive
  • LAST list: receive the list's most recent message

Commands for list owners

  • ADD list email name: add a member to the list
  • DEL list email: remove a subscriber from the list
  • STATS list: check the statistics for the list
  • REMIND list: send to all subscribers a personalized reminder with the address with which he/she is subscribed to the list

Commands for list moderators

  • DISTRIBUTE list key: approve of a message
  • REJECT list key: reject a message to be moderated
  • MODINDEX list: check the list of messages to be moderated

© Rémy G.. Built using Pelican. Theme by Giulio Fidente on github.