Chaîne de résolution expéditeur-avatar pour la boîte aux lettres

FeatureSecurityService
Expédié
3 août 2026 à 02:31 UTC
Auteur
Kamo
Commite
46af581

Résout l'adresse e-mail d'un correspondant à une photo, travaillant à partir de quoi Kamo sait déjà: photo du membre, puis une photo de quelqu'un attaché à un contact, puis le répertoire Microsoft/Google connecté du locataire, puis le domaine d'émetteur BIMI marque, puis son favicon, puis Gravatar. Tout ce qui n'a pas été résolu rend une monogramme, donc la chaîne se termine toujours localement. Le niveau d'annuaire vaut la peine d'être appelé: les flux de connexion ici demandent déjà admin.directory.user (Google) et User.ReadWrite.All et Directory.Read.All (Microsoft) aux côtés des champs de courrier, donc pour Workspace et 365 locataires renvoie des photos faisant autorité sans aucun consentement de ré-consentement et aucun tiers impliqué. Il devrait battre quoi que ce soit sur l'internet public et le fera généralement. Deux phases, jamais une. Une demande lit uniquement le cache; les inconnues vont à un borné Travailleur avec DiscardPolicy - exécuter une tâche débordée sur l'appelant irait à une main un fil de discussion à un hôte tiers, et une résolution rejetée ne coûte rien Parce que le prochain sondage demande à nouveau. Une chaîne àdisque complète est DNS plus quatre appels HTTP, et une page transporte des dizaines d'adresses; rien sur l'ouverture d'un dossier peut dépendre sur la disponibilité des tiers. Le découplage empêche également la résolution de se corréler avec un homme ouvrant un message, ce qui ferait d'elle un reçu de lecture - l'exacte comportement, la boîte aux lettres bloque déjà par défaut pour des images distantes. Il s'agit du premier fetcher de la plate-forme dont l'URL cible est choisie par un non-ficeau partie: un enregistrement BIMI est un contenu DNS publié par quiconque possède un domaine d'envoi, Et quiconque devient un domaine d'envoi en envoyant un courrier électronique à un locataire. Il n'y a pas de sortie NetworkPolicy et pas de proxy forward, donc les contrôles sont en code. SafeImageFetcher Pins DNS - un résolveur personnalisé mains OkHttp uniquement les adresses qui sont passées PublicHostGuard, fermer la fenêtre de reliure qui défait un pré-vol naif vérifier - refuse les redirections, caps octets comme ils ruissellent plutôt que confiant Longueur de contenu, et nécessite un contenu d'image. SvgSanitizer analyse et résérialise contre une liste de permis au lieu de matriciarisation. Batik 1.17 résout les ressources externes par défaut, donc en lui donnant un SVG hostilement dérimrait l'image à l'intérieur du cluster après le contrôle URL déjà passé. Le profil Tiny PS interdire cela est une déclaration sur les fichiers conformes, pas sur les octets récupérés à partir de l'URL d'un attaquant. La sémantique de raté par le fournisseur est tout autre et tout l'empoisonnement de cache si elle est traitée comme hits: Gravatar est demandé avec d-404 parce que tous les autres retours par défaut 200 avec un L'absence d'espace réservé par Google est un 404 portant un globe d'identité byte, donc c'est rejeté par le hash de contenu; DuckDuckGo retourne 404 avec un corps d'image réel, donc le statut décide. Les octets sont ré-hébergés sous un nom aléatoire - jamais dérivé de l'adresse, qui permettrait à quiconque de déterminer si une personne donnée correspond à cette plate-forme - et a servi par une voie authentifiée. Redis ne détient que des métadonnées. Cette instance est 2GB avec allkeys-lru sur un sale vide, partager un espace clé avec chaque session en direct; les octets d'image de mise en cache là-bas isation seraient évincements les sessions et les désignons au hasard.

Tous les changements

Comme ce que tu vois expédier ?

Chacune de ces mises à jour atterrit automatiquement dans votre espace de travail. Commencez gratuitement et regardez-le grandir semaine après semaine.

Commencez gratuitement pour toujoursPrix de visualisation