- Dans la bêta et la release candidate de macOS 14 Sonoma, le pare-feu PF ne filtre pas correctement le trafic, ce qui empêche l’application VPN de Mullvad de fonctionner normalement
- Si certains réglages comme le partage du réseau local sont activés, cela peut entraîner des fuites de trafic, et Mullvad estime donc qu’il est difficile de garantir les fonctionnalités et la sécurité sur macOS 14
- Mullvad a enquêté sur le problème après la 6e bêta et l’a signalé à Apple, mais le bug est toujours présent dans les bêtas suivantes et dans la release candidate
- L’entreprise a examiné s’il était possible de contourner le problème via un correctif de l’application elle-même, mais n’a pas trouvé de solution sûre ; au fond, une correction du pare-feu par Apple est nécessaire
- Les utilisateurs qui dépendent du filtrage PF ou les applications associées doivent faire preuve de prudence avant de passer à macOS 14 et, si le bug persiste, il est plus sûr de rester sur macOS 13 Ventura
Problème de pare-feu PF dans macOS 14 Sonoma
- Pendant la période bêta de macOS 14 Sonoma, Apple a introduit un bug dans packet filter (PF), le pare-feu de macOS
- À cause de ce bug, l’application VPN de Mullvad ne fonctionne pas et, si certains réglages sont activés, des fuites de trafic peuvent se produire
- Le partage du réseau local est cité comme exemple de réglage
- Mullvad a enquêté sur le problème après la sortie de la 6e bêta de macOS 14 et a signalé le bug à Apple
- Le même problème persiste ensuite dans les bêtas de macOS 14 et dans la release candidate
- Mullvad a évalué la possibilité de corriger uniquement l’application VPN afin de préserver à la fois le fonctionnement et la sécurité sur macOS 14, mais considère qu’il n’existe pour l’instant aucune bonne solution
- La portée du problème ne se limite pas à l’application VPN de Mullvad
- Les règles du pare-feu ne s’appliquent pas correctement au trafic réseau
- Du trafic qui ne devrait pas être autorisé peut passer
- Les utilisateurs qui dépendent du filtrage PF ou les applications qui l’utilisent en arrière-plan doivent être prudents avant de passer à macOS 14
- La sortie de macOS 14 Sonoma est prévue pour le 26 septembre et, si le bug persiste, il est recommandé aux utilisateurs de Mullvad de rester sur macOS 13 Ventura jusqu’à ce qu’un correctif soit disponible
Étapes de reproduction et résultat réel
- Le problème peut être reproduit sur macOS 14, et cette expérience efface les règles de pare-feu chargées dans PF
- Dans le terminal, créez une interface de journalisation virtuelle, puis surveillez le trafic correspondant aux règles qui seront ajoutées ensuite
sudo ifconfig pflog1 create
sudo tcpdump -nnn -e -ttt -i pflog1
- Écrivez les règles de pare-feu suivantes dans le fichier
pfrules
pass quick log (all, to pflog1) inet from any to 127.0.0.1
block drop quick log (all, to pflog1)
- Dans un autre terminal, activez PF et chargez les règles
sudo pfctl -e
sudo pfctl -f pfrules
ping 45.83.223.209
- Le résultat attendu est que le ping soit bloqué, car il ne correspond pas aux conditions de l’unique règle
pass, et que le trafic soit enregistré dans pflog1 comme correspondant à la règle block
- En réalité, le ping part sur Internet et une réponse revient, tandis qu’aucun trafic n’est enregistré dans
pflog1
- Après l’expérience, désactivez le pare-feu et effacez toutes les règles
sudo pfctl -d
sudo pfctl -f /etc/pf.conf
1 commentaires
Commentaires Hacker News
Le même bug de PF casse aussi une fonctionnalité réseau d’OrbStack.
Quand j’ai réussi à isoler la cause jusque-là, j’avais du mal à y croire, mais il semble que je ne sois pas le seul. J’espère vraiment que ce sera corrigé avant la sortie de la version stable.
Je n’ai pu le signaler à Apple qu’hier, mais cela ressemble à une régression assez récente, probablement apparue autour de la beta 6.
PF est censé être un pare-feu où la dernière règle correspondante s’applique, mais macOS semble se comporter presque comme si la première règle correspondante l’emportait. Une règle
blockplacée plus haut écrase des règlespassd’autres ancres même sansquick, ce qui pose évidemment problème.Si la version stable sort dans cet état, ce serait inacceptable et, à titre personnel, ce serait une raison d’abandonner Mac OS. Si Apple veut que ce soit utilisé pour du travail sérieux, il ne faut pas livrer un produit avec ce genre de régression.
L’article est très concis et instructif, et j’apprécie qu’il inclue même des étapes de reproduction du bug simples.
J’aime bien Mullvad.
À côté de ça, macOS a eu pas mal de bugs étranges de pare-feu au fil des dernières versions, et je me demande pourquoi ils ont fini par refondre toute cette partie.
Quelle que soit votre machine locale et votre système d’exploitation, vous pouvez faire passer la navigation par un serveur dédié. Cela n’englobe pas toute la connectivité réseau, seulement la navigation, mais dans ce périmètre cela permet de changer d’adresse IP, de masquer l’emplacement et d’ajouter une protection contre les zero-days de navigateur.
BrowserBox continue d’ajouter des fonctions qui respectent et protègent la vie privée, tout en améliorant l’expérience globale. C’est open source, donc vous pouvez le modifier comme vous le souhaitez. Si l’AGPL-3.0 ne vous convient pas, une licence commerciale est aussi possible : https://github.com/dosyago/BrowserBoxPro
Si vous n’aimez pas l’open source et préférez le confort d’une grande entreprise, Mullvad semble aussi proposer Mullvad Browser, qui fait quelque chose de similaire.
Un ancien article lié : https://9to5mac.com/2015/05/26/apple-drops-discoveryd-in-lat...
Ce code de reproduction est vraiment agréable à lire.
Bien sûr, c’est bien le périmètre du bug, mais je ne trouve pas ce test particulièrement sophistiqué ni élégant.
Je ne sais pas si c’est lié, mais juste après les deux dernières mises à niveau de macOS, le réseau ne fonctionnait plus.
Je pouvais me connecter au Wi‑Fi, à l’Ethernet et au partage de connexion, mais aucune connexion réelle, comme dans le navigateur ou avec ping, ne fonctionnait, et je ne pouvais même pas atteindre le routeur.
Dans les deux cas, il a suffi d’ouvrir une fois l’app Mullvad VPN pour que tout refonctionne. Je ne sais pas pourquoi le simple fait d’ouvrir l’app corrige le problème.
Ce n’est pas tout à fait lié, mais il existe aussi un autre vieux bug : un bug vieux de 11 ans dans
Popen()sur macOS : https://news.ycombinator.com/item?id=37238433Pour info, j’avais des problèmes de connexion avec Mullvad.app, mais en lançant la configuration Mullvad WireGuard dans Wireguard.app, cela fonctionnait correctement.
J’ai récemment installé la dernière beta de Sonoma et je comprends maintenant pourquoi je n’arrivais pas à faire fonctionner Mullvad, quoi que je tente.
Je suis soulagé que Mullvad travaille sur un contournement. Ce matin, j’envisageais même de revenir à Ventura ; j’ai maintenant l’impression que mon problème était bien celui-là.
Je suis content que Mullvad mette davantage de pression publique sur ce problème. Ce bug était clairement visible et assez préoccupant.
Le texte original dit : « we have investigated this issue after the 6th beta was released and reported the bug to Apple ».
Dans mon cas, la solution a été de télécharger la configuration WireGuard et d’utiliser l’app Wireguard.
PostUpetPostDowndans la configuration WireGuard. Dans ce cas, difficile de vraiment appeler ça une solution.Question : si
pflog1n’est pas créé, pf fonctionne-t-il comme prévu ?Si
tcpdumpn’enregistre rien sortant verspflog1, cela semble indiquer que les données ne sont pas envoyées àpflog1. Cela voudrait dire que le problème se situe en amont.pflog1était-elle connectée et active ? Autrefois, il fallait connecter et activer l’interface manuellement. MacOS le fait-il automatiquement ?Bien sûr, ce n’est pas au rapporteur du bug d’isoler cela. Mais à un moment donné, l’ingénieur chargé du dossier posera ce genre de questions, donc autant préparer les réponses.
ifconfig pflog1 destroy