問題總表:按風險等級排序(跨全部掃描批次)

⚠️ 本檔已由 docs/security-report/SUMMARY.md 取代,數字停在 2026-09-20,不要照它排優先序。 之後登記的項次(FR-113 的第 118~133 項、module_frame 那批的第 134~149 項)都沒有進這份表,第 128 項的影響範圍也已從「跨專案」升級為「跨客戶」而本檔未反映。 要按風險排順序,請看 docs/security-report/SUMMARY.md;要看完整條目,看同目錄的 README.md §3。

問題總表:按風險等級排序

這一頁回答一個問題:目前所有掃描找到的問題,按嚴重程度排下來是什麼樣子。

每一條只給一句話,由上往下掃一眼就是修正的優先順序。完整描述、檔名行號、出事會怎樣、修法細節都在主彙整頁 §2.2 與 §3,用「出處」欄的編號回去查。

最後更新:2026-09-20(FR-108 D2-4b 驗收+arc 收口,範圍內 0 條新增,與第 105 項重複)。沿革見 security-scan-LOG.md 與 git log。

✅ 掃描 arc 已於 2026-09-20 隨 FR-108 收口結束:決策者裁定「這條線做完,掃描就結束、其餘套件不再掃」——本頁數字為最終數字。

🔵 2026-09-20 做過第二次複查(只查「檔案真的被改過」的 42 條):新判 2 條已修(第 22、25)、6 條部分修,其餘仍在。標記直接寫在下面各列;完整結論與四件教訓見主彙整頁 §3 開頭。標「⚠️ 部分修」且註明「開卡前原文必須改寫」的三條(第 34、40、49),照原文開卡會讓人做一件已經做完的事。


§1

一分鐘看完

風險等級 數量 現在的狀態
🔴 最嚴重 1 工單(CM-1595)已開好,還沒排進度
🟠 高 36 其中 4 條已開工單,32 條只登記、還沒開工單
🟡 中 60 全部只登記、還沒開工單,等統一安排
⚪ 低風險 51 資安類 27 條 + 24 項「不算資安、但確實是程式錯誤」
共 161 列 底層是 145 項已登記未開工單 + 16 張已開工單;差額是主表第 1 項(公告權限四個洞)在這裡按嚴重度拆成三列

全部沒有排進度,是決策者裁定「等所有套件都掃完,再一次排優先順序」的結果,不是被遺漏。

🔴 如果只能先做四件

  1. 遠端代理程式那條最嚴重的(CM-1595)——工單早就開好躺著,不用登入就能取走客戶機器上的明文帳密,而且可以冒充別家客戶的機器。
  2. 檔案上傳那一整群——高風險裡有 6 條在這裡,而且同一套修法可以一次解決。
  3. 防竄改那兩條——已實測證實:換掉一支工具庫,整套防竄改永久失效且不發警示。
  4. 弱點掃描規則包被當程式碼執行——只要有租戶管理員權限就能在後端執行身分下任意執行程式碼。

§2

🔴 最嚴重(1 條)

套件 問題 怎麼修 狀態
遠端代理程式
(jedi-remote-agent)
四支控制端點完全不驗呼叫者身分,不用登入就能取走客戶掃描工具的明文帳密,還能冒充別家客戶的機器 應用層補身分驗證,只靠 nginx 不夠 工單 CM-1595 已開,未排

§3

🟠 高風險(36 條)

群一:只驗登入、不檢查東西是不是你的(18 條,最大一群)

共同點:系統認得出「你是誰」,但從不問「這筆資料是不是你的」。修法可以共用一套。

