このサイトでの挿絵は、Gemini Proによる生成が大半です。 また、情報収集・まとめなどのサイトについては、検索結果をベースとしたものを使用しています。可能な限り出典を明示するよう努めますが完全ではありません。各自で調べる事もお忘れなく。

危険な既定を、安全な既定へ——npm・Git・Linuxが「引き算」で攻撃面を削った日

こんにちは!Agy無限会社のコンテンツ制作部です。

今回のテーマは**「危険な既定を、安全な既定へ」**です。新しい機能を足すのではなく、危ないものをデフォルトから外したり、完全に削除したりすることで安全性を高めるニュースが、今日は奇妙なほど重なりました。npmはインストール時の自動実行を、Gitはメモリ安全でないC言語への依存を、Linuxカーネルは6年がかりで危険なAPIを——いずれも「足し算」ではなく「引き算」で守りを固めた一日です。



1. npm v12——installスクリプトの自動実行、ついにデフォルト無効化

JavaScriptのパッケージマネージャnpmが、2026年7月にメジャーバージョンv12をリリースします。最大の変更は、依存パッケージが持つpreinstallinstallpostinstallスクリプトが、npm install実行時に自動では走らなくなることです。

これまでnpmは、依存パッケージをnode_modulesに展開する際、確認なしにこれらのライフサイクルスクリプトを実行してきました。v12ではこの挙動が逆転し、スクリプトを走らせたい場合はプロジェクト側が明示的に許可する必要があります。

技術的に重要なのが、binding.gypファイルを持つネイティブアドオンの扱いです。従来npmはこのファイルを検出すると暗黙にnode-gyp rebuildを実行していましたが、v12ではこの暗黙実行も遮断されます。sharp・bcrypt・canvas・sqlite3・esbuildといった、ネイティブコードを持つ定番パッケージは、事前の許可設定なしにはビルドが通らなくなる可能性があります。

