資安雷達 2026 年 8 月 3 日

2026-08-03 — Nostr 生態系一日 8 份 RustSec 公告、iwd 802.11k 堆疊溢位待修、GNOME 揭露期砍到 30 天

primary=https://rustsec.org/advisories/RUSTSEC-2026-0225.html primary=https://rustsec.org/advisories/RUSTSEC-2026-0226.html primary=https://rustsec.org/advisories/RUSTSEC-2026-0227.html primary=https://rustsec.org/advisories/RUSTSEC-2026-0228.html primary=https://rustsec.org/advisories/RUSTSEC-2026-0229.html primary=https://rustsec.org/advisories/RUSTSEC-2026-0230.html primary=https://rustsec.org/advisories/RUSTSEC-2026-0231.html primary=https://rustsec.org/advisories/RUSTSEC-2026-0232.html primary=https://www.openwall.com/lists/oss-security/2026/08/02/2 primary=https://www.openwall.com/lists/oss-security/2026/08/02/3

Nostr 生態系一日爆 8 份資安公告:nostr、nostr-relay-pool 兩個 Rust crate 同步修補

RustSec Advisory Database · 2026-08-02

2026 年 8 月 2 日,RustSec 資安公告資料庫同一天發出八份公告,涵蓋處理 Nostr 協定的 nostr(0.44.7 以前版本)與 nostr-relay-pool(0.44.3 以前版本)兩個 crate。RUSTSEC-2026-0225RUSTSEC-2026-0232 雖分開發布,屬於同一輪協同揭露,可歸為三類:Debug 輸出洩漏憑證、未經驗證即解析的事件資料、以及可遠端觸發的資源耗盡。這些公告分別打在 NIP-42(中繼站認證)、NIP-44(加密酬載)、NIP-46(遠端簽章)、NIP-47(錢包連接)、NIP-50(搜尋)、NIP-60(Cashu 錢包)、NIP-98(HTTP 認證)的解析路徑上。

憑證與私鑰外洩

RUSTSEC-2026-0225 起因於 NIP-46NIP-60 多個型別沿用預設的 Debug trait 實作,格式化輸出會直接印出連線密鑰、Cashu 私鑰與 bearer proof。只要除錯輸出被寫進日誌或錯誤回報,敏感資料就以明碼外流,修補後改為手動實作 Debug 以遮蔽敏感欄位。

未驗證、未認證的事件解析

RUSTSEC-2026-0226 指出錢包事件解析器在解密前未驗證簽章與完整性,惡意中繼站可送出自己簽署的事件,讓客戶端誤判為來自使用者自身錢包的回應或消費紀錄RUSTSEC-2026-0232 則是驗證快取只比對截斷後的 64 位元雜湊而非完整事件 ID,雜湊碰撞可讓偽造事件跳過驗證。

其餘四份都是資源耗盡類:0227NIP-44 v2 解密先解碼酬載才驗證長度;0228 是分隔符逐一切割再檢查段數,放大記憶體用量;0229 是授權標頭解析未限制內容大小;0230 是空搜尋字串觸發 slice::windows(0) panic。這四個 DoS 都不需任何權限,單一惡意封包即可觸發。0231 則是認證挑戰用無界佇列處理,可持續灌入直到客戶端失去回應。

  • RUSTSEC-2026-0225 — Debug 輸出洩漏 NIP-46/NIP-60 憑證與私鑰(CVSS 5.5)
  • RUSTSEC-2026-0226 — 錢包事件解析器接受未認證事件(CVSS 7.5)
  • RUSTSEC-2026-0227 — NIP-44 v2 解密可被用於資源耗盡(CVSS 7.5)
  • RUSTSEC-2026-0228 — NIP-04 解析放大惡意密文的記憶體用量(CVSS 4.3)
  • RUSTSEC-2026-0229 — NIP-98 授權解析可資源耗盡(CVSS 7.5)
  • RUSTSEC-2026-0230 — 空 NIP-50 搜尋過濾條件會 panic(CVSS 7.5)
  • RUSTSEC-2026-0231 — 中繼站認證挑戰可耗盡記憶體(CVSS 7.5,nostr-relay-pool)
  • RUSTSEC-2026-0232 — 未驗證的中繼站事件處理(CVSS 7.5,nostr-relay-pool)

受影響版本與修補

nostr crate 在 0.44.7 以前的所有版本受 02250230 六份公告影響;nostr-relay-pool0.44.3 以前受 02310232 影響。使用這兩個 crate 的專案應直接升級到對應修補版本,而非只挑幾個編號單獨修。0231 改用「latest-value channel」合併未處理完的挑戰,以有界記憶體取代無界佇列;0232 的驗證快取則改用完整事件 ID 取代截斷雜湊。

原始來源:RUSTSEC-2026-0225RUSTSEC-2026-0226RUSTSEC-2026-0227RUSTSEC-2026-0228RUSTSEC-2026-0229RUSTSEC-2026-0230RUSTSEC-2026-0231RUSTSEC-2026-0232


iwd <= 3.12 堆疊緩衝區溢位:一顆偽造的 802.11k 信標回報就能打穿站台

oss-security mailing list · 2026-08-01(Openwall 存檔顯示於 2026-08-02)

研究者 Abhinav Agarwal 於 2026 年 8 月 1 日在 oss-security 發文,揭露 Linux 無線守護程式 iwd1.30 到最新的 3.12 版之間存在一個堆疊緩衝區溢位,外加三個較低風險的解析/驗證缺陷。四個問題都已請求 CVE 但尚未取得正式編號,作者暫以 CAN-2026-2051869CAN-2026-2051872 追蹤。iwd 實作 802.11k 無線電量測,信標回報(Beacon Report)讓站台回報可見 AP 清單以加速漫遊掃描。

