-
-
Notifications
You must be signed in to change notification settings - Fork 10.7k
Description
Verification
- This issue's title and/or description do not reference a single formula e.g.
brew install wget. If they do, open an issue at https://github.com/Homebrew/homebrew-core/issues/new/choose instead.To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.
Provide a detailed description of the proposed feature
--no-quarantine is used to forcibly bypass Gatekeeper, which is a built-in macOS security mechanism. This is used to run unsigned/unnotarized applications.
macOS Tahoe is the final release to support Intel systems, and last year Apple updated macOS runtime protection to make it harder to override Gatekeeper. Macs with Apple silicon also don't "permit native arm64 code to execute unless a valid signature is attached". Finally, we are ending support for all casks that fail Gatekeeper checks on September 1st, 2026.
With the above in mind, it's time to deprecate the --no-quarantine flag from brew. It intentionally bypasses macOS security mechanisms, which we already actively discourage. Deprecating now will give a decent lead time for users using it to come up with another solution or adjust their workflows.
What is the motivation for the feature?
Intel support is coming to an end from both Apple and Homebrew. This flag is primarily used to override a macOS security mechanism, which we do not want to encourage. Since we are requiring casks fulfill Gatekeeper checks next year, there is no reason to keep this flag.
How will the feature be relevant to at least 90% of Homebrew users?
We will provide a safer experience for our users, and stop making it easier to bypass OS-level security.
What alternatives to the feature have been considered?
None. Macs with Apple silicon are the platform that will be supported in the future, and Apple is making it harder to bypass Gatekeeper as is.
Activity
MikeMcQuaid commentedon Sep 24, 2025
Agreed we should deprecate in next major or minor release.
carlocab commentedon Sep 24, 2025
This is still set in GitHub Actions: https://github.com/actions/runner-images/blob/21bf85db205313d8e8e584276714f82f8de1740b/images/macos/assets/bashrc#L30
We may want to coordinate with them about this deprecation/removal.
MikeMcQuaid commentedon Sep 24, 2025
We should probably just set it unconditionally ourselves in GitHub Actions, even after this, if it keeps things working or fix the underlying problems here.
xtqqczze commentedon Sep 25, 2025
I think we should keep
--no-quarantineto support third-party taps. Otherwise, if the option is removed entirely, tap maintainers may resort to runningxattr -d com.apple.quarantine /Applications/App.appin a post-install script, which would be worse for overall ecosystem security.I think the best approach would be to deprecate support for
--no-quarantinefrom the environment variableHOMEBREW_CASK_OPTS. This way, we discourage unsafe usage while still allowing controlled opt-in via the CLI.p-linnane commentedon Sep 25, 2025
Keeping a flag that we no longer officially support, in order to allow third-party taps to bypass OS-level security, doesn't feel like a good idea.
MikeMcQuaid commentedon Sep 25, 2025
This is essentially doing the same thing in both cases, it's just that
--no-quarantinelooks like Homebrew officially supports (even recommends) it.xtqqczze commentedon Sep 25, 2025
I’m not sure what the intended security model is here. The proposal would have Homebrew be more restrictive than macOS itself. No sudo privileges are required to run:
Removing
--no-quarantinedoesn’t actually prevent this, it just moves the action into scripts, which may be less transparent and harder to audit.MikeMcQuaid commentedon Sep 25, 2025
We don't want to provide built-in support for bypassing quarantine.
--no-quarantineis easier and better documented than manually runningxattr -d com.apple.quarantine.Leaving it in doesn't prevent it either?
Or may be more transparent and easier to audit!
Respectfully @xtqqczze: you've made your opinion clear. We don't really need any more contributions to this issue. If others want to chime in, particularly maintainers and regular contributors, their input is valued.
gromgit commentedon Sep 25, 2025
I see it as a matter of perceived accountability. Whoever provides a user-friendly way to disable security mechanisms (
--no-quarantineorxattrinpostinstallblocks) will be yelled at by said users when:This will be true even if it's the user who added
--no-quarantinetoHOMEBREW_CASK_OPTS(I've already seen more than a few in postedbrew configoutputs). Rationality doesn't apply here; the user's angry that their system's b0rked by Homebrew-installed software, and is looking for someone to blame, even though they were the ones to silence Gatekeeper.Third-party tap owners who add
xattrto their cask files will correctly be blamed, of course, since they made that choice on behalf of all their users. On that note, I wouldn't mind an "xattr quarantine" audit that's a warning for third-party taps but fatal in core, just to remind tap owners about the implications of their actions.In the end, the whole point of Gatekeeper is to protect end users as much as reasonable, and continuing to make it easy to bypass isn't a good thing in my view.
MikeMcQuaid commentedon Sep 25, 2025
Agreed. This is a good idea.
💯
--no-quarantine. #20929p-linnane commentedon Oct 24, 2025
GitHub has confirmed the removal of this flag will not impact Actions runners, so we are clear to move forward in the next minor release.
cvc5/cvc5/cvc5cvc5/homebrew-cvc5#18mattwaltbriggs commentedon Oct 31, 2025
I am running into an issue with some casks that are being targetted for removal such as wine@devel where one needs to use --no-quarantine to make it work but any sort of upgrade breaks them. I am also aware that some casks require --no-quarantine but are not yet targetted for depreciation. Removing --no-quarantine is going to break quite a lot of stuff.
p-linnane commentedon Oct 31, 2025
There are other ways to bypass Gatekeeper if you must. It's on you to figure those out.
Such as?
aleksey-ge commentedon Nov 2, 2025
Are you joking? Why would anyone need homebrew at all after this? You know, there is AppStore for installing "safe" software on Macs.
p-linnane commentedon Nov 2, 2025
It seems that you don't understand what this flag does, or what it will affect. As I stated above, you can still bypass Gatekeeper if you want, we just won't me the ones making it easy anymore.
aleksey-ge commentedon Nov 3, 2025
It does setxattr(). I can do it myself. I can compile the whole distro myself patching it for the platform I need, including messing around with some drivers. By messing around I mean taking gdb and logic analyzer and digging into why this exact chip does weird things. Not all of them, but I'm quite aware of how this piece of silicon under my keyboard works.
The point of having alternative package manager is letting me NOT DO it myself, while installing things I need, which might or might not be properly signed from Apple's viewpoint. I have it because I trust and value YOUR decisions on curating repository more than Apple's useless Gatekeeper.
I'm also quite aware of distant implications of this and similar decisions. This won't protect your users from anything, it will decrease their security, because stuff they will install anyways won't be updated automatically (or at least there will be no easy way to do it).
I also can imagine why you're going this way.
So no, I'm quite aware of how this works. You don't. Or do not want to.
MikeMcQuaid commentedon Nov 3, 2025
Good. Then you'll trust and value this decision.
Your GitHub profile is blank. This tells me you have never worked on any open source software on GitHub. I have worked on Homebrew for 16 years. I know more about running a package manager than you ever will. Us supporting a security-degrading feature like this does reduce overall ecosystem security. Yes, you can do it yourself manually. That it becomes harder means fewer people are will do so. Homebrew has enough users that if even 1% change behaviour based on this it has a huge impact.
Re-read our code of conduct, adjust (or just stop) your communication in future or you will be blocked from Homebrew.
notDavid commentedon Nov 3, 2025
Note that an unwanted side effect might be, that people will revert to an obvious simple solution/app/script, that will automatically remove the quarantine attribute for ALL new Apps placed in
/Applications. (Or even worse, disable Gatekeeper entirely.)That would create an even unsafer situation, as then not just Homebrew are de-quarantined, but all Apps placed in
/Applicationswould be affected...MikeMcQuaid commentedon Nov 3, 2025
@notDavid I don't see any evidence for that speculation.
Locking this thread. Not interested in arguing the merits of this. It's already been communicated to third parties.