在 2026 年 8 月 10 日,Mozilla 對外揭露,一名員工不慎將一份**未加密的 GPG 私鑰子金鑰(private subkey)**提交到一個私有的 GitHub 儲存庫中,迫使 Mozilla 必須立即更換 Firefox 與 Thunderbird Linux 發行版的簽署金鑰。以下是這起事件的完整解析與背景脈絡。
金鑰如何外洩
這把 GPG 私鑰子金鑰是用來簽署 Linux 的 tarball 壓縮檔、RPM 套件以及 checksum 校驗檔案的。它以純文字(未加密)形式被一位 Mozilla 員工意外地提交至一個私有 GitHub 儲存庫 。該儲存庫僅供 Mozilla 內部一個小型團隊存取,但問題在於,這份金鑰資料儲存時並沒有密碼短語(passphrase)保護 。
Mozilla 的調查結果
Mozilla 檢視了可取得的稽核記錄後,沒有發現任何證據顯示這把金鑰在存放於該儲存庫期間,曾遭到未經授權的第三方存取 。能夠存取該儲存庫的人員,原本就都已透過其他管道取得了這把金鑰的合法授權 。因此,Mozilla 評估,實際發生供應鏈攻擊(例如,攻擊者散布經過簽署的惡意安裝程式)的風險偏低 。
已採取的行動
-
撤銷金鑰:Mozilla 以**原因代碼 2(reason code 2)**撤銷了遭洩漏的金鑰。在 GPG/OpenPGP 規範中,這個代碼代表 「金鑰資料已遭洩漏(key material has been compromised)」,等同於 KEY_COMPROMISE 。
-
更換新金鑰:已發布一組新的 GPG 簽署子金鑰,其指紋為:
827E 6586 0867 9618 CD34 9F93 678E 455D 7676 7AA3
這把子金鑰的有效期限至 2028 年 8 月 5 日 。主金鑰(parent key)的指紋則是 14F2 6682 D091 6CDD 81E3 7B6D 61B7 B526 D98F 0353 。
-
內控措施:Mozilla 已新增內部防護機制,以防止未來再次發生類似的意外提交事件 。
-
撤銷的影響:由於 GPG 的撤銷是不可逆的,一旦用戶匯入了撤銷資訊,所有由舊金鑰簽署的檔案都會驗證失敗——這不僅影響未來的下載,也涵蓋了所有以往的下載檔案 。
誰需要採取行動
大多數使用者 —— 完全不需要任何操作。 Mozilla 的官方指引明確指出:「對大多數使用者而言,無需採取任何行動。」 自動更新機制會透明地處理金鑰轉換。
以下情況則需要手動處理:
| 使用情境 | 需要執行的動作 |
|---|
| Fedora 42 及更早版本、RHEL、Rocky Linux、AlmaLinux | 這些發行版的 dnf 套件管理工具無法自動更換金鑰。更新時會出現「Import of the key didn't help, wrong key?」或「The GPG keys listed for the mozilla repository are already installed but they are not correct for this package.」等錯誤訊息。用戶必須手動移除舊金鑰並匯入新金鑰 。 |
| openSUSE / SUSE 系列發行版 | zypper 套件管理工具也無法自行更換金鑰。更新時會出現「Signature verification failed」或「NOKEY」等錯誤。同樣需要手動移除舊金鑰並匯入新金鑰 。 |
| Fedora 43 及更新版本 | 無須特別操作。dnf 會在下次更新時自動下載新版金鑰;使用者只需確認指紋是否與 827E 6586 0867 9618 CD34 9F93 678E 455D 7676 7AA3 相符即可 。 |