Tahoe 26.5から自作スクリプトが、「悪質なスクリプトはブロックされました」と表示されて停止させられる

Tahoe 26.5より前から、自作のスクリプトをターミナル.appでコマンドラインから起動して使っていました。

Tahoe 26.5にアップデートしてから、そのスクリプトを実行していると、ちょくちょく「悪質なスクリプトはブロックされました」というウィンドウがポップアップして、そのスクリプトを起動していた親シェルごとプロセスが停止させられています。



ネットで調べると、[設定]の[プライバシーとセキュリティ]の[セキュリティ]のところに、ブロックされたことが表示されて、それを許可すれば、以後動作できるようになると書かれていましたが、[プライバシーとセキュリティ]には、スクリプトがブロックされたことに該当するようなものは見当たりません。

また、[設定]の[プライバシーとセキュリティ]の[デベロッパツール]でターミナル.appを有効にして、その後ターミナル.appを起動し直したり、OSを再起動してみましたが、やはりブロックされてしまいました。


同じスクリプトを、ターミナル.appの複数のタブで並列に実行したりもしていますが、停止させられるタブと、そのまま最後まで走り切るタブがあり、停止させられるタブは少数派です(感覚的に、1,2割の確率くらい)。何度も実行し直せば、そのうち最後まで走り切るのが救いですが...


自作のスクリプトなので、スクリプト自体にcom.apple.quarantine拡張属性はついていませんが、nodejsのスクリプトなので、nodejs自体(本家サイトからダウンロードしたものなので)には、com.apple.quarantine属性がついています。


GateKeeperをオフにすれば解消するかもしれませんが、自作以外のスクリプトからは守って欲しいので、それは避けたいと思っています。


自作スクリプトの実行がブロックされないようにするいい方法はないでしょうか?

また、ブロックしたのに、[設定]の[プライバシーとセキュリティ]の[セキュリティ]のところに表示されないのも不思議です。


MacBook Pro 16″, macOS 26.5

投稿日 2026/05/26 16:17

返信
スレッドに付いたマーク ランキングトップの返信

投稿日 2026/05/27 16:33

情報のご提供、ありがとうございます。


[設定]の[プライバシーとセキュリティ]の[セキュリティ]に表示されるのは、おそらくダウンロードしたアプリやノータリゼーションのついてないアプリの時で、私もダウンロードしたアプリを実行した時に何度か目にして、許可したことはあります。

しかし、今回の自作スクリプトに対する「悪質なスクリプトはブロックされました」は、それとは別口みたいです。


Automatorを使ってアプリを作って、「MyScript.app/Contents/MacOS/Automator Application Stub」を使えば、Gatekeeperを回避できるかもというのは、面白いアプローチだったので試してみました。

しかし、スクリプトの使い方が、


% myscript subcmd1 arg1 arg2 && myscript subcmd2 arg1
出力を確認
コマンドヒストリーを戻って引数を変更
% myscript subcmd1 arg3 arg4 && myscript subcmd2 arg5
そんな感じの繰り返し...


みたいなCUI前提のものなので、Automatorの引数の扱い、標準出力をスルーしてくれないなどの理由で断念しました。


最悪、ノータリゼーションすれば回避できそうな気がしますが、たかが「自作ツールのためにそこまでする気には...」という感じです。


ブロックされた際のログを確認したところ、下記のように、malware blockの記録に失敗しているようで、そのために[プライバシーとセキュリティ]の[セキュリティ]に表示されず、許可もできないようです。ディスクの空きもあるので、記録に失敗しているのは多分バグなので、Appleのフィードバックでレポートしました。修正されることを祈りつつ、しばらくはブロックされたら根気良く再実行しようと思います(あるいは、自作スクリプトを使うときだけ、nodeのcom.apple.quarantine拡張属性を消してみるとか)。


% log show --last 10m --predicate 'subsystem == "com.apple.syspolicy"' --info
Filtering the log data using "subsystem == "com.apple.syspolicy""
Skipping debug messages, pass --debug to include.
Timestamp                       Thread     Type        Activity             PID    TTL  
2026-05-27 15:30:15.950535+0900 0xd0c47    Error       0x0                  499    0    syspolicyd: [com.apple.syspolicy:default] SQL error '<private>' (19)
2026-05-27 15:30:15.950540+0900 0xd0c47    Error       0x0                  499    0    syspolicyd: [com.apple.syspolicy:default] Step error (19) on query: INSERT INTO historic_malware_blocks (timestamp, cdhash) VALUES (?1, ?2)
2026-05-27 15:30:15.950560+0900 0xd0c47    Error       0x0                  499    0    syspolicyd: [com.apple.syspolicy:default] SQL error '<private>' (19)
2026-05-27 15:30:15.950562+0900 0xd0c47    Error       0x0                  499    0    syspolicyd: [com.apple.syspolicy:default] Finalize error (19) on query: INSERT INTO historic_malware_blocks (timestamp, cdhash) VALUES (?1, ?2)
2026-05-27 15:30:15.950564+0900 0xd0c47    Error       0x0                  499    0    syspolicyd: [com.apple.syspolicy:default] Failed to mark malware block: 19
2026-05-27 15:30:15.951127+0900 0xd0c47    Default     0x0                  499    0    syspolicyd: [com.apple.syspolicy:default] Recorded malware block for identifier=<private> path=(none)
--------------------------------------------------------------------------------------------------------------------
Log      - Default:          1, Info:                0, Debug:             0, Error:          5, Fault:          0
Activity - Create:           0, Transition:          0, Actions:           0


返信: 5
スレッドに付いたマーク ランキングトップの返信

2026/05/27 16:33 はに への返信