套件 問題 怎麼修 出處
檔案上傳
⚠️ 部分修
拿到檔案編號就能下載別人的檔案 服務層比對這筆資料的主人。⚠️ 09-20 複查:資料庫隔離已補上、跨客戶那半被擋住,缺口縮小成同一客戶內跨專案;開卡前原文必須改寫 §3.1 第 34
檔案上傳 能替任何檔案換發一張免登入的下載通行證,傳到公司外面 同上 §3.1 第 35
檔案上傳
⚠️ 部分修
檔案服務層只憑編號就交出檔案(上面三條在主專案這一側) 同上。⚠️ 09-20 複查:同第 34 項,應用層一行未動、開卡前原文必須改寫;現在 entity 上有檔案主人欄位可用,修起來更容易 §3.1 第 40
檔案上傳 上傳的網頁檔在我們自己的網域裡被當成程式執行 預覽不照使用者填的副檔名決定型別 §3.1 第 36
檔案上傳 任何登入者打一支查設定的功能,就拿到雲端儲存帳密明文 補權限檢查+加進密碼遮蔽名單 §3.1 第 39
檔案上傳
✅ 已修
存放檔案紀錄那張表的資料庫隔離已補上,但同群上面三條應用層檢查仍沒補 ✅ 已修(資料庫層) §3.1 第 47
稽核流程引擎
⚠️ 部分修
知道任務編號就能讀走別家客戶的稽核證明清單,含檔案編號 補歸屬檢查。⚠️ 09-20 複查:任務表隔離已補(實測擋得住),但證據表本身仍無客戶欄位無隔離,單筆讀取那條路沒被擋到;應用層一字未補 §3.1 第 49
稽核流程引擎 流程留言的讀取與寫入都只檢查登入,可冒用同事名義發言釣魚 補歸屬檢查 §3.1 第 51
任務平台 送一個空白查詢就撈光全公司所有客戶的專案成員名冊(實測 751 筆) 專案編號改必填+補成員檢查 §3.1 第 60
系統設定 讀系統設定的三個入口都不檢查權限,任何登入帳號拿得到物件儲存帳密 三個入口都補上現成的權限點 §3.1 第 72
弱點掃描
🆕
「測試連線」只驗登入,客戶公司裡任何人按一下就把掃描工具帳密解密外送 補一行權限宣告,照抄同檔寫入端 §3.1 第 85
問卷
🆕
查填答歷史明細完全不檢查歸屬,空白請求就整包讀走全客戶每一版答案與審核意見 改成必須指名有權看的任務問卷,再呼叫現成守門 §3.1 第 89
問卷
🆕
讀某份任務問卷的答案不檢查歸屬,拿到編號就讀得到別部門的作答與分數 比照同檔寫入端呼叫守門,一行就好 §3.1 第 90
意見回饋 六個操作只有「匯出」做了權限檢查,其餘五個任何人都能用 補權限檢查與歸屬檢查 工單 CM-1630
證據自動分類
🆕
舊版預覽端點填任何一個 Google 硬碟檔案編號就抓得到,射程是客戶整個硬碟 加 run 參與者守門,或拿掉舊線三支路由 §3.1 第 108
公告 單筆讀取公告完全不檢查權限,AI 儀表板那條路還能繞過權限讀走全客戶公告(含未發布草稿,前三筆原文送到第三方 AI) 補權限檢查與歸屬檢查;四個洞合併一張工單 §3.1 第 1
公告 修改或刪除公告不檢查歸屬,刪除時還會默默清空原本設定的發送對象 同上 §3.1 第 1
專案
⬆ 09-24 升
稽核輪次那組 8 支讀取不檢查是不是專案成員,同客戶任何人拿到輪次編號就讀得到別的專案的稽核判定、風險評等、改善計畫與負責人姓名(2026-09-24 FR-116 C3 由中升高) 修法 CM-2037 已寫好,合回 fix/security-b1 §3.1 第 66

群二:客戶之間的資料隔離沒生效(2 條)

共同點:切換到子客戶之後,還是看得到別家客戶的資料。

套件 問題 怎麼修 出處
跨套件盤點 切到子客戶仍看得到別家客戶的待辦與專案,13 張表的隔離沒生效 逐表開啟隔離(FR-094 已接手) §3.1 第 43
跨套件盤點 4 個資料查詢畫面直接繞過隔離機制 改寫查詢,或限縮誰能讀 §3.1 第 44

群三:密碼與金鑰外流(6 條)

共同點:憑證已經在外面,修程式救不回來,一律先換發再清殘留。

套件 問題 怎麼修 出處
文件站
🆕 最急
🔴 資料庫超級管理員密碼與兩組產品帳密寫在需求文件裡,那頁已自動發佈到公開文件站,開網址就看得到 先換密碼→清檔重佈→build 加密碼檢查(與 CM-1629 同源) §3.1 第 84
共用地基
✅ 已修
使用者的登入密碼與登入憑證,原文直接寫進日誌檔與資料庫 ✅ 已修(09-20 複查)——標頭走白名單、內容套遮罩,實際 grep 四個 log 檔明文 0 筆;⚠️ 舊 log 檔的明文屬資料清理、另處理 §3.1 第 22
公告 資料庫帳密、四家 AI 服務金鑰、套件庫與物件儲存憑證需要輪替 換發+清除殘留 §3.1 第 2
意見回饋 資料庫管理員密碼散落在 249 個檔案,其中一份主機帳號密碼三行湊齊 換密碼+清檔;測試機展示機要決策者當次指示 工單 CM-1629
意見回饋 Google 雲端硬碟金鑰外洩,而且所有客戶環境共用同一組 換發後重佈各環境;連加密金鑰一起換要先寫重加密程式 工單 CM-1631
安裝程式 每一套部署都種下同一組原廠超級管理員密碼,雜湊值寫死在安裝用的 SQL 檔裡,也不強制客戶第一次登入就改掉 改成裝機時隨機產生+強制首登改密碼(決策者已裁:先記錄,之後再看怎麼調整) §3.1 第 3

群四:防竄改機制可以被廢掉(2 條)

共同點:防線本身可以被關掉,而且關掉之後畫面照樣顯示「通過」。

套件 問題 怎麼修 出處
防竄改 換掉驗證簽章的工具庫,整套防竄改永久失效,實測完全不發警示 把那支工具庫移出「開機不檢查」那一層 §3.1 第 13
防竄改 文件說有兩道鎖,程式其實只做一道,刪掉一個檔就能讓鎖定的機器重開 補上資料庫那一道檢查 §3.1 第 14