変更項目従来(v11まで)npm v12
依存のinstallスクリプト自動実行デフォルト無効
binding.gypの暗黙ビルド自動node-gyp rebuild遮断
Git依存(github:/git+https:)そのまま解決--allow-gitが必要
リモートURL依存(https://*.tar.gz)そのまま解決--allow-remoteが必要

背景には深刻な実害があります。2025年中に悪意あるnpmパッケージが45万5千件超公開され、同年9月にはdebug・chalkを含む人気パッケージ18本が乗っ取られ、週間ダウンロード数の合計が26億件を超えるパッケージ群が一斉に危険にさらされました。さらに2026年6月には「Miasmaワーム」が登場。binding.gypを悪用する「Phantom Gyp」というテクニックは、定番の--ignore-scriptsフラグすら回避してしまいました。v12がこの暗黙実行まで遮断対象に含めたのは、この教訓への直接対応です。

CI/CDパイプラインでnpm ciを使っている現場は、7月を待たずにnpm approve-scriptsを試し、--strict-allow-scriptsでどのパッケージが引っかかるか把握しておくことをお勧めします。


2. Git 2.55——Rustがビルドのデフォルト依存に

分散バージョン管理システムGitが、2026年6月29日に2.55をリリースしました。今回の節目は、Rustコンパイラがビルドのデフォルト依存になったことです。これまでオプトインだったRustが、明示的に無効化しない限りビルド時に必須となります。

無効化したい場合はMakefileならmake NO_RUST=YesPlease、Mesonならmeson configure -Drust=disabledを指定します。ただし、この猶予は2026年後半予定のGit 3.0までです。3.0では無効化オプション自体が廃止され、Rustが完全必須化されます。

採用されているのはSebastian Thiel氏が主導する純粋Rust実装プロジェクト「gitoxide(gix)」。最初に置き換えられたのは可変幅整数エンコーディングやxdiff(差分・マージエンジン)といった低レベルコンポーネントで、コンポーネントによっては5〜19%のパフォーマンス向上も期待されています。

バージョン時期Rustの扱い
Git 2.492025年初頭試験的に導入
Git 2.522025年後半Mesonで自動検出・有効化
Git 2.552026年6月29日デフォルト有効(オプトアウト可)
Git 3.02026年後半予定完全必須化

移行の直接的なきっかけは、2022年12月に公開された重大な脆弱性CVE-2022-41903・CVE-2022-23521です。いずれもCコードの整数オーバーフローとヒープメモリ破壊に起因するリモートコード実行(RCE)でした。これを受けて2023年にOSTIF資金援助のもとX41 D-SECとGitLabによる独立監査が実施され、「Cのメモリ管理モデルそのものが構造的な問題」という認識からRustへの長期移行方針が固まっています。

ソースからGitをビルドするCI/CDパイプライン、Debian・Fedora・Alpineのメンテナ、エアギャップ環境を運用する組織は、半年という猶予の中で計画的な準備が必要です。


3. Arch Linux 2026.07.01 ISO——Archinstall 4.4で「最初の数十分」を磨く

Arch Linuxの2026年7月度ISOが本日リリースされました。6月28日に公開されたばかりのArchinstall 4.4を同梱し、インストール体験を着実に底上げしています。

目玉のひとつがインストールサマリーです。設定内容をディスク書き込み前に赤(エラー)・黄(警告)・緑(準備完了)で色分け表示し、後戻りしにくい操作の直前に確認できる安全弁が増えました。コンソールフォントも言語選択と連動して自動設定されるようになり、CJK言語インストール時の文字化けが防げます。

デスクトップ環境としては、Rust製のスクロール型タイリングWaylandコンポジターNiriと、Material You風シェルのDankMaterialShellを組み合わせたプロファイルが新規追加されました。セキュリティ面ではEFIシステムパーティションの権限がfmask=0077/dmask=0077に強化され、機微なブート関連ファイルへの不正アクセスを防いでいます。

機能内容
インストールサマリー色分け事前確認で誤設定防止
IWDスタンドアロンNetworkManager不要の軽量Wi-Fi構成
Niri+DankMaterialShellRust製タイリングWayland環境
EFI権限強化fmask/dmask=0077で改ざんリスク低減

派手さはありませんが、インストールサマリーの確認画面やEFI権限強化は「うっかりミスや改ざんを未然に防ぐ」方向の改善であり、今日の他のニュースと同じ「安全側へデフォルトを寄せる」流れの末端に位置しています。


4. Kali Linux 2026.2——VM起動が約3倍速く、攻撃面も縮小

セキュリティ専門ディストリビューションKali Linuxが2026.2をリリースしました。GNOME 50・KDE Plasma 6.6を採用し、新規ツール9本を追加。最大の実用的トピックは仮想マシン向けのブート高速化です。

従来のVMイメージにはNVIDIA・AMD・Intelの全GPU向けグラフィクスファームウェアが含まれ、initrdが約200MBに膨らんでいました。VMユーザーは物理GPUを使わないため、2026.2ではこれを丸ごと除外し、initrdを約60MBまで削減。QEMU環境でのブート時間が約3倍高速化しました。Hyper-V向けにはGen2 VMでEFIスタブ直接ブートを採用し、GRUB2を省略しています。

項目従来2026.2(VM向け)
initrdサイズ約200MB約60MB(約70%削減)
QEMUブート時間基準約1/3

カーネルはLinux 7.0ではなく6.19を採用。NVIDIA DKMSドライバとの互換性問題を避け、GPU活用ツールの実用性を優先した判断です。新規ツールにはAI支援のshell-gpt、OSINT用tookie-osint、ブルートフォース用legbaなどが加わりました。

VMでKaliを起動して作業するペンテスターにとって、「ちょっと起動して試す」のハードルが大きく下がります。使わないファームウェアを思い切って削るという発想は、今日のニュース全体を貫く「引き算」の思想そのものです。


5. Linux 7.2-rc1——43M行突破のカーネルが、危険なstrncpyを6年がかりで根絶

Linus Torvaldsが6月28日にLinux 7.2-rc1を公開しました。カーネルのソースツリーが初めて4300万行を突破する一方で、長年バッファオーバーフローの温床とされてきたstrncpy()APIが、362パッチ・70人・6年という途方もない労力の末に完全削除されています。

strncpy()は、コピー元が宛先バッファと同じかそれ以上の長さの場合にNUL終端を保証しないという根本的な欠陥を抱えていました。Kernel Self Protection ProjectのリーダーでGoogle所属のKees Cook氏が削除完了を告知し、最大の貢献者であるGoogleのJustin Stitt氏は362コミットのうち211件(約58%)を単独で担当しています。

削除にあたり、曖昧で危険な一つの関数は、意図が明確な5種の関数へ分解されました。

移行先関数役割
strscpy()NUL終端ありの標準コピー(最多使用)
strscpy_pad()NUL終端+末尾ゼロパディング
strtomem_pad()NUL終端なし固定幅フィールド向け
memcpy_and_pad()明示的パディングを伴うコピー
memcpy()長さ既知のメモリコピー

新機能も豪華です。AMDGPUのHDMI 2.1 FRL対応により4K/120Hzや8K/60Hzの高解像度出力が可能になり(デフォルト無効)、AMD ISP4カメラドライバはユーザー空間バイナリ非依存の完全オープンソースでRyzen AIノートPCのウェブカメラに対応しました。USB4/Thunderbolt経由の低遅延通信プロトコルUSB4STREAMや、マルチLLCドメインCPU向けのCache Aware Scheduling(CAS)も新規マージされています。

カーネル内コードのみが対象のため、一般的なアプリケーション開発への直接影響はありません。ただし自前でカーネルモジュールをビルドしている開発者は、strncpy()を使っていればstrscpy()等への置き換えが必要です。43,898,743行という肥大化したコードベースの中で、たった一つの危険な関数を6年かけて根絶やしにしたという執念は、今日のニュース全体を締めくくるにふさわしい一件です。


まとめ

今日の5本を貫く軸は、**「危険な既定を、安全な既定に置き換える」**という思想であり、その手段はいずれも機能の追加ではなく「引き算」でした。npm v12は依存パッケージのインストールスクリプト自動実行という長年の便利機能を削り、45万5千件超の悪意あるパッケージというサプライチェーンの脅威に応えました。Git 2.55はメモリ安全でないCへの依存を、Rustを既定に据えることで段階的に削り始めています。Arch Linuxはメンテナンスの切れたプロファイルを削り確認画面を足し、Kali LinuxはVMで使わないファームウェアを削って起動を3倍速くし、Linux 7.2-rc1は6年・362パッチ・70人で危険なstrncpy()を根絶やしにしました。

ソフトウェアは放っておけば機能を足し続け、肥大化していきます。その流れに抗って、内部の危険な既定や古い遺産を意志をもって削り取る——この能動的な攻撃面削減こそが、今日の開発者界隈を貫いた共通言語でした。

動画でも各トピックをやさしい対話形式で解説しています。ぜひあわせてご覧ください!

Hugo で構築されています。
テーマ StackJimmy によって設計されています。