調研視窗:2026-11-05 08:00 ~ 2026-11-06 08:00(北京時間,24 小時)

信源:RT-Thread 官方新聞介面與官網新聞列表、GitHub 主倉庫 commits / PR / Issue / releases / tags、RT-Thread org 倉庫推送清單(env 與 sdk 兩個倉庫本期有推送)、Google News 中英文四組查詢(走代理)、電子工程專輯 RT-Thread 官方專欄、club.rt-thread.org 論壇(本期仍受站點 WAF 限制)


本期索引

  • 一、核心與版本動態
    • ARM 配置搬出公共 Kconfig:libcpu 開始按架構分家(11-05)
    • RISC-V Smart 的 MMU 與使用者異常:四處根因一起修(11-05)
    • 訊號投遞不再持鎖睡眠,ELF 段保護順序糾正(11-05)
    • 驅動與工具七筆:SDIO、串列埠、virtio、NVMe、HID、mkdist(11-05)
  • 二、安全跟進與待合併佇列
    • ivshmem 把裝置配置字當可信輸入,/dev 節點成了任意實體記憶體通道(11-06)
    • 兩小時十一分鐘後出修復:新增選項把 JailHouse 回退關進籠子(11-06)
    • MSI-X 校驗從待審到合入:昨天報的那條今天落地(11-05)
    • 一天合入十一筆越界與引數校驗修復(11-05)
    • 佇列:四十八筆待審更新,塊裝置分割槽那筆仍掛著(11-05)
  • 三、官方與社群活動
    • Titan Board 接上 OpenMV:170 個 Python 示例,NPU 走 TFLM(11-05)
    • Env 外掛市場改成無伺服器索引:外掛包放進 GitHub Release(11-06)
    • 官方新聞介面仍停在六月,論壇仍是 468(11-06)
  • 四、生態與廠商適配
    • ESP32-C3 預編譯映象拒絕 v1.x 晶片:最小版本欄位沒對齊(11-05)
    • BSP 與測試基建五筆:D1s 進 QEMU、efm32 進 menuconfig、三套框架測試(11-05)
  • 五、本期趨勢與總結
    • 一天三十一筆:積壓清賬取代逐步推進
    • 趨勢:裝置側輸入成為第二個主戰場
    • 侷限性與去重說明

一、核心與版本動態

1.1 ARM 配置搬出公共 Kconfig:libcpu 開始按架構分家(11-05)

日期:2026-11-05 22:26(合入時間) 來源:提案 #11988、議題 #9187

267 行新增、173 行刪除,三個檔案:新增 libcpu/arm/Kconfig,原 libcpu/Kconfig 裡 ARM 相關的架構標識、核心型號、ARM MMU/MPU 與 GIC 配置整體搬進架構目錄,原地用 rsource 引入;公共能力與跨架構的 KERNEL_VADDR_START 留在原檔案。作者 zijunteng238-dot 上午 11:51 建提案,晚上 22:26 合入,十個半小時走完全程。

這次的做法值得單獨記一筆:它不新增選單、不改符號、不改預設值、不改依賴與 select 關係,只搬家。驗證方式也不是「編譯過了就算」——作者用 Kconfiglib 14.1.0 對拆分前後的全部解析符號做對比,配置值、型別、可見性、可賦值範圍、預設值與選擇關係逐項一致,排除檔案路徑與行號變化後沒有新增解析警告;比對覆蓋五個 BSP:frdm-k64f(Cortex-M4)、qemu-vexpress-a9(Cortex-A9)、renesas/rzt2m_rsk(Cortex-R52)、qemu-virt64-aarch64 與 qemu-virt64-riscv,並在 RISC-V 上跑了 scons –menuconfig 比對選單輸出。另外在記憶體裡給 A9、AArch64、RISC-V 開啟 SMART 與 IOREMAP_LATE 再比一輪,未寫回配置檔案。

對長期維護的意義在結構:libcpu/Kconfig 此前把 CPU 公共能力和多架構配置混在一起,任何架構加選項都要動同一個檔案,衝突與誤改機率隨架構數量上漲。這次拆完,RISC-V、ARM 各自的 Kconfig 可以獨立演進,與上一期文件化的版本釋出流程是同一條治理線——先把結構理順,再談版本節奏。配套新增了 documentation/4.tool/scons/libcpu_kconfig_arm_split.md,把拆分範圍、依賴處理與驗證結果都寫進倉庫,後續搬其它架構可以照此執行。