群五:一個人就能讓全站停止回應(2 條)

共同點:兩條都在同一支流程圖解析上,合開一張工單即可。

套件 問題 怎麼修 出處
稽核流程引擎 一張惡意設計的流程圖可以把伺服器卡死 解析時加上深度與大小上限 §3.1 第 55
稽核流程引擎 「檢查流程圖」連續打四次,全站對所有客戶都不回應 同上,兩條合開一張工單 §3.1 第 57

群六:其他(6 條)

套件 問題 怎麼修 出處
系統設定
🆕
一個客戶的管理員可以改掉全公司所有人的登入規則,還能把登入驗證來源指到自己機器 四個方向待產品決策,見主彙整頁 §7 §3.1 第 74
日誌
🆕
一個客戶的管理員可以把全公司日誌改送到自己機器,而日誌裡有密碼原文 與上一條同病同修法,兩件一起定案 §3.1 第 75
日誌
🆕
匯出操作記錄的 Excel 可被種公式炸彈,攻擊者不必登入就塞得進去 公式字元開頭前置單引號,修在匯出共用出口 §3.1 第 78
AI 儀表板 使用者只要打字,就能誘導 AI 選中 27 支查詢功能裡的任何一支 使用者輸入與可用功能清單分開送 §3.1 第 11
寄信通知 測試寄信會把公司寄信平台的密碼送到呼叫者指定的任何主機 目的地改成白名單 工單 CM-1605
弱點掃描
🆕
🔴 客戶上傳的檢測規則包會被外部工具當 Ruby 樣板先跑一輪,等於任意執行程式碼 擋掉樣板記號、metadata 走 safe_load、隔離執行環境 §3.1 第 115

§4

🟡 中風險(60 條)

按「同一種病」分群(不是按套件),同一群的修法多半可以共用。

群一:只驗登入、不檢查東西是不是你的——讀取類(18 條,最大一群)

共同點:與高風險群一同病,只是外洩的資料敏感度低一級。查詢條件多半全選填,送空白請求就回整張表。

套件 問題 怎麼修 出處
AI 儀表板 對 AI 說一句話就列出全公司帳號、角色、客戶與部門清單,走正常畫面要有權限 每支查詢標明需要什麼權限;先移出 AI 清單止血 §3.1 第 8
稽核流程引擎 查單筆稽核證明沒有歸屬檢查,目前只是剛好被另一個程式錯誤擋住 與第 49 項同檔一起補,同一張工單 §3.1 第 50
稽核流程引擎 知道輪次編號就能讀走別家客戶的稽核階段歷程,含退回理由全文 用輪次反查專案,再檢查成員身分 §3.1 第 52
稽核流程引擎 「查目前在哪個階段」用你填的專案查角色、卻用你填的輪次撈資料,兩者不核對 解析輪次後比對所屬專案;查不到角色要擋 §3.1 第 53
任務平台 控制項成員名冊兩支讀取不檢查權限、編號全非必填,猜編號就讀得到人員配置 補合格成員檢查+專案編號改必填 §3.1 第 61
任務平台 查任務指派清單條件全選填,空請求回整張表(實測 12,494 筆,含帳號暱稱) 補專案成員檢查+專案編號改必填 §3.1 第 68
專案 摘要報告的清單與歷史版本共四支讀取只驗登入,歷史常留著後來被刪的稽核發現 補同檔已有的成員檢查+清單加範圍條件 §3.1 第 65
資產清冊 設備與資訊系統清冊七支讀取只驗登入,「查看」權限只在前端隱藏選單 🔵 產品決策題:要守就加檢查,維持原樣要寫進文件 §3.1 第 80
弱點掃描 查掃描執行紀錄少了專案參與者檢查,同客戶任何人知道任務編號就讀得到 補上同服務其他八處已在用的參與者檢查 §3.1 第 88
問卷
🆕
列出任務問卷不限範圍,空白請求回整個客戶的全部,也是讀答案的入場券 補歸屬檢查+專案編號改必填 §3.1 第 91
問卷
🆕
列出填答歷史不限範圍,看得出全公司誰在什麼時候改了哪一份問卷 補歸屬檢查+任務問卷編號改必填 §3.1 第 92
問卷
🆕
還原歷史版本不檢查那個版本是不是這份問卷的,可把別部門答案複製進來 比對歷史版本的任務問卷編號,一行就好 §3.1 第 94
問卷
🆕
多人同填的「房間」想進哪間就進哪間,可旁聽別專案並抓到答案快照 房間名稱解析成任務問卷後呼叫既有守門 §3.1 第 95
跨套件
(根因)
六張任務指派/參與者表的資料存取層都不自己加專案範圍條件,上層不帶條件就回整張表 要不要在共用底層一次擋掉,見主彙整頁 §7 §3.1 第 70
問卷
🆕
問卷討論列表送空查詢就撈回全公司所有討論,含你沒參與的專案 兩個條件改必填+用現成守門檢查成員 §3.1 第 96
證據自動分類
🆕
舊版 job 列表與狀態端點不檢查專案成員,進度登記簿不分租戶 加專案參與者守門+登記簿加租戶過濾 §3.1 第 111
證據自動分類
🆕
舊版查分類結果與報表不檢查專案成員,查無紀錄還退回直接去硬碟讀 五支讀取統一加守門、查無就拒、不退回硬碟 §3.1 第 109
弱點掃描
🆕
detection-profile.read 這顆能力點早就宣告好,七支讀取方法一支都沒掛 七支補上同檔已有的能力點裝飾器 §3.1 第 113