情報のご提供、ありがとうございます。


[設定]の[プライバシーとセキュリティ]の[セキュリティ]に表示されるのは、おそらくダウンロードしたアプリやノータリゼーションのついてないアプリの時で、私もダウンロードしたアプリを実行した時に何度か目にして、許可したことはあります。

しかし、今回の自作スクリプトに対する「悪質なスクリプトはブロックされました」は、それとは別口みたいです。


Automatorを使ってアプリを作って、「MyScript.app/Contents/MacOS/Automator Application Stub」を使えば、Gatekeeperを回避できるかもというのは、面白いアプローチだったので試してみました。

しかし、スクリプトの使い方が、


% myscript subcmd1 arg1 arg2 && myscript subcmd2 arg1
出力を確認
コマンドヒストリーを戻って引数を変更
% myscript subcmd1 arg3 arg4 && myscript subcmd2 arg5
そんな感じの繰り返し...


みたいなCUI前提のものなので、Automatorの引数の扱い、標準出力をスルーしてくれないなどの理由で断念しました。


最悪、ノータリゼーションすれば回避できそうな気がしますが、たかが「自作ツールのためにそこまでする気には...」という感じです。


ブロックされた際のログを確認したところ、下記のように、malware blockの記録に失敗しているようで、そのために[プライバシーとセキュリティ]の[セキュリティ]に表示されず、許可もできないようです。ディスクの空きもあるので、記録に失敗しているのは多分バグなので、Appleのフィードバックでレポートしました。修正されることを祈りつつ、しばらくはブロックされたら根気良く再実行しようと思います(あるいは、自作スクリプトを使うときだけ、nodeのcom.apple.quarantine拡張属性を消してみるとか)。


% log show --last 10m --predicate 'subsystem == "com.apple.syspolicy"' --info
Filtering the log data using "subsystem == "com.apple.syspolicy""
Skipping debug messages, pass --debug to include.
Timestamp                       Thread     Type        Activity             PID    TTL  
2026-05-27 15:30:15.950535+0900 0xd0c47    Error       0x0                  499    0    syspolicyd: [com.apple.syspolicy:default] SQL error '<private>' (19)
2026-05-27 15:30:15.950540+0900 0xd0c47    Error       0x0                  499    0    syspolicyd: [com.apple.syspolicy:default] Step error (19) on query: INSERT INTO historic_malware_blocks (timestamp, cdhash) VALUES (?1, ?2)
2026-05-27 15:30:15.950560+0900 0xd0c47    Error       0x0                  499    0    syspolicyd: [com.apple.syspolicy:default] SQL error '<private>' (19)
2026-05-27 15:30:15.950562+0900 0xd0c47    Error       0x0                  499    0    syspolicyd: [com.apple.syspolicy:default] Finalize error (19) on query: INSERT INTO historic_malware_blocks (timestamp, cdhash) VALUES (?1, ?2)
2026-05-27 15:30:15.950564+0900 0xd0c47    Error       0x0                  499    0    syspolicyd: [com.apple.syspolicy:default] Failed to mark malware block: 19
2026-05-27 15:30:15.951127+0900 0xd0c47    Default     0x0                  499    0    syspolicyd: [com.apple.syspolicy:default] Recorded malware block for identifier=<private> path=(none)
--------------------------------------------------------------------------------------------------------------------
Log      - Default:          1, Info:                0, Debug:             0, Error:          5, Fault:          0
Activity - Create:           0, Transition:          0, Actions:           0


2026/05/26 20:57 LunLunTaTaTa への返信

以下のサポート記事の方法でそのスクリプトを実行できるようにできませんか?

アプリが悪質なソフトウェアであるかどうかAppleで確認できない - Apple サポート (日本)


>ブロックしたのに、[設定]の[プライバシーとセキュリティ]の[セキュリティ]のところに表示されない


表示されるのは、問題のスクリプトを実行しようとした直後から1時間程度ということです。この間にそのまま開くにすれば、例外として保存され、以後他の正規のアプリと同じように実行できるとしてます。

2026/05/28 13:26 LunLunTaTaTa への返信

追加情報です。もう少し詳しくログを確認してみました。

下記のようなログがSQL errorの直前に出力されていました。


xprotectd: [com.apple.security.xprotectd.:main] Killing container due to rules engine deny
xprotectd: [com.apple.security.xprotectd.:main] Prompting user about blocked scripted malware execution
syspolicyd: [com.apple.syspolicy.exec:default] Displaying XProtect blocked prompt: type=19, uid=NNN


xprotectdは、下記の記事のXProtectに相当するので、自作スクプトのブロックは、GatekeeprではなくXProtectによる誤検知のようです。


macOSでのマルウェアからの保護


したがって、以下の流れのようです。


  1. XProtectの誤検知とスクリプト停止
  2. 「悪質なスクリプトはブロックされました」ダイアログの表示
  3. syspolicydによる、記録の失敗(SQL error)
  4. [設定]の[プライバシーとセキュリティ]の[セキュリティ]に表示されない

2026/05/27 09:40 LunLunTaTaTa への返信

以下のサポート記事にもう少し詳しく説明してます。開くが表示されてるショットもあります。

Macでアプリを安全に開く - Apple サポート (日本)

そこで思ったのですが、どんなスクリプトか分かりませんが、アプリにしてみたらどうですか?

スクリプトはAutomatorを使えばアプリにできます。

MacのAutomatorでスクリプトを使用する - Apple サポート (日本)

以下のブログも有用かも。

Macでシェルスクリプトを .appアイコン化する方法



Tahoe 26.5から自作スクリプトが、「悪質なスクリプトはブロックされました」と表示されて停止させられる

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。