tor daemon 更新日誌¶
tor daemon(社群慣稱 c-tor)是 Tor 網路的 C 語言實作,中繼、橋接與 onion 服務都運作在它上面。這一頁整理每次釋出修了什麼、需不需要立刻升級,讀者主要是自己架設中繼或 onion 服務的人。用 Tor Browser 上網的讀者不需要看這一頁,瀏覽器會自己帶著對應版本,那些變動整理在 Tor 更新日誌。
新版本永遠在最上面。原始資料來自官方的 ChangeLog。
急迫程度怎麼判斷¶
- 立刻官方標為安全釋出(security release),通常帶 TROVE 編號(Tor Project 對外公布安全問題時用的編號)。中繼與 onion 服務是長期在線的目標,這一級的問題多半可以被遠端觸發。
- 儘快影響連線品質或網路健康,但沒有可被遠端利用的安全問題。
- 一般其餘維護性釋出。
這一頁的「立刻」依據的是官方的發布形式(標為安全釋出、帶 TROVE 編號),不是已經有人在攻擊。中繼與 onion 服務長期在線,被掃到的機會遠高於個人裝置,所以門檻設得比 iOS 那幾頁低。判斷不確定時以較高一級為準。
2026 年上半的釋出幾乎都落在「立刻」。這段期間 Tor 的安全審視強度提高,連續修出多個可被遠端觸發的問題,分級反映的就是實際狀況。營運中繼的人這半年確實需要每次都跟上。
兩條維護線¶
0.4.9.x 是目前的主線。0.4.8.x 曾經是長期支援線,安全修補同步 backport,發行版套件也常常停在那裡。
0.4.9.12(2026-09-08)改變了這件事。目錄權威從那一版起在權威層級拒絕 0.4.8.x,留在那條線上的中繼會被擋在網路外面,所以對中繼與 onion 服務營運者來說 0.4.8.x 已經不可用。用套件安裝的人要確認來源提供的是 0.4.9.x,來源沒跟上就要換一個來源,或者自己編譯。
conflux 是什麼¶
下面多則條目都在修 conflux。它讓用戶端同時用兩條電路傳同一個連線的資料以提升速度,2023 年進入 Tor,是這半年多起安全問題的共同來源。新的程式碼路徑帶來新的錯誤面,這批修補集中在那裡並不意外。
tor 0.4.9.14¶
2026-10-07 · ChangeLog
- 立刻安全釋出,距離 0.4.9.13 兩週,帶三個 TROVE 編號,另有一項沒有編號、同樣列在安全修補底下的 conflux 問題。官方寫明中繼、用戶端、onion 服務與目錄權威全部受影響,強烈建議盡快升級。上游沒有提到已被實際利用。
- 截至 10 月 8 日,Tor Browser 與 Tails 都還沒有帶這一版的新版本,穩定版 15.0.24 內建的仍是 0.4.9.13。架設中繼、橋接與 onion 服務的人要自己升級。
- conflux 那一項影響中繼。用戶端可以把會合點電路連進 conflux 組,再送出序號偽造的 LINK 資料元,讓中繼在會合拼接的過程中拆掉整組電路,觸發致命的斷言失敗,中繼行程直接結束(bug 41328,問題從 0.4.8.1-alpha 就存在)。修正後中繼只在一般電路上接受 CONFLUX_LINK,也不再讓 conflux 的電路轉成引介點或會合點。
- TROVE-2026-067:目錄權威以外的節點原本會忽略 MiddleOnly 旗標。目錄權威用這個旗標把可疑的中繼限制在中間位置,忽略之後,用戶端在 onion 服務電路裡可能把這些中繼放在不該用的位置(bug 41410,問題從 0.4.8.15 開始)。
- TROVE-2026-062:中繼描述檔裡任何一張家族憑證過期,整份描述檔就視為過期。原本會忽略家族憑證的到期時間(bug 41413,問題從 0.4.9.2-alpha 開始)。
- TROVE-2026-064 只影響目錄權威。限制同一個位址上中繼數量的 AuthDirMaxServersPerAddr,現在只計算實際連得到的中繼,也不再重設超出上限那些中繼的在線紀錄(bug 41405)。
- 用戶端有兩項跟連線穩定與流量分析相關的修正。電路在第一跳完成前被取消時,tor 原本會停用一條正常的入口守衛連線,並中斷無關的目錄請求。取消動作可以從遠端觸發,對同一個守衛多開的 TLS 連線可能幫助流量分析(bug 41412)。另一項是電路建立逾時的歷史紀錄可能被「放棄」的項目塞滿,逾時值卡在過低的數字就會無法連線(bug 41420)。
- onion 服務營運者要留意一項行為變更。HiddenServiceAllowUnknownPorts 用來拖慢對 onion 服務的連接埠掃描,轉換到 v3 onion 服務時邏輯被意外反轉。這一版改回原本的設計,用戶端要求連到沒有設定的連接埠時,服務端會關掉那條電路(bug 41435)。
tor 0.4.9.13¶
2026-09-23 · ChangeLog
- 立刻安全釋出,距離 0.4.9.12 只隔兩週,一次帶十個 TROVE 編號。官方寫明中繼、用戶端與 onion 服務全部受影響,強烈建議盡快升級。上游沒有提到已被實際利用。
- 官方說明寫這批問題同樣來自持續湧入的 LLM 回報。
- Tor Browser 穩定版從 9 月 29 日的 15.0.24、Alpha 從 10 月 1 日的 16.0a13 起內建這一版,Tails 也在 9 月 30 日的 7.14 跟上。用瀏覽器的人更新到 15.0.24 即可,架設中繼、橋接與 onion 服務的人要自己升級。
- 對一般使用者影響最直接的是 TROVE-2026-053,用戶端連 onion 服務時如果原本的串流已經關閉,電路上的隔離參數會被誤清掉,之後來自不同隔離情境的串流就能重用這條電路。上游寫明惡意的 onion 服務或 HSDir(存放 onion 服務描述檔的中繼)可以拿它打破 Tor Browser 的第一方隔離(first-party isolation,讓不同網站各走各的電路)(bug 41368,問題從 0.2.3.3-alpha 就存在)。
- TROVE-2026-051 與 050 都在反向 DNS(由 IP 查回網域名稱)。前者是設了某些虛擬位址時可能出現的記憶體毀損、重複釋放與空指標問題(bug 41381)。後者是關掉 DNS 快取時 PTR 回應仍然會被快取,原本的防護解析位址出錯,解析不了就預設走向快取(bug 41380)。
- TROVE-2026-056:TCP 連線立刻成功、TLS 交握卻啟動失敗時的 use-after-free(bug 41398)。
- TROVE-2026-058 與 012 在 onion 服務端。前者是服務端的會合電路在抵達會合點之前失敗,會被重新建立兩次,兩條電路帶著同一組會合 cookie 與金鑰材料。連續失敗時每一則 INTRODUCE2 觸發的電路數呈指數成長,N 次失敗從 N+1 條變成 2^(N+1)-1 條(bug 41408)。後者是 INTRODUCE2 的重放快取滿了就換一個引介點(bug 41256)。
- TROVE-2026-030、038、041 屬於同一類,電路、串流、目錄請求與一般通道關閉的失敗原本都會記在入口守衛上,現在只有對外建立連線失敗時才記一次(bug 41360、41365、41366)。入口守衛是用戶端長期固定使用的第一跳,失敗紀錄會影響用戶端是否改用其他守衛。TROVE-2026-030 另外涵蓋一項修正,拒絕會合點 ntor 公鑰為全零的 INTRODUCE2 資料元。
- TROVE-2026-052:用戶端不再重新附掛 BEGIN_DIR 目錄串流。原本會依 END 資料元的理由欄位,把它當成一般的離開請求重試,行為難以預期(bug 41369)。
- 離開節點或 onion 服務用理由碼 0 的 END 資料元回應 BEGIN 時,用戶端原本會當成連線成功(bug 41353)。SOCKS 用戶端因此收到成功回應,HTTP CONNECT 收到 200 OK,實際上連線根本沒有建立。
- 營運者相關的修正有三項。中繼端標為關閉的電路立刻從等待通道的清單移除(bug 41393)。HSDir 對「descriptor 簽章長度無效」的日誌做限速,官方寫明這只讓洪泛攻擊比較容易承受,沒有解決它(ticket 41339)。橋接用戶端或橋接中繼第二次變更 pluggable transport 或 socksproxy 設定時,不再造成記憶體損壞(bug 41375)。
tor 0.4.9.12¶
2026-09-08 · ChangeLog
- 立刻安全釋出,一次修掉七個帶 TROVE 編號的問題,官方用的字是強烈建議盡快升級。上游沒有提到已被實際利用。中繼營運者另外有必須處理的協定變更,寫在這一則的最後兩點。
- 這批問題的來源跟先前幾次不同,官方說明寫是由 LLM 回報的。
- TROVE-2026-043:記憶體不足(OOM)的處理從底層搬到呼叫堆疊上層。原本在
append_cell_to_circuit_queue裡就直接清記憶體,那個函式可能出現在堆疊的各個位置,物件會在出乎意料的時機被釋放,帶來 use-after-free 的風險。這是四個 bug 的共同根因(41341、41336、41326、41363)。 - TROVE-2026-034:惡意的目錄快取可以讓用戶端誤以為某些中繼的 microdescriptor 或 router descriptor 不可用。用戶端這一側也會受影響(bug 41358)。
- TROVE-2026-036:設定
AutomapHostsOnResolve時的 use-after-free。用 IPv4 或把VirtualAddrNetwork設得很小的人風險最高(bug 41319)。 - TROVE-2026-042:共識差異檔(consensus diff)的位元組數與行數現在有上限,擋掉一類靠耗盡記憶體達成的阻斷服務(bug 41329)。
- TROVE-2026-032 與 TROVE-2026-033 都在壅塞控制。前者是沒有要求壅塞控制的交握也會處理
CC_RESPONSE擴充,把狀態帶進無效值而可能造成遠端崩潰(bug 41345)。後者是 CGO 加密原本只跟電路的最後一跳協商,現在每一跳只要支援就協商(bug 41348)。 - TROVE-2026-040:conflux 的串流隔離狀態在附掛新串流時沒有同步到每一條腿(bug 41325)。串流隔離決定哪些連線共用同一條電路,狀態不同步會讓隔離的效果跟預期不同。
- TROVE-2026-035:提供給 evdns 或從它取回網域名稱時都會做合規驗證,縮小一類應用程式與函式庫錯誤的暴露面(bug 41320)。
- 中繼營運者要處理的第一件事:目錄權威從此不再接受含 TAP key 的中繼描述檔。TAP 是 Tor 早年的交握協定,已經淘汰多年,這一版把它從描述檔裡清乾淨。沒有升級的中繼交不出合格的描述檔。
- 第二件事:權威層級開始拒絕 0.4.8.x 系列(ticket 41234),同時帶進新的共識方法 36 與給用戶端和中繼的新建議協定版本(ticket 41316)。新增的
AuthDirSupport048Clients選項預設關閉,只有目錄權威營運者需要碰它。
tor 0.4.9.11¶
2026-06-25 · ChangeLog
- 立刻距離上一版只隔兩天的安全釋出,官方說明是又發現高優先級的問題,其中一個影響 onion 服務。上游沒有提到已被實際利用,不過 onion 服務是長期在線的目標。
- 修掉一個競態條件:在特定情況下,會合點(rendezvous point)可以冒充用戶端想連的那個 onion 服務,形成中間人。架設 onion 服務的人這一版務必要升(bug 41297,問題從 0.3.5.3-alpha 就存在)。
- 用戶端遇到 onion 服務把某個引介點的公鑰編成全零時,不再直接中止結束(bug 41295)。
- 目錄權威不再接受離開政策裡把埠寫成 0 的寫法。原本的次要檢查誤把
0解析成1-0這個埠範圍,產生 networkstatus 投票時會觸發 assert。 - TROVE-2026-026:conflux 物件的 use-after-free,甚至可能重複釋放。上游寫明惡意的離開節點可以拿它讓用戶端崩潰,所以這一版不只跟 onion 服務營運者有關,一般用戶端也在範圍內(bug 41306)。
tor 0.4.9.10¶
2026-06-23 · ChangeLog
- 立刻安全釋出,官方強烈建議盡快升級。上游沒有提到已被實際利用。
- TROVE-2026-025:拒絕在已經有附掛串流的電路上收到的
CONFLUX_LINK資料元。惡意用戶端可以先送RELAY_COMMAND_BEGIN再送CONFLUX_LINK,掛上的離開串流最後會變成孤兒,留下懸空的電路反向指標,電路被釋放時形成 use-after-free,也就是記憶體還回去之後又被拿來用,結果是中繼當掉(bug 41258)。 - 未設定
SafeSocks時,恢復對不安全 SOCKS 協定(socks4 或不帶主機名的 socks5)的警告。這個警告消失了很久,而它防的是把要解析的網域直接洩漏給本機以外的地方(bug 41290)。 - 用戶端的入口守衛(entry guard)過期時間回到一致的 48 到 60 天。
tor 0.4.9.9¶
2026-06-01 · ChangeLog
- 立刻安全釋出,一次修掉十個帶 TROVE 編號的問題(TROVE-2026-013 到 022)。上游沒有提到已被實際利用。
- TROVE-2026-022:壓縮炸彈檢查可以被繞過。攻擊者把多個 gzip 或 zlib 子串流接在一起,每一段都剛好低於單串流的偵測門檻,整體就閃過了檢查(bug 41275,問題從 0.3.1.1-alpha 就存在)。
- TROVE-2026-021:解壓被截斷的 zlib/gzip 串流時陷入無窮迴圈。截斷的串流永遠到不了
Z_STREAM_END,zlib 回傳的Z_BUF_ERROR被誤判成輸出緩衝區滿了,於是無限重試(bug 41274)。 - TROVE-2026-017:送出
CONFLUX_SWITCH資料元失敗時的 NULL write after free。送出失敗會關閉電路並移除該條腿,但回傳值被忽略,呼叫端接著往已經釋放的記憶體寫入而崩潰(bug 41263)。 - 用戶端也在影響範圍:TROVE-2026-014 是 conflux 的 heap-use-after-free,用戶端或離開中繼都誘發得了。TROVE-2026-013 與 015 讓惡意 onion 服務可以用特製的 descriptor 把用戶端弄到中止。TROVE-2026-018 是 DNSPort 的崩潰。
- 另外三個:TROVE-2026-019 解析 consensus 或分離簽章時的越界讀寫,對目錄權威影響最大。TROVE-2026-020 是啟用工作量證明防禦的 onion 服務可能除以零崩潰。TROVE-2026-016 同屬這一批。
tor 0.4.9.8¶
2026-05-07 · ChangeLog
- 儘快前一版發出後的緊急補發,起因是 CI 建置過程的一個無聲錯誤,把備援目錄(fallback directory)清單整份清空了。這一版沒有安全問題,也就沒有利用與否的問題。
- 影響的是新安裝的用戶端:沒有備援目錄可用時,只能直接對目錄權威做 bootstrap,那幾台機器的負載與可觀測性都因此變差。
- 重新產生 2026 年 5 月 7 日版本的備援目錄清單。
tor 0.4.9.7、0.4.8.24¶
2026-05-06 · ChangeLog
- 立刻安全釋出,兩條維護線同時發布。上游沒有提到已被實際利用。
- TROVE-2026-011:處理 END、TRUNCATE 與 TRUNCATED 資料元時,若酬載裡沒有原因欄位會發生越界讀取,也就是讀到不該讀的記憶體,可能讓中繼當掉或洩漏記憶體內容。這個問題從 0.1.1.1-alpha 存在到現在(bug 41254)。
- TROVE-2026-008:不再透過 conflux 的分腿嘗試或接受
BEGIN_DIR(bug 41243)。 - TROVE-2026-010:清空 conflux 的亂序佇列時修正計數(bug 41251)。
- 另外三個:TROVE-2026-009 是電路在佇列記憶體壓力下被重複關閉造成的用戶端崩潰,TROVE-2026-006 是收到順序錯亂的 CERT 資料元時的空指標解參考,TROVE-2026-007 是收到格式錯誤的 BEGIN 資料元時的差一越界讀取。
tor 0.4.9.6、0.4.8.23¶
2026-03-25 · ChangeLog
- 立刻安全釋出,兩個問題都可能讓中繼被遠端弄崩。上游沒有提到已被實際利用。
- TROVE-2026-003:惡意的
CREATED2造成 11 個位元組的堆疊溢位,結果是遠端崩潰(bug 41231)。 - TROVE-2026-004:conflux 子系統的記憶體比對用錯長度,同樣可能導致遠端崩潰(bug 41232)。
- 另外修了一批深度防禦性質的問題,以及 big-endian 平台上的 polyval 實作。