群二:只驗登入、不檢查東西是不是你的——寫入/改動類(8 條)

共同點:同上一群,但這一群改得動資料。寫入型越權比讀取型更難善後,錯誤資料已經寫進去了。

套件 問題 怎麼修 出處
檔案上傳 任何登入者可以永久刪除任何檔案,連轉檔產生的備份一起清掉 加第 34 項同樣的歸屬檢查+改成可復原刪除 §3.1 第 37
任務平台 任務查詢/修改/刪除三支收了專案編號卻沒拿來用,只憑任務編號查 ⚠️ 改過但沒修乾淨,還剩三個缺口要分開寫 §3.1 第 45
稽核流程引擎 只能看的 viewer 實際可以標記別人的任務完成、退回流程;檢測模組八支端點吃同一道守門 待決策者裁:加負責人檢查,或明列允許的角色 §3.1 第 59
任務平台 第六支成員管理服務整個檔案沒有任何權限檢查,只是目前沒有入口打得到 收下角色檢查元件、三支寫入補檢查、啟動補組裝 §3.1 第 62
任務平台 流程參與者的管理者身分檢查寫在提前返回之後,永遠執行不到 查不到改成明確拒絕(權限檢查預設拒絕) §3.1 第 63
資源庫 客戶的租戶管理員可以改掉原廠公版範本的控制項清單,之後每個新專案都複製到 改範本前先查歸屬,公版只給平台管理員 §3.1 第 67
任務平台 新增任務指派不檢查你填的任務屬不屬於那個專案,可把別人的任務登記成自己的 補歸屬比對+真的掛上資料庫觸發程序 §3.1 第 69
問卷
🆕
改/刪問卷討論不檢查是不是本人寫的,改完還掛著原作者名字,刪除不留痕 動手前先比對建立者是不是呼叫者 §3.1 第 97

群三:回應內容夾帶不該送出去的欄位(2 條)

共同點:前端畫面只顯示幾欄,不代表後端只送了幾欄——整個資料物件被原樣送出。

套件 問題 怎麼修 出處
AI 儀表板 查詢結果夾帶每個帳號的密碼加密鹽值,正常的使用者列表刻意排除了它 加欄位白名單,或重用既有排除設定 §3.1 第 9
AI 儀表板 套件的轉換函式把整個物件攤平放進回應,送外部 AI 的樣本也沒遮罩 照畫面欄位清單挑選;更根本是拿掉鹽值欄位 §3.1 第 12

群四:日誌這條線——外洩、沒隔離、遮不乾淨、清不掉(7 條)

共同點:這七條合起來是一條完整的鏈——密碼原文進日誌、遮罩遮不乾淨、表沒隔離、送外部不加密、內容可偽造、而且永遠清不掉。建議整條一起排。

套件 問題 怎麼修 出處
共用地基 system_logs 完全沒有客戶隔離、連可以拿來隔離的欄位都沒有,已累積 66 萬筆;api_logs 同樣沒開 先加客戶標記欄位再補規則,或限縮能讀的帳號 §3.1 第 23
共用地基
⚠️ 部分修
完整的程式錯誤堆疊寫進那張沒隔離的表,含內部路徑、函式名稱與 SQL 片段 只留錯誤類型與訊息,或堆疊另存到受限處。⚠️ 09-20 複查:進表的量變少了,但堆疊照寫、表仍無隔離,且正式環境現在也會走這條 §3.1 第 24
出貨設定
✅ 已修
🔴 出貨設定檔漏了一個環境變數,客戶正式機實際套用的是開發用日誌設定 ✅ 已修(09-20 複查)——出貨與安裝腳本都顯式寫出該變數,放大器效應解除;⚠️ 「讀不到就拒絕啟動」那半沒做,自備部署仍會靜默退回開發設定 §3.1 第 25
共用地基 全站唯一的密碼遮罩遇到密碼含雙引號只能遮一半,剩半截原文留 90 天 改成解析成結構化資料再換值,解析失敗整段遮 §3.1 第 30
日誌轉送 送到外部日誌伺服器的整條路完全沒有加密選項,而那裡面有密碼原文 兩種協定都加上可選加密,開放成設定頁選項 §3.1 第 76
日誌轉送 送出去的日誌沒過濾換行符號,可在客戶的資安監控系統裡塞偽造稽核紀錄 組出那一行之前先清掉換行與控制字元 §3.1 第 77
日誌保存
✅ 已修
🔴 兩張日誌表的按月存放已失效、保存期限沒生效,維護程式從沒被排程呼叫過 ✅ 已修(09-20 複查)——維護程式已接上每日排程並改以較高權限執行(後者原本會讓它每晚靜默失敗),分區已建、備用表歸零 §3.1 第 79