1.2 RISC-V Smart 的 MMU 與使用者異常:四處根因一起修(11-05)

日期:2026-11-05 11:15(合入時間) 來源:提案 #11892

109 行新增、8 行刪除,四個檔案,維護者 BernardXiong 提的,10 月 18 日建、本期合入,中間經過 11 條行內評審。這條對 RISC-V 側的 RT-Smart 是本期最實質的一筆。

改動列了四條根因,都是同一類問題的不同側面。其一,早期頁表指標沒有按核心物理偏移做轉換,核心被載入到非零實體地址時頁表描述符指錯地方。其二,每個 hart 的核心頁表繼承了使用者對映,等於在 hart 之間留下了不該有的地址空間。其三,早期頁表在開啟 MMU 之前沒有清理。其四也是最要命的一條:未處理的使用者態異常會讓核心整體終止,而不是隻結束當前程序——使用者程序的一條野指標就能拖垮系統。

對應的修法是:新增玄鐵架構選擇與 SVPBMT 選項;早期頁表指標帶核心物理偏移轉換;允許 MPR 範圍延伸到低於連結核心基址;啟用 MMU 前先清理早期頁表;清掉每 hart 核心頁表裡的使用者地址項;使用者異常只終止當前 LWP;上報使用者上下文期間保持中斷開啟。

驗證條件寫得坦白:BSP 用 qemu-virt64-riscv 與 bsp/k230,配置 RT_USING_SMART 加 ARCH_RISCV64,作者本地沒跑構建,理由是環境裡沒有 RISC-V musleabi 工具鏈,交 CI 驗證。這與上一期串列埠那筆的驗證說明是同一種坦白,方向上沒問題,但 RISC-V Smart 這條線上的執行時行為最好還是靠實機複測兜底。

1.3 訊號投遞不再持鎖睡眠,ELF 段保護順序糾正(11-05)

日期:2026-11-05 11:16(合入時間) 來源:提案 #11895、提案 #11899

兩筆同屬 lwp 子系統,都由 BernardXiong 合入。第一筆 #11895 改五個檔案、58 行新增、27 行刪除,含 RISC-V 側的彙編入口 lwp_gcc.S、lwp_elf.c 與 lwp_signal.c,三個提交。核心是順序問題:訊號處理路徑會拿睡眠鎖,因此必須保持可排程,程式碼裡用 OPEN_INTERRUPT 與 CLOSE_INTERRUPT 在關鍵段落顯式開關中斷;同時糾正了 ELF 段保護的施加順序,避免先寫後保護。

第二筆 #11899 更小,16 行新增,兩個檔案:sys_sigaction 在索引動作陣列之前校驗訊號編號,拒絕小於等於零與超過 _LWP_NSIG 的取值,返回 EINVAL。這類「先校驗再索引」補丁最近幾期已經出現多筆,屬於同一批審計的產物。

1.4 驅動與工具七筆:SDIO、串列埠、virtio、NVMe、HID、mkdist(11-05)

日期:2026-11-05(合入時間) 來源:提案 #11886、提案 #11931、提案 #11726、提案 #11920、提案 #11968、提案 #11873、提案 #11874