漏洞機制

最嚴重的一號發現(CWE-121,CVSS 8.8 高)出在 src/rrm.c:334:370rrm_report_beacon_results(),該函式在 512 位元組堆疊陣列 frame[512] 中組裝 Radio Measurement Report 訊框,對每個符合條件的 BSS 附加一筆 31 位元組紀錄卻毫無邊界檢查,第 17 筆紀錄就會寫入 frame[499..529] 造成溢位。rrm_frame_watch_cb() 只用裸 memcmp 比對來源位址且不要求 PMF,攻擊者在無 802.11w 的 WPA2 網路上可偽造來源位址,並用萬用 BSSID、省略 SSID、channel=0 讓過濾條件形同虛設,逼站台把快取中所有 BSS 塞進同一份回報。作者已用 AddressSanitizer 在真實 iwd 3.12 上重現。

其餘三項風險較低:二號(CWE-125,CVSS 4.3)是 src/ie.c:2714 的驗證器讀 offset 7,實際使用端 src/band.c:631 卻讀 offset 6,驗證的位元組跟實際使用的位元組對不上,讓過短元素通過驗證觸發越界讀取,修法僅需把 ptr + 7ptr + 6。三號(CWE-697,CVSS 3.1)是 src/ft.c:385mde_equal() 寫成 memcmp(mde1, mde1, ...),自己跟自己比較永遠相等,使漫遊的 Mobility Domain 檢查形同虛設。四號(CWE-191→CWE-125)是 src/ie.c:1919 對子元素長度用 uint8_t 相減,下溢後從 2 變 250 造成越界讀取,但寫入端仍受長度保護,未見外洩管道。

受影響版本

四個缺陷同時存在於 1.303.12,較舊版本各自持有其中一部分:一號源自 1.1(commit 1f01819c701e)、二號源自 1.30(commit 53988a728533)、三號源自 1.14(commit 2c0234e1)、四號從最早的 0.1(commit e4c168cc)就存在。SteamOS 預設就用 iwd 當 Wi-Fi 後端wifi.backend=iwd),出貨版本 3.9-1.2 含全部四個缺陷,Valve PSIRT 已於 6 月底獲通知。

修補與緩解

協調時間軸顯示:2026-05-12 透過 Intigriti 通報 Intel,2026-05-19 通報 iwd 維護者,2026-05-21 送出修補,2026-05-28 維護者確認全部四項發現,2026-08-01 才正式公開。有維護者已審核並在本地端套用修補,但截至發稿仍未合併進上游,因此沒有官方修補版本可用,四個修補各自獨立、可單獨套用,細節收錄在 PoC 儲存庫的 patches/README.md

原始來源:oss-security:iwd <= 3.12 stack buffer overflowPoC 與修補程式儲存庫


GNOME 資安通報流程大改:揭露期砍到 30 天,AI 產製報告不再轉發

oss-security mailing list · 2026-07-30(討論串延續至 2026-08-02)

GNOME 安全團隊負責人 Michael Catanzaro 於 2026 年 7 月 20 日在其部落格公告三項流程變更,隨後由 Alan Coopersmith 於 2026-07-30 轉貼到 oss-security 引發討論,Peter Gutmann、Russ Allbery 等人的後續回覆一路延續到 2026-08-02。三項變更分別是揭露期從 90 天縮短為 30 天不再替禁止 AI 產製內容的下游專案轉發資安報告,以及 Catanzaro 本人將於 11 月卸任。這不是單一漏洞,而是 GNOME 處理漏洞通報的組織流程改動。

現行做法

GNOME 資安團隊過去對所有通報一律套用業界慣例的 90 天揭露期:問題修復或期限到期,兩者先到者即公開並申請 CVE。Catanzaro 在公告中指出,實際觀察下來,會修的維護者幾乎都在收到通報後的 1 到 3 週內就修完,剩下的則是無論等多久都不會修;也就是說,90 天的保密期對大多數案例只是延遲揭露,並沒有換來更高的修復率

提案內容

第一項變更是把揭露期從 90 天砍到 30 天,僅適用於 2026 年 8 月 1 日起新回報的問題,舊案維持原本的期限不溯及既往。第二項變更是:對於明文禁止 AI 產製內容的下游專案,GNOME 團隊將不再把收到的資安報告轉發過去,而是直接在自己的追蹤系統內關閉該報告,另外私下通知該專案維護者;公告中直言「現在收到的漏洞報告裡,絕大多數都含有一定程度的 AI 產製內容」,逐一為每個下游專案的政策做例外處理已不切實際。第三項是人事異動:Catanzaro 將於 11 月 1 日起不再受理新通報,現有未結案問題預計在 12 月 1 日前處理完畢,他已做滿六年,目前 GNOME 尚未找到接手人選。

影響

oss-security 討論串裡,Russ Allbery 提出把開源維護工作變成有薪工作是老生常談的解方,Peter Gutmann 則回應商業委託與純開源社群在需求聚焦程度上的落差——這段討論恰好呼應了 Catanzaro 卸任卻找不到人接手的處境。30 天新期限只約束新回報,不會讓現有的保密案提前曝光,但下游若原本仰賴 GNOME 轉發通報、又同時禁止 AI 產製內容,之後將必須自行監看 GNOME 的公開紀錄,才不會錯過針對自己專案的資安通報。

原始來源:oss-security:Re: Some Changes to GNOME Security Trackingoss-security:原始轉貼Michael Catanzaro 部落格原文


End of article
0
Would love your thoughts, please comment.x
()
x