本卡屬 FR-195(Agent 資安修正),第 3 批 F10。修 FR-186 掃描的 S7 F1 的主機端修法;H4 第 6 節列的受影響位置,嚴重度:高(第二層防線)。 目前暫緩,工作坊不派。
F1 已經在 Python 端把「程式樹裡有捷徑檔」擋掉,攻擊的入口封住了。這張是第二層:主機升級腳本在驗章通過之後,又用 docker cp 從新映像把腳本重讀一次才執行。改成直接用剛剛驗過的那份副本,「驗的」和「跑的」就保證是同一份。
image_read_file 從新映像重讀,共八處(清單在 Agent repo docs/security-scan/FR-186/scan-H4.md 第 6 節)。FR-193 合回後這些改成讀主機副本,那份清單的行號已全部失效,以下一條的現況為準。b8b1158 核過):FR-193 已經把這條縮小很多——升級時驗過章才把新版 install-lib 存成主機副本(scripts/install/lib/host_lib.sh hl_save,root 755),之後 root 執行的都是主機副本,不再每次從映像重讀。剩下的洞只有一處:scripts/install/lib/image_verify.sh:37 驗完就把驗過的樹刪掉,host_lib.sh:17 hl_save 又用 image_copy_out 從映像重新取一次 install-lib。「驗的那份」和「存下來執行的那份」是兩次分開取的。F1(CM-3823)已經在 Python 端擋掉捷徑檔與清單外的檔,這個洞因此很難利用;這張是補上第二層。
🔴 為什麼還暫緩:FR-193 還有三張卡沒收——CM-3810(升級與回滾全程 rootless)、CM-3811(compose 拿掉 NET_RAW)暫緩中,CM-3865 修正待驗證。它們會改 deploy/install.sh、upgrade_order.sh、upgrade_runner.sh,跟這張是同一批檔,同時改合回會衝突。等那三張收完,首腦把這張改回 Not started。scripts/install/lib/image_verify.sh
scripts/install/lib/upgrade_runner.sh
scripts/install/lib/upgrade_order.sh
deploy/install.sh
test/shell/manual_upgrade.bats
test/shell/upgrade_runner.bats
test/shell/upgrade_order.bats
image_verify.sh verify_new_image_tree 驗過後不刪樹,把驗過的 <工作目錄>/tree 留著(呼叫端負責最後清掉);②host_lib.sh hl_save 多收一個選填參數「已驗過的樹的路徑」,有給就從那個路徑的 install-lib/ 複製(cp -a 後照原本的 chown/chmod),沒給(首裝)才照舊從映像取;③兩個升級入口(deploy/install.sh:2676 手動升級、upgrade_order.sh 自動升級)把驗過的樹路徑傳給 hl_save,存完副本才刪樹。首裝那條(deploy/install.sh:3090)不變。既有測試 test/shell/manual_upgrade.bats、test/shell/upgrade_order.bats 已涵蓋驗章流程,改完兩支要全綠(用 Linux 容器跑,指令在測試檔頭)。無(客戶無感)。
暫緩卡。等 FR-193 剩下的 CM-3810、CM-3811、CM-3865 收完(它們會改同一批檔),首腦再把狀態改回 Not started。工作坊不派這張、也不擋這一批。
Stage 3/Model opus/Effort medium/Repo agent。暫緩卡。等 FR-193 剩下的 CM-3810、CM-3811、CM-3865 收完(它們會改同一批檔),首腦再把狀態改回 Not started。