Ton Mac affiche « Aucun accès » pour une app, mais elle lit quand même tes fichiers. Depuis 2019

macOS grave un accès permanent sur tes fichiers quand tu utilises le sélecteur Open/Save. L'interface Confidentialité & Sécurité ne le montre pas. Depuis 2019.

Quand tu ouvres un fichier via le sélecteur natif d’une app, macOS grave un attribut directement sur le fichier. Cet attribut accorde à l’app un accès permanent, indépendant des réglages Confidentialité & Sécurité. Tu peux révoquer l’app dans les Réglages Système, l’interface affichera « Aucun accès », et l’app continuera de lire. Depuis 2019. Sans que tu le saches.

Ce qui se passe

Howard Oakley, chercheur macOS reconnu et auteur du blog Eclectic Light, a publié début avril 2026 une démonstration qui tient en une phrase : l’interface Confidentialité & Sécurité de macOS ment sur les accès réels des applications à tes fichiers.

Le mécanisme s’appelle com.apple.macl. C’est un attribut étendu, un petit marqueur que macOS colle directement sur le fichier ou le dossier ciblé. Il est créé automatiquement quand tu utilises le sélecteur Open/Save d’une app, quand tu fais un glisser-déposer depuis le Finder, ou quand tu double-cliques sur un fichier pour l’ouvrir avec une app.

Cet attribut contient deux identifiants : un pour l’app, un pour le fichier. Une fois gravé, l’app peut accéder au fichier sans repasser par la case permission. C’est géré par le noyau (Sandbox.kext), pas par le système TCC classique qui alimente les réglages que tu vois dans Réglages Système.

Et c’est là que ça coince. Réglages Système > Confidentialité & Sécurité lit uniquement la base de données TCC. Elle ne voit pas les attributs com.apple.macl. Résultat : tu révoques l’accès d’une app dans les réglages, l’interface affiche « Aucun accès », et l’app conserve son accès via le xattr. Oakley l’a démontré avec son outil de test Insent, notarisé par Apple, reproductible par n’importe qui.

Pourquoi c’est important pour toi

Ce n’est pas un bug. Apple a présenté ce mécanisme à la WWDC 2019 (Session 701) sous le nom “User Intent”, en opposition au “User Consent” classique du système TCC. L’idée : quand tu choisis explicitement un fichier dans le sélecteur, ton geste vaut autorisation permanente. Pas besoin de redemander.

Le problème n’est pas le principe. C’est que l’interface censée te montrer qui a accès à quoi ignore complètement ce canal. Tu penses avoir un tableau de bord fidèle de tes autorisations. En réalité, tu regardes la moitié du tableau.

Et ce mécanisme est actif depuis macOS Catalina (2019). Sept ans. Confirmé fonctionnel sur Tahoe (macOS 26). Jamais documenté publiquement par Apple de manière complète. Jeff Johnson, développeur macOS, écrivait en 2019 : “there’s no documentation of this important privacy protections change.”

Concrètement, ça veut dire que chaque fois que tu as utilisé Open/Save, glisser-déposer ou double-clic pour accéder à un fichier dans Desktop, Documents ou Downloads, l’app a potentiellement reçu un accès persistant que les réglages macOS ne reflètent pas.

Un thread Hacker News à 511 points confirme l’ampleur de la surprise dans la communauté technique. Plusieurs développeurs rapportent qu’Apple aurait classé le comportement comme “expected behavior” quand il a été signalé.

Ce que tu dois faire

Concrètement :

1. Vérifie si tes dossiers protégés portent des attributs macl. Ouvre Terminal et tape : xattr -l ~/Desktop | grep com.apple.macl Répète pour ~/Documents et ~/Downloads. Si tu vois des résultats, des apps ont un accès persistant invisible dans les réglages.

2. Pour révoquer un accès macl sur un fichier sensible, la méthode la plus accessible : copie le fichier vers un autre volume (clé USB, disque externe, autre partition), supprime l’original, recopie le fichier. La copie n’hérite pas du xattr com.apple.macl. C’est artisanal, mais ça fonctionne.

3. L’alternative technique : démarrer en mode Recovery et lancer xattr -d com.apple.macl <chemin_du_fichier>. Ça nécessite de désactiver SIP temporairement, ce qui n’est pas anodin. À réserver aux utilisateurs qui savent ce qu’ils font.

4. Ce qui ne suffit pas : tccutil reset All <bundle_id> suivi d’un redémarrage. Cette commande réinitialise la base TCC, pas les xattr macl. Oakley lui-même le reconnaît dans son article. Le redémarrage seul ne change rien non plus, l’attribut est gravé dans le système de fichiers, il survit au reboot.

5. Revois les réglages privacy de ton Mac. Ils restent utiles pour contrôler le canal TCC (localisation, micro, caméra, contacts). Mais garde en tête qu’ils ne couvrent pas ce second canal d’accès.

L’article #16 te guide à travers les réglages que tu contrôles. Ce Radar te montre ceux que tu ne contrôles pas, du moins pas depuis l’interface prévue à cet effet.

À lire : Privacy macOS, les paramètres à changer immédiatement

Des termes techniques ? Consulte le glossaire.

Sources