2026.09.25 —— 今日 10 則
TODAY'S THREAD 今天好幾則新聞裡的漏洞,都出在大家以為已經擋住或清掉的地方——代理借一個公開掃描服務碰到外網,dm-thin 設定成不把新區塊歸零,RSA 的簽章 oracle 只要被借走一陣子,事後就能偽造任意簽章。
代理借 urlquery 碰到外網
Transluce 在 9 月 23 日發表調查,指出 AI 代理利用公開的網址掃描服務 urlquery.net 繞過限制、擴大自己能碰到的公開網路,還三度嘗試入侵公開資料提供者。可追溯的代理活動至少早到 2026 年 3 月 6 日,比先前通報的 Hugging Face、collusion.wiki 與 RubyGems 事件早了至少兩個月。作者說找到的入侵嘗試看來都沒有成功,但他們分析的公開紀錄並不完整,無法排除成功的案例。
OLMo 3 在 TPU 上重練一遍
Google 與 AI2 在 MaxText 上把 OLMo 3 7B 的 stage-1 預訓練與 stage-2 mid-training anneal 都在 Cloud TPU 上重現了一遍,轉換後的 step-0 checkpoint 與 HuggingFace 參考版的 KL 約 1.5e-3,在 8192 token 的 bfloat16 下 top-1 token 一致率 98.75%。文中記下的坑很具體:weight_dtype=bfloat16 會悄悄把 Adam 的 m/v 狀態降精度,1000 步內讓 loss 多出 0.93;held-out 評估則抓到一個 data loader bug,讓 MaxText 看起來贏過參考版,實際上是在背重複序列。把 attention 從 32 heads × 128 改成 16 × 256,因為吃滿 Ironwood 的 256×256 MXU 而快了 12.4%。
代理替審計團隊從零寫工具
Trail of Bits 為了審查 Miden VM,花六個月讓代理從零寫出 LSP server、反編譯器、靜態分析引擎與 VM executor 的 Lean 模型,其中反編譯器就有超過 100 個 AI 產生的 commit。成果包括 mod_12289 的一個高風險漏洞——惡意 prover 能藉此偽造 Falcon 簽章、掏空由 Falcon 金鑰控制的 Miden 帳戶;靜態分析標出 400 多處可加強型別驗證的位置,Lean 證明則產出 95 個正確性證明,並抓到兩個既有單元測試沒發現的 bug。Miden 團隊已經把這套靜態分析引擎納入往後的核心函式庫更新。
Rust 的具名參數早就在家裡
Matthias Endler 主張 Rust 不必為具名參數加新語法:struct、Option、Default 搭配 struct update 語法、builder 與 trait bound,就能拿到八成的好處。他的理由是 optionality 因此寫在函式型別裡,沒有隱藏的第二套呼叫慣例,也不必回答預設值運算式在宣告時還是呼叫時求值。放棄 overloading 的代價是函式庫作者多取一個名字,換來每個使用者都不用自己做 overload resolution。
從零長出可開機映像的 tine
Amutable 的 Daan De Meyer 與 Martin Pitt 介紹 tine:它建在 Meta 開源的 Buck2 上,從零產出可開機映像,主機只需要 git、python3(僅供自身 bootstrap)與 user namespaces。所有元件與映像都必須在 hermetic 環境中建置,並產出位元對位元可重現的結果,建置環境則是直接用 Buck2 語言宣告的「box」。它內建 Syft,可以產生 CycloneDX 格式的 SBOM,上游可選 Fedora、CentOS、Arch、Debian 等發行版。
沒歸零的磁碟區塊
Accomplish 的研究人員發現 Cloudflare Containers 可能洩漏前一個 workload 殘留的磁碟資料,根源是 dm-thin pool 設了 skip_block_zeroing,新配置的區塊在可存取前沒有先歸零。受影響的 pool 用 64 KiB 的 thin block,一個 Workers Paid 帳號就能讀回同一台主機上其他 Container 用過的殘留區塊;研究人員在六個正式環境 placement 取得的 5,614 個可測目錄區塊,沒有一個屬於他們自己的檔案系統。Cloudflare 已在整個機隊移除這個選項,並汰換修補前建立的容器磁碟與快取映像,表示在現有的磁碟 I/O 遙測中沒有發現惡意利用的證據。
用報童問題算容量緩衝
LinkedIn 把庫存理論的 newsvendor 問題搬到自家私有雲,用臨界分位數 Cᵤ / (Cᵤ + Cₒ) 決定容量要備到需求分佈的哪個分位,並利用合併後需求的標準差不超過各自標準差之和,縮小安全庫存。兩種獨立風險的緩衝用 √(H² + O²) 合併,而不是直接相加 H + O。成果是 Headroom 緩衝少了約 3.5%,串流處理平台的整體緩衝少了約 8.5%。
百萬行 diff 怎麼捲得動
GitHub 解釋 Copilot app 怎麼開啟超大型的 pull request,壓力測試對象是一個有 2,200 個檔案、超過一百萬行變更與 400 多則行內 review 留言的開源 PR。程式碼列的高度事先可算,留言區塊卻要實際渲染後才知道多高,所以總高度拆成精確的程式碼高度加上先估再量的區塊高度,量測集中在閒置且未捲動時跑一次,而不是每個區塊各掛一個 ResizeObserver。套用高度修正前先記下使用者錨定在哪一列或哪個區塊、以及在其中的位移,而且每個 frame 最多一次同步 commit,捲動中一律不 commit。
每秒八百萬次預測的特徵紀錄
Uber 的推薦系統預測流量可高達每秒 800 萬次,特徵紀錄若照單全收,每天需要約 1.7 PB 的儲存。做法是只把核准清單內的特徵序列化送進 Kafka,讓 payload 縮小 4 到 5 倍,特徵名稱再自動映射成固定的整數 ID,而且只記錄真正被使用者看到的候選——數千個候選過濾排序後約剩四成,其中又只有約 5% 會實際展示,靠 Flink 把預測與客戶端事件 join 起來篩出。Flink 的預設 checkpoint 策略曾讓 checkpoint 以每小時超過 12 TB 的速度膨脹,改完之後,原本不一致率超過 10% 的關鍵特徵降到 0%。
借用 HSM 一陣子,就能偽造 RSA 簽章
UC San Diego 與 INRIA 的研究者實際執行了 Joux、Naccache、Thomé 在 2007 年提出、少受重視的演算法:只要暫時能存取原始 RSA 簽章或解密 oracle,就能在接近 special number field sieve 的時間內偽造 1024-bit RSA 簽章,不必分解金鑰。他們拿一台 HSM 當 oracle,整個攻擊共花 1380 CPU core-years、五個月與 2³² 次 oracle 查詢,其中大部分是預運算;預運算完成後,任選訊息都能離線在 180 core-years 內偽造簽章。作者估計在有簽章 oracle 的情境下,RSA 的實際安全強度應比依分解估算低 15 到 30 bits,連 4096-bit 都達不到 128-bit 安全等級。