2026.06.07 —— 今日 10 則
TODAY'S THREAD 今天的共同主軸是「誰能把東西送進你信任的那一層」——rsync 的 bug 風暴其實是 AI 生成 CVE 灌爆維護者、CPython JIT 被要求先過 PEP 才能轉正、智慧電視被 SDK 變成 AI 爬蟲的住宅代理、連 Stripe 的 API 都被 skimmer 拿去當 C2 通道。
Claude 真的讓 rsync 變多 bug 了嗎——36 個版本的數據說法
五月有人在 Mastodon 上指控 Claude 協助開發替 rsync 帶進了 bug,引爆一輪社群怒火。這篇分析用「每 10 個 commit 的嚴重度加權 bug 數」量化 36 個版本(v2.4.6 到 v3.4.3),發現只有兩個含 Claude commit 的版本、且分落在歷史 IQR 的兩端,exact permutation test 給出 p=46%——隨手抽兩個歷史版本有近半機率更糟。真正的混淆變項是 AI 生成的 CVE 報告灌爆了維護者,逼出比平常更多的安全性改動。
You Only Index Once:跨層共用 routing 的稀疏注意力
長 context 的推論越來越卡在 decode 階段,尤其 reasoning 模型動輒吐出很長的 chain-of-thought。這篇論文提出 cross-layer sparse attention 搭配 shared routing——讓多層共用同一份 token 選擇(index once),避免每層各自重算稀疏注意力的 routing 成本,在效率與品質的取捨上往前推。對在做長序列推論服務、被 KV cache 與 attention 成本卡住的人,這是值得追的一條路。
CPython 的 JIT 被按下暫停鍵——Steering Council 要一份 PEP
6 月 5 日 Python Steering Council 宣布:CPython 裡那個實驗性的 copy-and-patch JIT 在轉正之前,必須先有一份被接受的 Standards Track PEP,且即日起凍結所有新功能與效能開發,只留 bugfix。理由是這項複雜度與影響範圍都很大的改動,當初只靠一份 informational 的 PEP 744 就併進 main,治理上走得太鬆。六個月內若沒有可接受的 PEP,JIT 程式碼就得移出 main——對等著 free-threading 與 JIT 一起成熟的人,這是把技術決策拉回流程的明確訊號。
WoofWare.PawPrint:一個追求決定性的 .NET runtime
WoofWare.PawPrint 是一個追求「決定性」的 .NET runtime——目標是讓同一段 IL 在任何機器、任何時間跑出 byte-for-byte 相同的結果,把非決定性的來源(時間、執行緒排程、雜湊隨機化等)關掉或固定。對需要可重現建置、record-and-replay 除錯,或想驗證執行軌跡的人,決定性 runtime 是讓「重跑就重現」變得可能的底層建材。它目前是早期的個人專案,卻點出了一條主流 CLR 不容易走的路。
Zeroserve:用 eBPF 而不是設定檔來描述一台 web server
Zeroserve 把 web server 的請求處理邏輯交給 eBPF:不是靠設定檔,而是用你掛上去的 eBPF 程式描述路由與行為,主打零設定啟動。把可程式化的資料平面放上請求路徑,理論上能在很靠近 kernel 的地方做輕量的請求改寫與決策,而不必拉起一整套應用層中介。這是登上 Hacker News 首頁的新嘗試,值得關注它把多少原本寫在 nginx 設定那層的東西換成了可程式化邏輯。
你客廳的智慧電視,是 AI 爬蟲經濟裡的一個節點
includesecurity 揭露:你客廳那台智慧電視,很可能正是 AI 爬蟲經濟裡的一個出口節點。某些電視 app 內建的 SDK 會把裝置變成住宅代理(residential proxy),讓第三方流量——包括大規模的 AI 訓練資料抓取——從你家 IP 出去,繞過網站對資料中心 IP 的封鎖。對做反爬蟲、流量風控或在意自家網路被當跳板的人,這說明了住宅代理池的供給是怎麼從消費性裝置長出來的。
用 MicroPython+WASM 在瀏覽器裡開一個 Python 沙箱
Simon Willison 示範把 MicroPython 編譯成 WASM,在瀏覽器裡開一個沙箱跑使用者貼進來的 Python——不必把 CPython 整包搬進去,MicroPython 小到適合當前端內嵌直譯器。沙箱邊界由 WASM 提供:程式只能碰到你顯式給的東西,預設沒有檔案系統、沒有網路。對想讓使用者在頁面上跑不可信程式碼、又不想架後端執行環境的人,這是一條很輕的路。
為什麼 UUID 主鍵在 SQLite 會慢 14 倍
在 SQLite 用隨機 UUID4 當主鍵,插入速度可能比循序整數主鍵慢上 14–16 倍——因為 SQLite 的資料表本身就是一棵以主鍵排序的 B-tree,隨機鍵讓每次插入都落在不可預測的頁面,逼出大量頁面分裂與重新平衡。作者用 1 億列的基準把帳算清楚:整數主鍵約每百萬列 700–850ms,UUID4 WITHOUT ROWID 從 2,649ms 一路惡化到 12,586ms,換成時間有序的 UUID7 就回到 1,250ms 上下。對在 edge 或本地端大量用 SQLite 的人,主鍵的選擇直接寫進寫入吞吐。
TidesDB 接成 MySQL 9.7 的儲存引擎
Percona 把 TidesDB 接成 MySQL 9.7 的儲存引擎——TidesDB 是一個 LSM-tree 為底的 key-value 引擎,寫入走 append 與背景 compaction,理論上在寫密集工作負載上勝過 InnoDB 的 B+tree 與既有的 RocksDB。MySQL 9.7 可插拔的儲存引擎介面讓這種替換變得實際:同一套 SQL 與交易語意,底層換成另一種寫入路徑。對被寫放大與 write throughput 卡住、又不想離開 MySQL 生態的人,這是一個值得 benchmark 的選項。
Magecart 把 Stripe 的 API 當成 C2 通道
sansec 追蹤到一組 Magecart skimmer,把 Stripe 的 API 當成自己的命令與控制(C2)通道:被植入的惡意腳本透過看似正常的 Stripe API 呼叫收發指令,藏身在電商網站本來就會打 Stripe 的合法流量裡,躲過以網域為基礎的偵測。手法的關鍵在於濫用一個受信任的第三方端點當基礎設施,讓流量分析很難把惡意與正常分開。對做前端供應鏈安全、CSP 或金流整合的人,這提醒了連支付端點都能被當成隱蔽管道。