群五:防竄改機制可以被削弱(2 條)

共同點:兩條都是高風險那兩條防竄改問題的放大器,搭配起來能把攻擊成本大幅拉低。

套件 問題 怎麼修 出處
防竄改 有個環境變數可以整個換掉「要核對哪個目錄」,優先權還比打包版判斷高 打包模式下忽略這個環境變數 §3.1 第 15
防竄改 用過的解鎖檔案,紀錄檔一毀損系統就當作「一張都還沒用過」 把「檔案不存在」與「內容毀損」分開處理 §3.1 第 16

群六:一個人就能讓服務停擺 / 檔案完整性沒人管(5 條)

套件 問題 怎麼修 出處
共用地基 分頁的「一頁幾筆」沒有上限,送一個大數字就能叫資料庫把整張表全撈出來 加範圍限制,共用分頁邏輯再加一道保底 §3.1 第 31
稽核流程引擎 讀流程範本會無條件解析流程圖,一筆空白內容就讓所有人的清單頁出錯 寫入端補格式檢查、讀取端空字串就跳過 §3.1 第 56
弱點掃描
🆕
手動重新掃描無上限開背景執行緒、整檔讀進記憶體、外部程序給到 900 秒 同版本在跑就拒絕重複+加全域併發上限 §3.1 第 114
弱點掃描
🆕
用網址當規則來源時完全繞過封裝檢查器,三道防炸彈上限一條都沒套用 網址下載的內容也要先過同一支驗證器 §3.1 第 116
弱點掃描
🆕
填網址建掃描基準時放行明文 http://、且完全不記指紋,代理程式落地執行前無從核對檔案有沒有被換掉 只收 https://;第一次抓下來就記指紋,之後每次核對 §3.1 第 117

群七:要先由產品面做決策,才能改程式(3 條)

共同點:不是寫錯,是當初的決定在新情境下沒人重新檢視過,直接改可能影響既有使用方式。

套件 問題 怎麼修 出處
AI 儀表板 專案清單有一道「視同管理員」的後門,非成員也能列出客戶內全部專案 先定產品方向再改程式 §3.1 第 10
檔案上傳 客戶讀不到自己的儲存設定時,系統會去借用別家客戶的帳號密碼 是刻意設計就寫進文件並限制條件,否則直接拒絕 §3.1 第 41
排程
✅ 已修
兩支背景清理排程靠「找不到身分就暫時給最高權限」這條規則才能運作 ✅ 已修——改成用具名的系統身分執行 §3.1 第 46

群八:其他(15 條)

套件 問題 怎麼修 出處
弱點掃描
🆕
「測試連線」要連哪台主機由呼叫者直接指定,代理程式變成任意連線跳板 目標限已登記的掃描目標或白名單+收斂回應 §3.1 第 86
弱點掃描
🆕
🔴 資料庫的客戶隔離規則方向寫反,子單位看得到也改得動母單位資料,出貨基線共 9 條 9 條換成同檔正確寫法,跨三個套件一次改 §3.1 第 87
意見回饋
🆕
程式庫歷史裡還有第二把寫死的 GitLab 存取權杖,從沒被撤銷過 去 GitLab 後台撤銷並查稽核紀錄,不是改程式 §3.1 第 83
意見回饋 匯出回饋的 Excel/CSV 沒過濾公式字元,管理員開檔就變成真公式 公式字元開頭前置單引號,與操作記錄抽同一支 §3.1 第 82
登入帳號 🔴 員工被停權後手上的憑證還能用約三天半,他自己還能續到約八天 兩處同改:認身分時擋非啟用+停權時撤銷憑證 §3.1 第 28
共用地基 主產品連 Redis 寫死成不檢查對方是不是真的伺服器,網址也寫死不加密 照抄另一個套件的寫法+依加密開關切換 §3.1 第 19
檔案上傳 本機硬碟刪檔漏清了轉檔產生的 PDF 備份,雲端儲存那邊有清 修法很小,建議把兩種儲存的共通邏輯提到共用處 §3.1 第 48
問卷
🆕
多人同填時「這筆是誰填的」直接採用前端送來的名字,稽核紀錄不可信 改用登入身分,一行就好 §3.1 第 93
問卷
🆕
資料夾更新 API 前端送什麼收什麼,多塞「已刪除」欄位就繞過守門造出孤兒資料 拿掉 apply=False 改嚴格格式,四個入口一起改 §3.1 第 98
弱點掃描
🆕
代理程式回報報告時檔名叫什麼就存什麼,.html 在稽核人員瀏覽器裡當網頁執行 去掉路徑+副檔名白名單,最好一律自己命名 §3.1 第 101
證據自動分類
🆕
證據檔的內文可以對 AI 下指令,左右它判這份證據符合哪些合規項目 容器端剝掉界線符號、宿主端限欄位與信心值 §3.1 第 102
弱點掃描
🆕
換掃描工具時不拿實際生效的值重新檢查台數上限,可把範圍填成超大網段 用實際生效值重查,兩個入口都補+加保險上限 §3.1 第 105
弱點掃描
🆕
開始掃描時把客戶機器的帳密另存一份明文進工單表,沒人讀也永不清理 刪掉寫入那一行+補一支清存量的 migration §3.1 第 107
證據自動分類
🆕
查 Google 硬碟的搜尋條件用字串拼接、資料夾編號沒跳脫 資料夾編號進查詢前先驗字元集 §3.1 第 110
弱點掃描
🆕
上傳壓縮檔的「最多一萬個檔」上限對 .zip 形同虛設,打開那一刻記憶體就吃光 先讀 zip 檔尾的目錄筆數擋掉;順手改掉寫反的註解 §3.1 第 112