同批合入的七筆中等規模修復,逐條一句話:

  • SDIO 塊大小改為在塊配置完成之後再設定,避免先設大小再配置導致的時序不一致(#11886,8 行對改 8 行,三個檔案)。
  • 串列埠關閉檔案描述符時只在引用計數歸零才摘掉接收回撥,共享埠不再被第一個關閉者帶走回撥(#11931,9 行新增)。
  • virtio 網絡卡在 pbuf 分配失敗時補上 RX 緩衝區釋放,堵住丟包路徑上的洩漏(#11726)。
  • NVMe 掃描裝置時每個非活動 namespace 洩漏一次分配,改為複用與釋放配對(#11920,兩個檔案)。
  • virtio RPMsg 探測失敗路徑補 NS 資源釋放,並把錯誤碼向上傳遞(#11968)。
  • USB HID 介面描述符的 bInterfaceProtocol 選擇糾正,按協議而非固定值填寫(#11873)。
  • mkdist 的 disk 命令修兩個毛病:SConstruct 裡重複注入 RTT_ROOT,以及重建 dist 遇到無許可權刪除的目錄時直接失敗(#11874)。

這七筆單獨看都不大,但覆蓋了塊裝置、字元裝置、網路、儲存、USB 與構建工具六個層面,且全部集中在同一天落地,與下文的批次合入是同一波。


二、安全跟進與待合併佇列

2.1 ivshmem 把裝置配置字當可信輸入,/dev 節點成了任意實體記憶體通道(11-06)

日期:2026-11-06 00:54(報告時間) 來源:缺陷 #11992

報告者 XueDugu,延續他最近幾期在 PCI 與裝置驅動側的一條線。問題在 ivshmem 驅動的探測函式:當 BAR2 報告的尺寸為零時,程式碼走 JailHouse 回退分支,直接從 PCI 配置空間 0x40 到 0x4f 四個雙字讀取共享記憶體的地址與大小——這四段由裝置側決定,驅動沒有任何校驗,隨後把它們交給 rt_ioremap,而 rt_ioremap 本身不檢查實體地址合法性。

後果鏈條很短:惡意或格式異常的裝置把「共享記憶體」描述成核心記憶體區間,對映照樣成功,視窗再被註冊成 /dev/ivshmemN。之後的讀寫走的是官方 open/read/write 路徑裡的兩次 memcpy,一次把核心內容拷給使用者,一次把使用者資料寫回核心。於是任何非特權程序只要開啟這個裝置節點,就拿到任意核心實體記憶體的讀寫能力,位元組粒度、資料完全可控,不需要任何特殊 ioctl 或額外許可權。

報告還指出一處附帶問題:原始碼把 64 位欄位拆成兩個 32 位寫入,在 32 位構建上會寫到相鄰欄位,等於順手破壞結構體。這條與 MSI-X 那條同一個模式——裝置韌體提供的值被當作可信輸入,而驅動側缺少「先校驗後使用」的固定動作。

2.2 兩小時十一分鐘後出修復:新增選項把 JailHouse 回退關進籠子(11-06)

日期:2026-11-06 03:05(提案時間) 來源:提案 #11993

99 行新增、7 行刪除,兩個檔案,維護者 BernardXiong 提的,狀態待審,已有一條討論。

修法分四層。第一層是預設關閉危險路徑:新增 RT_IVSHMEM_JAILHOUSE 選項,預設 n,幫助文字寫明裝置必須可信;不開啟它時,BAR2 不存在就直接拒絕探測,不再讀配置字。第二層是對映前校驗:尺寸非零、地址加尺寸不溢位、整個區間能用本地指標與尺寸型別表達。第三層是型別修正:四個配置雙字先讀進 64 位區域性變數,不再透過 32 位別名寫結構體欄位,順帶修掉相鄰欄位被踩的問題。第四層是檢查配置空間讀取的返回值,讀失敗不再繼續。

驗證只到編譯與格式:兩種選項組合(JAILHOUSE 關與開)在 qemu-virt64-aarch64 上都能編譯透過,改過的檔案過 clang-format。從 00:54 報告到 03:05 提案,兩小時十一分鐘,比上一期 MSI-X 的六小時又快了一截。

2.3 MSI-X 校驗從待審到合入:昨天報的那條今天落地(11-05)

日期:2026-11-05 10:47(合入時間) 來源:提案 #11986、缺陷 #11985

上一期報告裡狀態為待審的那筆 MSI-X 修復,本期 10:47 合入,47 行新增、5 行刪除,只改 msi.c 一個檔案。五項校驗按原提案落地:BIR 越界拒絕、BAR 未分配或尺寸為零拒絕、表偏移加表項數與 BAR 大小比對、檢查配置暫存器讀取返回值、表項數超過表尺寸拒絕;計算側把物理基址與位元組數提到 64 位,避免 32 位加法溢位。

從 11-04 17:12 報告、次日 02:47 出提案、11-05 10:47 合入,整條鏈路兩天內閉環。本期把它單獨列出來的原因是:它和下面兩條同類缺陷構成了同一類問題的連續樣本——裝置側輸入校驗,而這個面上此前幾乎沒有審計覆蓋。

2.4 一天合入十一筆越界與引數校驗修復(11-05)

日期:2026-11-05(合入時間) 來源:提案 #11941、提案 #11935、提案 #11899、提案 #11895、提案 #11970、提案 #11971、提案 #11962、提案 #11918、提案 #11558、提案 #11901、提案 #11986

本期 31 筆合入裡,與前幾期連續追蹤的安全線直接相關的有 11 筆,全部在 24 小時內落地。除已單列的三筆,其餘八筆的要點:

  • 終端 ioctl 的使用者指標加固(#11941,503 行新增、57 行刪除、七個檔案):TIOCGWINSZ、TIOCSWINSZ、TIOCGPGRP、TIOCGSID、FIONREAD、TIOCGPTN 等命令改為先進核心棧緩衝再 copyin/copyout,未識別命令返回 ENOTTY。
  • signalfd 關閉路徑補邊界校驗與安全摘鏈(#11935,526 行新增、228 行刪除、11 個檔案):這是本批最大的一筆,涉及槽位引用與 lwp 生命週期,改動跨 libc 與 lwp 兩個子系統。
  • 幀緩衝讀寫拒絕非法偏移(#11970):偏移為負或超出平面長度時直接返回零。
  • pipe ioctl 使用者指標校驗(#11971),與 #11941 同一批思路。
  • 藍訊 AB32 的 ADC 通道校驗(#11962):通道號限制在 0 到 15,換算失敗即返回 EINVAL。
  • 9PFS 客戶端把服務端可控長度收斂到實收位元組(#11918,63 行新增):修復報告 #11289 裡的越界讀與目錄資訊洩露,逐條校驗記錄長度、名字長度與剩餘位元組。
  • CFI MTD 擦除區數量與扇區表邊界(#11558):數量超出本地表即讓探測失敗,扇區計數等於陣列長度時按已滿處理。
  • 裝置樹解平鋪加深度上限(#11901,72 行新增):預檢查遍歷算最大深度,超過 63 層直接拒絕解平鋪,不再寫越固定棧。

值得記的分佈:這 11 筆裡 usualtreee 與維護者 BernardXiong 各 3 筆,adilalperenciftci 2 筆,其餘 3 筆來自 cms19859230182-lang、Old-Ding 與 liangzhan5。把它和 5.1 的全量分佈放在一起看,外部貢獻者已經形成穩定的審計產出節奏,維護者的工作重心正從「找問題」轉向「審補丁」。

2.5 佇列:四十八筆待審更新,塊裝置分割槽那筆仍掛著(11-05)

日期:2026-11-05(提案更新時間) 來源:提案 #11981、提案 #11990、提案 #11989、提案 #11987、提案 #11897

視窗內更新的待審提案共 48 筆,其中三筆值得盯:

塊裝置分割槽的任意核心寫修復(#11981)在 16:03 又有更新,仍未合入。這條已經掛了三天,缺陷本身是使用者態傳入的分割槽結構體指標被核心直接解引用,屬於高危,建議優先。

測試基建兩條並行推進:#11990 把 DAC 與 I2C 框架測試接進 QEMU 自動執行(20 行改動,改的是 utest_auto_run.yml 與新增配置),#11989 給 dlmodule 補 QEMU 迴歸覆蓋。這兩筆與本期合入的三套框架測試(見 4.2)是一套組合拳。

功能側,ulog 支援輸出呼叫函式、檔案與行號(#11987,14:22 建);K230D 支援與 Smart 改進(#11897)在 10-18 建、本期 17:21 更新,BSP 是 RISC-V 的 K230,與 1.2 的 Smart 修復屬同一條線。


三、官方與社群活動

3.1 Titan Board 接上 OpenMV:170 個 Python 示例,NPU 走 TFLM(11-05)

日期:2026-11-05 17:30(專欄釋出時間) 來源:電子工程專輯:Titan 也能玩 OpenMV 了、工程:Titan_Openmv

RT-Thread 官方專欄本期釋出 Titan Board 的 OpenMV 工程,把 RT-Thread 5.1、OpenMV 5.0.1 與 MicroPython 一起搬到這塊基於瑞薩 RA8P1 的板子上:1 GHz Cortex-M85 跑系統與應用,250 MHz Cortex-M33 協處理,Ethos-U55 NPU 配到 500 MHz,外掛 32 MiB HyperRAM 存影象與執行記憶體,峰值 AI 算力標稱 256 GOPS。外設側接 OV5640 MIPI 攝像頭、FAT/FAT32 SD 卡、USB HS 的 CDC 與 MSC 複合裝置,以及板載三色 LED 與按鍵。

示例規模是這次的主要賣點:共 170 個獨立 Python 指令碼,傳統視覺 124 個,覆蓋相機控制、拍照錄影、繪圖、濾波、顏色跟蹤、條碼、特徵檢測與 AprilTag;機器學習 23 個,配 20 個面向 Ethos-U55-256 的模型檔案與一個由 CPU 執行的數值迴歸模型,任務覆蓋手勢(剪刀石頭布、手掌檢測、21 點手部關鍵點)、人臉與姿態(人臉檢測、468 點關鍵點、人體姿態)、目標識別(行人、貓狗、COCO80 常見物體)與影象分類分割。

工程組織方式對上手有實際幫助:程式碼在 SDK 的 project/Titan_Openmv,同時支援 RT-Thread Studio 與 SCons;構建產出兩個必須配套使用的檔案——rtthread.hex 走 DAP-Link 或 J-Link 燒錄,openmv-vision.bin 走 USB 複合裝置傳輸,兩者必須來自同一次構建。模型與標籤放 models/sdcard/,按說明覆制到 SD 根目錄即可;指令碼里的 /rom 是 SD 根目錄的只讀別名,不需要另建目錄;想讓作品開機自啟,把應用存成 SD 根目錄的 main.py。文中還特別提醒 IDE 裡顯示的 AE3 只是協議相容標識,不能刷 Alif AE3 的韌體,板子用的是本工程的 RA8P1 韌體。

兩點技術判斷:一是這套組合把「相機採集、影象處理、神經網路推理、外設控制」串在同一條 Python 指令碼里,端側視覺的門檻從寫 C 驅動降到改引數;二是運算元按支援情況在 CPU 與 NPU 之間分流,TFLM 負責排程,意味著模型能不能跑起來取決於運算元覆蓋,示例裡的 20 個模型本身就是一份可用的覆蓋清單。

3.2 Env 外掛市場改成無伺服器索引:外掛包放進 GitHub Release(11-06)

日期:2026-11-06 07:05(合入時間) 來源:提案 env #304、提案 sdk #11、索引目錄 env-plugins

兩個倉庫同一批改動:sdk 倉庫新增 env-plugins 目錄,放一份 index.json 作為外掛目錄,每個外掛一個子目錄再放自己的 index.json;env 倉庫實現讀取這份「無伺服器索引」,並從 GitHub Release 下載 .epack 安裝包。env 側 1108 行新增、48 行刪除,18 個檔案,包含市場邏輯、WebUI 前端頁面、命令列子命令與五組測試;sdk 側 125 行新增、四個檔案。

對外可見的變化是使用方式:預設從本地 SDK 倉庫讀索引,不需要部署市場伺服器;外掛包釋出在 GitHub Release;顯式設定環境變數或執行 rt-env plugin market set 仍優先走 HTTP 市場,而 rt-env plugin market clear 可以清掉檔案裡的 HTTP 配置回落到 SDK 來源,環境變數始終優先順序最高。首個上架外掛是 RT-Kconfig 配置器 0.1.34,索引裡的下載記錄指向該倉庫 Release 裡的真實 .epack 資產,不是佔位條目。

安全側做得比預期細:下載尺寸有上限,超限返回 413;重定向必須同主機同協議,跳到意外域名直接拒絕;索引路徑禁止逃出 env-plugins 目錄;外掛 id 有正則約束且檢測重複。配套提交把外掛迴歸測試接進 GitHub Actions,並在 CI 打包測試前先構建隨包 epack。對生態的實際意義是,第三方外掛不必再等官方市場稽核與伺服器,發一個 Release 加一條索引就能分發,代價是信任邊界從「官方市場」挪到了「倉庫維護者」。

3.3 官方新聞介面仍停在六月,論壇仍是 468(11-06)

日期:2026-11-06(核查) 來源:RT-Thread 官方新聞列表

官方新聞介面 getList?type=rt_org 返回的最新條目仍是 2026-06-17 的「RT-Thread 睿賽德科技受邀出席 2026 阿布扎比投資論壇」,本期無新增,官網首頁新聞區同樣停在六月。這是連續多期同一結論,官方對外發布的重心已經穩定在媒體專欄與 GitHub。

論壇 club.rt-thread.org 本期仍返回 468 並前置 WAF 挑戰頁,帖子列表與正文無法直接讀取。社群討論側只能靠 GitHub 的 issue 與 PR 評論補齊,本期 #11992 與 #11993 的三條討論就是這樣拿到的。


四、生態與廠商適配

4.1 ESP32-C3 預編譯映象拒絕 v1.x 晶片:最小版本欄位沒對齊(11-05)

日期:2026-11-05 23:24(報告時間) 來源:缺陷 #11991

報告者 anamarija-j,影響版本寫明 v5.3.0 與 master cbadbdf,硬體是 ESP32-C3、晶片修訂 v1.1(ROM 版本 esp32c3-eco7-20230720),BSP 為 bsp/ESP/ESP32_C3。這是本期唯一一條 RISC-V BSP 的迴歸缺陷。

現象分兩段:esptool 直接拒絕燒寫,提示預編譯的 bootloader.bin 要求晶片修訂 3 及以上,而這塊板子是修訂 1;加 –force 強燒後,二級 bootloader 能啟動,但在讀分割槽表之前停止,日誌寫明晶片是 V101、應用配置的最低修訂是 3。

根因在欄位語義:預編譯 bootloader 只填了舊的 min_chip_rev 欄位(值 3),全量欄位 min_chip_rev_full 是 0;這顆 ESP-IDF v5.0-dev 的 bootloader 恰好拿舊欄位與次版本號比較,v1.1 的次版本是 1,於是判定不滿足。BSP 的 SConstruct 同樣只設定 image.min_rev = 3,生成的 rtthread.bin 帶同樣的問題。換句話說,同一個「最低修訂」用新舊兩套欄位表達,預編譯產物與構建指令碼都只寫了舊的那套,遇到按新規則解讀的晶片就卡住。

這條的實際影響面不小:ESP32-C3 是 RT-Thread 生態裡最常見的 RISC-V 無線 MCU 之一,預編譯映象不能用等於新使用者第一次上板就失敗,只能自己從頭編譯。修法不復雜,SConstruct 與預編譯產物同時寫 min_chip_rev_full 即可,但要連帶重新出包。

4.2 BSP 與測試基建五筆:D1s 進 QEMU、efm32 進 menuconfig、三套框架測試(11-05)

日期:2026-11-05(合入時間) 來源:提案 #11903、提案 #11867、提案 #11883、提案 #11982、提案 #11976

BSP 側兩筆,都是「讓板子更好用」的方向。全志 D1s 補了 qemu-d1s.sh 啟動指令碼,可以直接在 d1s 的 QEMU 機型上跑這個 BSP,省掉找映象與拼引數的步驟(#11903)。EFM32 補了 Kconfig 與 .config,正式支援 scons –menuconfig,此前只能手改配置(#11867)。

測試基建三筆,方向一致:給框架本身加模擬裝置測試。看門狗補冒煙測試,容忍超時量化的誤差與非可停止的關閉路徑(#11883,對應缺陷 #11446);I2C 用模擬匯流排覆蓋框架層,不依賴真實硬體(#11982);DAC 用模擬裝置測試(#11976)。三筆都由社群貢獻者提交,加上 2.5 裡待審的 QEMU 自動執行改造,可以看出一個明確動作:把驅動框架的驗證從「等硬體」變成「進 CI」。


五、本期趨勢與總結

5.1 一天三十一筆:積壓清賬取代逐步推進

本期 24 小時主倉庫合入 31 筆提案,是近期最大的一次單日批次。時間分佈很集中:02:47 到 03:18(北京時間 10:47 至 11:18)的 31 分鐘內合入 17 筆,05:23 到 10:40 之間再合入 13 筆,最後一筆 ARM Kconfig 拆分在 22:26 單獨落地。

批次構成說明這不是「今天寫、今天合」:多筆是 10 月中下旬建的老提案——#11892 與 #11897 同一天建(10-18)、#11901 建(10-19)、#11918 建(10-22)、#11935 與 #11941 建(10-28)、#11947 建(10-29),最老的一筆 #11558 建在 7 月 5 日。也就是一個跨了四個月的積壓,在一次集中評審後統一落地。對下游的意義是:這兩天拉 master 會看到一大片變更,迴歸測試的成本集中釋放,而不是攤平到每天。

另一個訊號是合入者的結構。31 筆裡 usualtreee 7 筆、BernardXiong 5 筆、cms19859230182-lang 4 筆、adilalperenciftci 2 筆,其餘 13 筆來自不同貢獻者。稽核與提交的分工已經比較清楚:外部貢獻者出補丁,維護者做校驗與合批。

5.2 趨勢:裝置側輸入成為第二個主戰場

把最近四期連起來看,攻擊面在挪位置。10 月底到 11 月初報的多是系統呼叫層的「值到物件」缺校驗:getaddrinfo 的巢狀使用者指標、pipe 的 ioctl 指標、timerfd、塊裝置分割槽的裸指標。這一期的兩條新缺陷換了前提——MSI-X 要求插進來一塊惡意裝置,ivshmem 要求裝置把配置字填成核心地址。共同點是:裝置韌體提供的暫存器被核心當作可信輸入,而 rt_ioremap 不做實體地址合法性檢查,於是「裝置說什麼就對映什麼」。

處置速度是另一條線:MSI-X 從報告到提案 6 小時、到合入兩天;ivshmem 從報告到提案 2 小時 11 分。報告者給的是帶 PoC、帶日誌、帶版本追溯的完整材料,維護者拿到就能直接改,這比流程規定更能壓縮修復時間。代價是佇列繼續變厚:48 筆待審更新,塊裝置分割槽那筆掛了三天仍未合。

第三條線是結構與工具同步推進:libcpu/Kconfig 開始按架構分家,版本編號與釋出流程已經成文,Env 的外掛分發從中心化市場改成「倉庫索引加 Release」,測試則從等硬體改成進 CI。這四件事不在一條線上,但都是把「靠人記」換成「靠結構約束」。

5.3 侷限性與去重說明

論壇仍返回 468 並前置 WAF 挑戰頁,社群討論側的缺口由 GitHub 補齊;官方新聞介面與官網新聞列表均停在 6 月 17 日,連續多期無新增。電子工程專輯的專欄聚合頁本期直連未取到列表,Titan 一條是靠 Google News 命中標題後用網頁抽取核對正文與釋出時間的。

GitHub 側本期採集在後期觸及匿名介面限額(60 次每小時),主倉庫的合入、缺陷、待審列表與兩個附屬倉庫的提交均已完成核查,但組織外部的 topic 檢索本期未執行,因此不排除有個別社群倉庫的小幅更新未被收錄;這一點如實說明,不做推測性補充。

去重:#11986 上期按待審記錄,本期按合入補記並說明鏈路時間;#11981 上期已列,本期只記狀態;#11897 上期在佇列裡出現過,本期只記更新時間與 RISC-V 關聯;Titan 的工程程式碼在 10-30 已進倉庫,本期收錄的是 11-05 的官方釋出稿與工程說明,不重複計為程式碼更新。


附錄:信源核查表與信源清單

信源核查表

信源 核查結果
官方新聞介面(rt_org) 24 小時無新增,最新條目停在 2026-06-17
官網新聞列表 首頁新聞區仍為 6 月,無新增
社群論壇 前置 WAF 挑戰頁(HTTP 468),列表與正文無法讀取
主倉庫 commits 視窗內推送集中在 11-05 02:47 至 14:26(UTC)三波
主倉庫 PR 合入 31 筆;待審更新 48 筆
主倉庫 Issue 新建 2 筆(#11992 ivshmem、#11991 ESP32-C3)
主倉庫 releases 與 tags 無新增,最新仍為 v5.3.0(2026-09-10)
RT-Thread org 倉庫 35 個倉庫核查,主倉庫、env、sdk 三個有推送
env 與 sdk 倉庫 env 合入外掛目錄提案(18 檔案),sdk 釋出首個外掛索引
Google News 中文 3 日內 4 條,僅 11-05 的 Titan OpenMV 稿為本期新增並收錄
Google News 英文 零有效命中
HN Algolia 7 條全部為 Thread 組網協議、招聘或無關內容,已剔除
電子工程專輯官方專欄 11-05 一篇 Titan OpenMV 稿,已收錄
倉庫檢索(topic:rt-thread) 本期因匿名介面限額未執行,見 5.3

完整信源清單

s://github.com/RT-Thread/sdk/tree/main/env-plugins>