§5

⚪ 低風險(51 條 = 資安類 27 條 + 非資安的程式錯誤 24 條)

這一級混了兩種東西,看的時候要分開:

  • 資安類 27 條:是漏洞,只是現在打不到——有的要對方先有某個權限、有的那段程式沒人呼叫、有的被另一道檢查擋住。洞一直都在,只是門口剛好堵著東西;哪天有人接上那支沒人用的服務、或把擋著的東西拿掉,它立刻變成真的可以攻擊。
  • 非資安 22 條:不是風險,是使用者今天就會踩到的功能故障(按了顯示成功但沒存進去、送不出意見回饋又看不出原因),只是不算資安問題所以歸在這裡。

群一:資料庫隔離該開沒開(3 條)

⚠️ 同一組還有一條在中風險段(第 87 項):9 張表的隔離規則方向寫反——不是沒開,是開了但寫成相反的意思,這種最不容易被發現。

套件 問題 怎麼修 出處
公告 公告與部門的關聯表沒有設定資料庫隔離 走標準流程;⚠️ 這張表沒有客戶歸屬欄位,不能照抄主表 §3.1 第 4
跨套件
✅ 已修
三張表訂了隔離規則但開關沒打開,專案表還漏了超級管理員例外 ✅ 已修——三張都已開啟,出貨基線同步更新 §3.1 第 5
意見回饋 jedi-issue 五張表完全沒有客戶隔離,連「這是哪個客戶的」標記欄位都沒有 先改表結構加客戶標記欄位,再補隔離規則 §3.1 第 7

群二:預設值不安全(4 條)

共同點:程式本身沒寫錯,但預設值選在寬鬆那一側,接手的人忘記手動改就自動變成不安全。

套件 問題 怎麼修 出處
登入帳號 「忘記密碼」用來防帳號列舉的信箱遮罩,套件預設是關閉的 套件預設改成開啟,要放寬的產品自己覆寫 §3.1 第 29
檔案上傳 上傳沒有單檔大小上限也沒有數量上限,一次塞很多檔就繞過請求上限 加單檔大小與數量上限,做成可調整的設定值 §3.1 第 38
檔案上傳 連線雲端儲存預設不使用加密連線,檔案與帳密會在網路上明文傳輸 預設改成加密,要關掉的人自己明確設定 §3.1 第 42
共用地基
⚠️ 部分修
正式與測試環境把兩種日誌類別的詳細程度設成最高等級,日誌量會變大 調回一般或警告等級。⚠️ 09-20 複查:兩項改掉一項(一般框架日誌已改讀環境變數),資料庫查詢與 mongo 兩棵仍寫死最高等級 §3.1 第 27

群三:權限漏掛、或歸屬沒檢查(7 條)

共同點:與中風險群一群二同一種病,只是拿得到的東西敏感度更低,或還有另一道檢查頂著。

套件 問題 怎麼修 出處
稽核流程引擎 流程範本的列表與單筆讀取沒掛權限檢查,等於前端擋住、API 完全敞開 補功能權限檢查,或前後端規則一起拿掉 §3.1 第 58
任務平台 寫入成員資料時不檢查群組或控制項是不是真的屬於這個專案 寫入前比對所屬專案,不一致就拒絕 §3.1 第 64
任務平台 更新任務指派時撈不到既有紀錄就整段跳過管理者檢查 與中風險第 63 項同型,一起清理 §3.1 第 71
資產清冊 只有「修改資訊系統」權限的人,送一個「停用」欄位就達成刪除的效果 把停用欄位從修改格式拿掉,或改要求刪除權限 §3.1 第 81
系統設定 密碼遮罩名單漏掉物件儲存那一組,有權限的管理員瀏覽器仍收到明文密鑰 加進群組與欄位名單、改用不回密鑰的做法、同步改測試 §3.1 第 73
問卷
🆕
資料夾列表可以叫出系統刻意隱藏的資料夾,以及已經刪掉的資料夾 同上一條(拿掉 apply=False、改用嚴格格式) §3.1 第 99
公告 公告列表對「沒有被分配部門」的帳號直接整份放行,不做任何篩選 與第 1 項其餘三個洞合併一張工單一起修 §3.1 第 1

群四:留著會害下一個人判斷錯的(死碼、殘留、寫法不良,5 條)

共同點:這些不是漏洞,但留著會讓下一個讀程式碼的人誤判——以為某道檢查已經有了,於是不去補真正需要的那道。

套件 問題 怎麼修 出處
共用地基 有一行死碼把某個權限旗標無條件設成「是」,全部 105 條隔離規則都沒用到它 直接刪掉那三行 §3.1 第 20
共用地基 隔離用的連線變數用字串拼接組進 SQL,目前不可被利用只因為沒人把外部輸入帶進來 改用安全參數綁定,成本很低 §3.1 第 21
共用地基
✅ 已修
程式載入當下就自動啟動一條位址寫死、不加密的遠端監控連線 ✅ 已修——改成必須明確呼叫;連線仍未加密但預設不會走到 §3.1 第 26
共用地基
⚠️ 沒修乾淨
一支開發用輔助工具混在正式出貨套件裡,載入就讀 AI 金鑰、還會把檔案覆寫成空白 ⚠️ 相依已改選配但檔案仍跟著出貨,直接從套件刪掉 §3.1 第 32
共用地基 套件把物件轉成回應的共用工具原樣吐出整個物件、沒有任何欄位過濾 套件層加白名單;更根本是拿掉鹽值欄位 §3.1 第 33

群五:其他(8 條)

套件 問題 怎麼修 出處
授權 三個環境共用同一把寫死在程式裡的公鑰,開發簽的授權檔正式環境也會過 決策者已裁「等正式簽發站建好再一併處理」 §3.1 第 6
防竄改 鎖定畫面服務綁在對外位址、跨網域允許任何來源,會洩漏機器指紋與鎖定編號 先寫進部署文件提醒不可直接對外,程式面可晚一點 §3.1 第 17
防竄改 回報偵測到竄改時,把伺服器日誌最後 50 行原文整段送到原廠、完全沒遮罩 套用與日誌轉送相同的遮罩,或只送行數與時間 §3.1 第 18
稽核流程引擎 推進或退回階段時,操作者顯示的暱稱可以由呼叫端自己填寫 一律由伺服器覆寫暱稱,請求格式加上限制 §3.1 第 54
問卷
🆕
資料夾列表把資料庫的原始錯誤訊息整句吐回前端,含表名、欄位名與 SQL 片段 拿掉那段 try/except,改回標準錯誤碼 §3.1 第 100
證據自動分類
🆕
AI 金鑰放在 docker run 命令列上,同主機任何本機帳號都讀得到(落地版跑不到) 改用 --env-file 或 -e KEY 不帶值 §3.1 第 103
證據自動分類
🆕
分類容器沒設記憶體/CPU/處理程序上限,逾時也殺不掉它(落地版跑不到) 加記憶體/CPU/程序上限,並給容器命名 §3.1 第 104
證據自動分類
🆕
按「刪除整批」之後,判定結果、原始報告、含原始檔名的清單全都留在主機上 刪整批時一併清掉該 run 的工作目錄 §3.1 第 106

不算資安、但確實是程式錯誤(24 條)

這一組不是安全漏洞——找不到攻擊者能主動觸發的路徑,但它們是真的壞掉或真的會壞。排修正時要跟資安項目分開看,急迫性來自產品品質不是被攻擊的風險。

套件 問題 怎麼修 出處
登入帳號
✅ 已修
改客戶或部門資料時,只更新部分欄位會把「上層是誰」打成空值 ✅ 已修——兩支都改成有值才更新 §3.2 第 7
登入帳號
✅ 已修
建立部門時「建立者」欄位從來沒被寫入,兩個稽核欄位都變成空值 ✅ 已修——兩欄都已正確灌值 §3.2 第 8
公告
✅ 已修
更新公告時檢查錯對象,查無此筆時會對空值做設定、直接出錯 ✅ 已修——改成先查、查無就回報找不到 §3.2 第 9
公告
✅ 已修
沒有登入身分時建立公告會直接讓程式崩潰 ✅ 已修——沒身分就留空,真正的門在路由 §3.2 第 10
共用地基 把日誌寫進資料庫失敗會連帶讓使用者那次請求一起失敗,現在能運作純屬運氣 補完整錯誤處理+時間欄位補上格式設定 §3.2 第 11
共用地基 系統自動產生的密碼比要求少一個字元,可能通不過自家最短長度規定 把計算公式裡的數字調回正確值 §3.2 第 12
稽核流程引擎 「強制執行」旗標有兩個來源容易搞混,真正判斷的兩處看的是另一個變數 改成直接覆寫,與第 54 項一起清理 §3.2 第 13
稽核流程引擎 三支收檔案路徑、但現在沒人呼叫的程式,直接用傳入的路徑開檔讀寫 直接刪除,或移進測試專用的模組 §3.2 第 14
稽核流程引擎
⚠️ 部分修
啟動流程時把執行編號寫回傳進來的範本,匯入那條路傳的是共用母版會互相覆蓋 ⚠️ 09-20 複查:會踩到的那條路徑已隨 v1 殘留端點清理被刪(順手消失非刻意修),但「傳什麼就寫回那份」的機制原封不動,下一個接這支 API 的人傳母版就重現 §3.2 第 15
任務平台 套件裡兩組已接上但沒人使用的服務完全沒有權限檢查,接上就開 加提醒註解,或直接拿掉這兩個備用服務 §3.2 第 16
任務平台 三支成員管理服務的「用編號查資料」永遠回空,補完權限拿它測會得到假通過 修好它,或把倚賴它的那組方法整組拿掉 §3.2 第 17
任務平台 有一組流程參與者服務接上但沒人使用,只有 AI 儀表板會讀它的資料 拿掉,或加註解提醒啟用前先修第 63 項 §3.2 第 18b
任務平台 流程參與者表在開發環境 0 筆,修改或刪除一定出錯,等於完全不能用 與中風險第 63 項合併同一張工單 §3.2 第 19
任務平台 專案啟動時的成員同步刻意繞過套件權限檢查直接寫資料層,這是第五處 與主彙整頁 §7 甲組同一個決策,改時六處一起接 §3.2 第 20
任務平台 🔴「批次新增指派」後端恆回空陣列但前端真的在呼叫,畫面顯示成功卻沒寫入 建議另開工單處理,不屬資安掃描範圍 §3.2 第 21
任務平台 基線檔有一支能擋住異常寫入的觸發程序,開發環境這張表掛了 0 個 屬出貨鏈範圍,通知 FR-093 線處理。⚠️ 09-20 複查:比原本寫的更難修——那支函式要讀的三個欄位這張表根本沒有,現在補掛第一筆寫入就會炸(該表已 12,573 筆),函式要先改 §3.2 第 22
任務平台 四支任務指派相關方法目前零取用、零守門,接上就開 接上前必須先補守門 §3.2 第 23
意見回饋 沒有被分配部門的一般使用者送不出意見回饋,而且看不出原因 屬產品決策:放寬新增規則/規定必有部門/改訊息 §3.2 第 18
問卷
🆕
Excel 匯入失敗時暫存檔永遠留在磁碟上,每失敗一次留一個 刪檔那句移進 finally+補上檔案大小上限 §3.2 第 24
證據自動分類
🆕
分類失敗時錯誤訊息原文直接存進批次、前端看得到 _fail_batch 改存固定錯誤碼,原文只進 log §3.2 第 25
證據自動分類
🆕
正解答案表匯入幾乎不驗內容,尺被亂改整份報表失真且不報錯 加筆數上限、值型別、鍵比對目錄 §3.2 第 26
證據自動分類
🆕
AI 分類設定的「預設廠商/預設型號」存得進去但分類時沒人讀 解析鏈各加一層讀設定值 §3.2 第 27
弱點掃描
🆕
「共享」這個範圍值三層各認一套,建立掃描基準時填不出來、但改的時候改得成 三層值域對齊(目前還沒真的壞掉) §3.2 第 28
弱點掃描
🆕
套件自帶的建表腳本值域停在舊版,跟主線已經對不上 屬出貨基線待重產,重不重產由決策者裁 §3.2 第 29

§6

一個反覆出現的模式

「只驗證登入、不檢查東西是不是你的」這一種病,在七支不同套件裡出現過,光是高風險就佔了 12 條。修法本身可以照抄,但要真正解決,得改掉容易犯這種錯的寫法本身。

🔴 「客戶層級的權限,改到的卻是全系統共用的那一份設定」已經出現兩次——登入安全政策(第 74 項)與日誌轉送目的地(第 75 項)是同一個形狀。兩件事要一起做產品決策、一起開工單;往後看到「客戶層級權限+全系統單一設定列」這個組合就該直接懷疑。

「密碼被寫進版本控制」已經出現四種樣態(測試設定檔、登入金鑰、散在 249 個檔的資料庫密碼、AI 助理記憶檔),九成都是因為「查資料庫用的指令」被原封不動貼進文件或對話紀錄。不改變查資料庫、寫文件的習慣,清乾淨了一樣會再長出來。


§7

怎麼用這一頁

你想做什麼 看哪裡
排修正的優先順序 本頁由上往下就是順序
知道某一條的完整描述、檔名行號、修法細節 回主彙整頁 §2.2 與 §3,用「出處」欄的編號查
知道哪幾條可以一起修 主彙整頁 §4 分組索引
知道哪些地方還沒檢查過 主彙整頁 §0.5 總狀態表
知道有哪些事在等你拍板 主彙整頁 §7