這份表只回答一個問題:總表 §3 那 145 條,每一條被歸到哪一組修正卡草案。 每組要修什麼、怎麼修、先修哪組,看 修正卡草案。
README.md §3.1(資安類 117 條)與 §3.2(不算資安但是真的程式錯誤,28 列)的原始編號,編號不動。— 的是 §4 沒收過、本棒新歸入的。| 條數 | 仍在 | 部分修 | 已修 | |
|---|---|---|---|---|
| §3.1 資安類 | 117 | 102 | 8 | 7 |
| §3.2 非資安真 bug | 28 | 22 | 2 | 4 |
| 合計 | 145 | 124 | 10 | 11 |
未歸組:0 條。 145 條每一條都至少屬於一組(含 X3「已修、不必開卡」與 Z「單修、不成組」這兩個收尾組)。
⚠️ 總表 §3.2 的標題寫「26 項」,實際列了 28 列(編號 7~33 連號,另有一列 18b)。本表以實際列數 28 計,差異已列入草案末節「建議總表更正」。
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 34 | 檔案下載端點只驗登入、不驗這個檔案是不是你的(資料庫層已補,應用層一步沒動) | 高 | 部分修 | 🅰 | FR-086 B1-3 |
| §3.1 | 35 | 任何登入者可以替任何檔案換發一張不需要登入就能下載的通行證 | 高 | 仍在 | 🅰 | FR-086 B1-1 |
| §3.1 | 37 | 任何登入者可以永久刪除任何檔案,不管是不是自己的 | 中 | 仍在 | 🅰 | FR-086 B1-4 |
| §3.1 | 40 | 檔案服務只憑編號就把檔案交出去,中間完全沒有檢查 | 高 | 部分修 | 🅰 | FR-086 B2 F1 |
| §3.1 | 45 | 任務詳細查詢 API 收了專案編號,卻從頭到尾沒有拿來用 | 中 | 部分修 | 🅰 | FR-087 T1 |
| §3.1 | 47 | 存放檔案的資料表在資料庫層完全沒有做隔離 | 高 | 部分修 | 🅰🅱 | FR-086 B1b-1 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 49 | 任何登入者只要知道一個任務編號,就能讀走別家客戶的稽核證明清單(檔名、描述、參考網址、雲端硬碟連結、上傳者帳號、檔案指紋、檔 | 高 | 仍在 | 🅰🅱 | FR-088 H2 F1 |
| §3.1 | 50 | 同一支服務裡「查單一筆證明」的功能也沒有做歸屬檢查,目前只是剛好被另一個程式錯誤擋住 | 中 | 仍在 | 🅰 | FR-088 H2 F8 |
| §3.1 | 51 | 流程留言功能的讀取與寫入都只檢查有沒有登入 | 高 | 仍在 | 🅰🅱 | FR-088 H2 F9 |
| §3.1 | 52 | 任何登入者只要知道一個稽核輪次編號,就能讀走別家客戶的稽核階段歷程 | 中 | 仍在 | 🅰🅱 | FR-088 H1 F5+F6 |
| §3.1 | 53 | 「查詢目前在哪個階段」這支功能,用你填的專案編號去查你的角色,卻用你填的輪次編號去撈資料,兩者完全不核對;角色不符也不會擋下 | 中 | 仍在 | 🅰🅱🅸 | FR-088 H1 F4 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 60 | 任何登入者送出一個空白的查詢請求,就能一次撈光全公司所有客戶的專案成員名冊(已在開發環境實測撈到 751 筆,內含專案編號、 | 高 | 仍在 | 🅰 | FR-095 P1 P1-1 |
| §3.1 | 61 | 控制項層級的成員名冊也有兩支 API(清單與選單)同樣完全沒有做權限檢查,三個編號欄位全部不是必填 | 中 | 仍在 | 🅰 | FR-095 P1 P1-2 |
| §3.1 | 62 | 第六支負責成員管理的服務整個檔案完全沒有做任何權限檢查 | 中 | 仍在 | —(本棒新歸入) | FR-095 P1 P1-3 |
| §3.1 | 63 | 流程參與者的權限檢查寫在提前返回的程式碼後面,導致它宣稱會做的兜底檢查根本不會執行 | 中 | 仍在 | —(本棒新歸入) | FR-095 P1 P1-4 |
| §3.1 | 64 | 寫入成員資料時,只檢查「你是不是這個專案編號對應專案的管理者」,完全沒有檢查群組編號或控制項編號是不是真的屬於這個專案 | 低 | 仍在 | 🅰 | FR-095 P1 P1-5 |
| §3.1 | 68 | 查任務指派清單的 API 只檢查你有沒有登入,沒有檢查你是不是這個專案的人,而且八個查詢條件全部選填 | 中 | 仍在 | 🅰 | FR-095 P2 P2-1 |
| §3.1 | 69 | 新增任務指派時,拿你自己填的專案編號判斷你是不是管理者,卻從不檢查你填的任務到底屬不屬於那個專案,資料庫層也完全沒有兜底 | 高 | 仍在 | 🅰 | FR-095 P2 P2-2 |
| §3.1 | 71 | 更新任務指派時,如果撈不到既有紀錄,會整段跳過管理者身分檢查 | 低 | 仍在 | —(本棒新歸入) | FR-095 P2 卡片疑點① |
| §3.2 | 17 | 三支負責成員管理的服務,各自都有一支「用編號查資料」的功能,永遠回傳固定的空結果,程式裡的註解自己寫明「這是配合一個已經停用 | 非資安 | 仍在 | —(本棒新歸入) | FR-095 P1 |
| §3.2 | 19 | 存放流程參與者的資料表在開發環境目前是 0 筆資料,而且修改或刪除功能一定會出錯(就是第 63 項提到的那個不存在的驗證方法 | 非資安 | 仍在 | —(本棒新歸入) | FR-095 P1 |
| §3.2 | 20 | 專案啟動時的成員同步,刻意繞過任務平台套件的權限檢查、直接寫資料層 | 非資安 | 仍在 | —(本棒新歸入) | FR-095 H1 H1-5 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 89 | 查填答歷史明細的功能完全不檢查資料歸屬,送一個空白請求就把整個客戶所有問卷的每一版答案、補充說明與審核意見整包讀走 | 高 | 仍在 | 🅰 | FR-109 V2 F1 |
| §3.1 | 90 | 讀某一份任務問卷的答案完全不檢查這份問卷是不是你的 | 高 | 仍在 | 🅰 | FR-109 V2 F2 |
| §3.1 | 91 | 列出任務問卷的功能不限範圍,送空白請求就回整個客戶的全部 | 中 | 仍在 | 🅰 | FR-109 V2 F3 |
| §3.1 | 92 | 列出填答歷史的功能不限範圍 | 中 | 仍在 | 🅰 | FR-109 V2 F4 |
| §3.1 | 94 | 還原歷史版本時有檢查「你能不能動這份問卷」,但沒有檢查「你指定的那個歷史版本是不是這份問卷的」 | 中 | 仍在 | 🅰 | FR-109 V2 F6 |
| §3.1 | 95 | 多人同時填問卷用的「房間」想進哪一間就進哪一間,不檢查你有沒有份 | 中 | 仍在 | 🅰 | FR-109 V2 F7 |
| §3.1 | 96 | 問卷討論列表送一個空的查詢,就把全公司所有問卷討論撈回來 | 中 | 仍在 | 🅰 | FR-109 V1-1 |
| §3.1 | 97 | 改/刪問卷討論不檢查是不是本人寫的,改完還掛著原作者的名字;刪除是直接從資料庫抹掉、不留痕跡 | 中 | 仍在 | 🅰 | FR-109 V1-3 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 65 | 專案「摘要報告」(稽核結論那份文件)的清單與歷史版本,共四支讀取功能只檢查有沒有登入、完全沒問「你是不是這個專案的人」 | 中 | 仍在 | 🅰 | FR-095 H1 H1-1+H1- |
| §3.1 | 66 | 稽核輪次選單只檢查有沒有登入、不檢查是不是專案成員 | 中 | 仍在 | 🅰 | FR-095 H1 H1-3 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 85 | 弱點掃描工具設定頁的「測試連線」按鈕沒有檢查權限,只要能登入就能按 | 高 | 仍在 | 🅰 | FR-108 D1 F1 |
| §3.1 | 86 | 同一支「測試連線」端點,要連到哪台主機是呼叫者在請求裡直接指定的,系統既不比對白名單、也不管這台主機跟存好的設定有沒有關係 | 中 | 仍在 | —(本棒新歸入) | FR-108 D1 F2 |
| §3.1 | 88 | 查掃描執行紀錄的功能少了「你是不是這個專案的人」這道檢查,同一家客戶裡任何成員知道任務編號就讀得到別人專案的掃描歷史 | 中 | 仍在 | 🅰 | FR-108 D1 F4+F5 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 108 | 舊 Drive 線的「預覽證據檔」端點,網址裡填任何一個 Google 雲端硬碟檔案編號,系統就拿客戶授權的鑰匙把檔案抓回來 | 高 | 仍在 | 🅰 | FR-111 E3-1 |
| §3.1 | 109 | 舊 Drive 線查結果、查報表的端點不檢查你是不是這個專案的成員 | 中 | 仍在 | 🅰 | FR-111 E3-2 |
| §3.1 | 111 | 舊 Drive 線的 job 列表與單一 job 狀態端點不檢查專案成員,而進度登記簿是整個程序共用的記憶體 dict、不分 | 中 | 仍在 | 🅰 | FR-111 E3-4+卡片重點② |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 1 | 公告權限有四個漏洞可以合成一張工單一起修 | 高 | 仍在 | 🅰 | FR-079 B2 F13/F16/ |
| §3.1 | 8 | AI 儀表板功能讓任何登入帳號都能列出全公司的帳號、角色、租戶與部門清單 | 中 | 仍在 | 🅰 | FR-083 D2 F3 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 58 | 流程範本的列表與單筆讀取這兩支 API 沒有掛上「流程範本讀取」這個功能權限檢查 | 低 | 仍在 | 🅰 | FR-088 H3 F10 |
| §3.1 | 113 | 能力點 detection-profile.read 資料庫早就宣告好、前端權限矩陣也認,但後端七支讀取功能一支都沒檢查 | 中 | 仍在 | 🅰 | FR-108 D2-1a F1 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 4 | bulletin_org_units(公告與部門的關聯表)沒有設定資料庫隔離,要走 SQL 資料庫異動的標準流程處理 | 其他 | 仍在 | 🅱 | FR-079 B2 重點⑩ |
| §3.1 | 5 | 三張資料表訂了資料庫隔離規則,但隔離開關本身沒有打開 | 其他 | 已修 | 🅱 | CM-1559 盤點時順帶發現 |
| §3.1 | 43 | 切換到被指派的子租戶之後,仍看得到別家客戶的待辦任務與專案 | 高 | 部分修 | 🅱 | FR-087 T1 |
| §3.1 | 44 | 4 支資料庫查詢畫面完全繞過資料庫隔離機制 | 高 | 已修 | 🅱🅶 | FR-087 T1 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 7 | jedi-issue 套件的五張資料表完全沒有客戶隔離(⚠️ 2026-09-16 FR-101 J2 更正 | 低 | 仍在 | 🅰🅱 | FR-081 I6 |
| §3.1 | 23 | system_logs 這張日誌表完全沒有客戶隔離,而且連可以拿來做隔離的欄位都沒有 | 中 | 仍在 | 🅱🅳 | FR-085 C2-2 |
| §3.1 | 47 | 存放檔案的資料表在資料庫層完全沒有做隔離 | 高 | 部分修 | 🅰🅱 | FR-086 B1b-1 |
| §3.1 | 67 | 客戶的租戶管理員可以把「原廠公版」稽核範本的適用控制項清單整個改掉 | 中 | 仍在 | 🅱 | FR-095 H1 H1-4 |
| §3.2 | 22 | 基線檔裡有一支能擋住任務指派資料異常寫入的觸發程序,但 DEV 這張表掛了 0 個觸發程序,函式存在卻沒被掛上 | 非資安 | 仍在 | —(本棒新歸入) | FR-095 P2 P2-5 |
| §3.2 | 31 | 基準的領域層與存取層四個檔(499 行)裡完全沒有租戶隔離的程式碼 | 非資安 | 仍在 | —(本棒新歸入) | FR-108 D2-2b |
| §3.2 | 32 | detection_profile_controls(規則清單表)的零隔離保護完全靠約定,沒有任何機制強制 | 非資安 | 仍在 | —(本棒新歸入) | FR-108 D2-4b |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 87 | 資料庫的客戶隔離規則方向寫反了 | 中 | 仍在 | 🅱 | FR-108 D1 F3 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 39 | 任何登入者只要打一支查詢系統設定的 API,就能拿到自己客戶的雲端儲存位址、帳號、密碼明文 | 高 | 仍在 | 🅲 | FR-086 B2-A |
| §3.1 | 72 | 讀取系統設定的三個入口只檢查「有沒有登入」、完全不檢查權限,任何一個能登入的帳號一個請求就拿到物件儲存的帳號密碼 | 高 | 仍在 | 🅰 | FR-096 P1 F1 |
| §3.1 | 73 | 密碼遮罩名單漏掉物件儲存那一組 | 低 | 仍在 | 🅲🅶 | FR-096 P1 F2 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 2 | 多組憑證需要輪替或清除 | 高 | 仍在 | 🅲 | FR-079 B2 F1/F2/F3 |
| §3.1 | 3 | 安裝程式每套部署都種下同一組原廠超級管理員密碼,密碼的加密雜湊值寫死在 SQL 檔案裡,也沒有強制客戶第一次登入就改密碼 | 高 | 仍在 | 🅲🅷 | FR-079 B2 F15 |
| §3.1 | 83 | jedi-issue 的原始碼裡曾寫死一把 GitLab 存取權杖,檔案後來刪了、但那把權杖仍留在 git 歷史與當時發佈到 | 中 | 仍在 | —(本棒新歸入) | FR-077 R1b F2 |
| §3.1 | 84 | 資料庫超級管理員 cmmgr 的密碼、加上 blsadmin/blsit 兩組產品登入帳密,寫在一份需求文件裡,而那份文件已 | 高 | 仍在 | —(本棒新歸入) | FR-077 R3 F3 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 19 | 主產品連線 Redis(一種常用的暫存資料庫)時,寫死成「不檢查對方是不是真的伺服器」 | 中 | 仍在 | 🅲 | FR-085 C1-4 |
| §3.1 | 29 | 「忘記密碼」功能裡,用來防止帳號列舉的信箱遮罩,套件預設是關閉的(jedi-iam/jedi_iam/plugin.py:1 | 低 | 仍在 | 🅶 | FR-075 S7 重跑 卡片重點④ |
| §3.1 | 42 | 連線雲端儲存時,預設不使用加密連線(managed_file_upload_service.py:105/:119) | 低 | 仍在 | 🅲🅶 | FR-086 B2-C |
| §3.1 | 117 | 填網址建掃描基準時系統放行明文 http://,而且網址型來源完全不記指紋 | 中 | 仍在 | —(本棒新歸入) | FR-108 D2-2a F1 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 103 | AI 金鑰放在 docker run 的命令列上,同一台主機任何本機帳號都讀得到 | 低 | 仍在 | 🅲 | FR-111 E1-2 |
| §3.1 | 107 | 按下「開始掃描」時,系統把客戶機器的登入帳密解密之後,一邊交給代理程式、一邊又存了一份明文進工單資料表(agent_task | 中 | 仍在 | 🅲 | FR-108 D3-4a F1 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 6 | 三個環境共用同一把寫死在程式裡的公鑰 | 其他 | 仍在 | 🅲🅷 | FR-076 L1 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 18 | 回報「偵測到竄改」這個事件時,會把伺服器日誌檔最後 50 行的原始內容整段送到原廠,完全沒有做任何遮罩處理(forensic | 低 | 仍在 | 🅳🅵 | FR-084 T1-6 |
| §3.1 | 22 | 使用者的登入密碼與登入憑證,原文直接寫進日誌檔與資料庫 | 高 | 已修 | 🅳 | FR-085 C2-1 |
| §3.1 | 30 | 全站唯一一套密碼遮罩機制,遇到密碼裡含有雙引號時只能遮住一半,剩下的半截密碼原文會被寫進資料庫、保留 90 天 | 中 | 仍在 | 🅳 | FR-085 C3-3+C3-4 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 23 | system_logs 這張日誌表完全沒有客戶隔離,而且連可以拿來做隔離的欄位都沒有 | 中 | 仍在 | 🅱🅳 | FR-085 C2-2 |
| §3.1 | 24 | 完整的程式錯誤堆疊訊息,被寫進上面那張沒有隔離的日誌表(jedi-common/jedi_common/logger/db_ | 中 | 部分修 | 🅳 | FR-085 C2-3 |
| §3.1 | 25 | 出貨的設定漏了一個環境變數,導致客戶的正式機實際套用的是開發用的日誌設定(這一項會放大前面幾項的影響範圍) | 中 | 已修 | 🅶🅲 | FR-085 C2-5 |
| §3.1 | 26 | 系統會在程式載入的當下就自動啟動一條遠端監控連線,位址寫死、而且不加密(jedi-common/jedi_common/lo | 低 | 已修 | 🅳 | FR-085 C2-6 |
| §3.1 | 27 | 正式環境與測試環境,把兩種日誌類別的詳細程度設定成最高等級(config_prod.py:57 的一般框架日誌、:82 的資 | 低 | 部分修 | 🅳 | FR-085 C2-7 |
| §3.1 | 79 | 操作記錄與系統日誌這兩張表的「按月分月存放」已經失效,現在所有新資料都堆進一張沒有分月的備用表 | 中 | 已修 | 🅳 | FR-097 L2 |
| §3.2 | 11 | 把日誌寫進資料庫如果失敗,會連帶把原本使用者的請求一起弄壞,而且它現在能正常運作純粹是運氣好、靠日誌處理器剛好排在後面 | 非資安 | 部分修 | —(本棒新歸入) | db_handler.py:13-3 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 75 | 一個客戶的管理員,可以把「全公司的日誌要送去哪台伺服器」改成他自己的機器 | 高 | 仍在 | 🅳🅷 | FR-097 L1 |
| §3.1 | 76 | 日誌送到外部伺服器的整條路上完全沒有加密選項 | 中 | 仍在 | 🅳 | FR-097 L1 F1 |
| §3.1 | 77 | 送出去的日誌沒有過濾換行符號,有心人可以在客戶的資安監控系統裡塞入偽造的稽核紀錄 | 中 | 仍在 | 🅳 | FR-097 L1 F2 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 78 | 匯出操作記錄的 Excel 檔沒有過濾公式字元,任何人不必登入就能在管理員的電腦上種一顆「公式炸彈」 | 高 | 仍在 | 🅶 | FR-097 L2 F1 |
| §3.1 | 82 | 匯出意見回饋的 Excel/CSV 檔沒有過濾公式字元,任何登入使用者送一則標題以等號開頭的回饋,管理員匯出後打開就會被當成 | 中 | 仍在 | 🅶 | FR-101 J1 F4 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 100 | 資料夾列表把資料庫的原始錯誤訊息整句吐回前端(含資料表名稱、欄位名稱、SQL 片段) | 低 | 仍在 | 🅶 | FR-109 V1-5 |
| §3.2 | 25 | 證據批次分類失敗時,錯誤訊息原文(型別: 訊息)直接存進批次、前端看得到 | 非資安 | 仍在 | 🅳 | evidence_batch_ser |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 9 | AI 儀表板的查詢結果,會夾帶每個帳號的密碼加密用鹽值 | 中 | 仍在 | 🅴 | FR-083 D2 F9 |
| §3.1 | 12 | AI 儀表板查到的資料,整包原樣回傳給前端,夾帶密碼加密用的鹽值與 is_super_admin(是否為超級管理員)旗標欄位 | 中 | 仍在 | 🅴 | FR-083 D1 F2 |
| §3.1 | 33 | 套件裡負責把物件轉換成回應內容的共用工具,會原樣吐出整個物件、沒有做任何欄位過濾(jedi-common/jedi_comm | 低 | 仍在 | 🅴 | FR-085 C3-7 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 98 | 資料夾更新 API 是前端送什麼就收什麼(整包請求內容原樣展開成資料物件),多塞一個「已刪除」欄位就繞過「資料夾裡還有東西就 | 中 | 仍在 | 🅺 | FR-109 V1-2 |
| §3.1 | 99 | 資料夾列表可以叫出系統刻意隱藏的資料夾 | 低 | 仍在 | 🅺 | FR-109 V1-4 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 36 | 上傳的網頁檔案會在我們自己的網站網域裡被當成程式執行(也就是俗稱的儲存型 XSS | 高 | 仍在 | —(本棒新歸入) | FR-086 B1-2 |
| §3.1 | 101 | 代理程式回報掃描報告時「檔名叫什麼系統就存什麼」 | 中 | 仍在 | 🅺 | FR-108 D3-1 F1 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 112 | 客戶上傳掃描規則壓縮檔時,「最多一萬個檔」的上限對 .zip 格式形同虛設 | 中 | 仍在 | 🅹 | FR-108 D2-1b F1 |
| §3.1 | 115 | 客戶上傳的檢測規則包會被當成程式碼執行 | 高 | 仍在 | 🅺 | FR-108 D2-3 F1 |
| §3.1 | 116 | 網址型規則來源完全繞過壓縮檔驗證器 | 中 | 仍在 | 🅹 | FR-108 D2-3 F2 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 21 | 資料庫隔離用的連線變數,是用字串拼接的方式組進 SQL 語句裡(jedi-common/jedi_common/sessio | 其他 | 仍在 | 🅸 | FR-085 C1 卡片重點① |
| §3.1 | 110 | 查 Google 雲端硬碟的搜尋條件用字串接起來組、沒有跳脫 | 中 | 仍在 | —(本棒新歸入) | FR-111 E3-3 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 105 | 在一張稽核任務上換掃描工具時,「要掃哪些機器」這欄不會拿實際生效的值重新檢查台數上限 | 中 | 仍在 | 🅺 | FR-108 D3-2 F1 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 13 | 驗證數位簽章用的工具庫,被歸類在開機時不會檢查的第三方分層裡 | 高 | 仍在 | 🅵 | FR-084 T1-2 |
| §3.1 | 14 | 文件宣稱系統有「檔案標記」與「資料庫紀錄」兩道鎖、任一道還在就會拒絕開機,但程式碼其實只做了一道 | 高 | 仍在 | 🅵 | FR-084 T1-1 |
| §3.1 | 15 | 有一個環境變數 GUIDANT_RESOURCE_ROOT 可以把「要核對哪個目錄」整個換掉,而且它的優先順序比「是否為正式 | 中 | 仍在 | 🅵🅸 | FR-084 T1-3 |
| §3.1 | 16 | 已經使用過的解鎖檔案,如果紀錄檔毀損,系統會預設當作「一張都還沒用過」(unlock.py:83-100,遇到讀取錯誤時直接 | 中 | 仍在 | 🅵 | FR-084 T1-4 |
| §3.1 | 17 | 鎖定畫面的服務綁定在對外部網路開放的位址、跨網域規則也設成允許任何來源,會把機器指紋與鎖定事件編號洩漏給任何連得到這台機器的 | 低 | 仍在 | 🅵 | FR-084 T1-5 |
| §3.1 | 18 | 回報「偵測到竄改」這個事件時,會把伺服器日誌檔最後 50 行的原始內容整段送到原廠,完全沒有做任何遮罩處理(forensic | 低 | 仍在 | 🅳🅵 | FR-084 T1-6 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 55 | 一張惡意設計的流程圖可以把伺服器卡死 | 高 | 仍在 | 🅹 | FR-088 P1 F1 |
| §3.1 | 56 | 讀取流程範本時,會無條件解析裡面的流程圖內容、完全沒有防呆機制,一筆空白內容的範本會讓所有人的清單頁面都出錯、而且不會自己恢 | 中 | 仍在 | 🅶🅹 | FR-088 P1 F3 |
| §3.1 | 57 | 任何登入者丟一份特製的流程圖給「檢查流程圖是否合法」這支 API,就能卡住一條處理程序 120 秒,連續打四次就能讓全站對所 | 高 | 仍在 | 🅹 | FR-088 H3 F7 |
| §3.2 | 15 | 啟動稽核流程時,系統會把每個任務的執行編號寫回「當初傳進來的那份流程範本」 | 非資安 | 部分修 | —(本棒新歸入) | workflow_execution |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 31 | 分頁查詢的「一頁要顯示幾筆」這個參數,沒有設定上限(jedi-common/jedi_common/interfaces/s | 中 | 仍在 | 🅶🅹 | FR-085 C3-2 |
| §3.1 | 38 | 上傳檔案完全沒有單檔大小上限、也沒有檔案數量上限(整個套件找不到任何這類限制設定) | 低 | 仍在 | —(本棒新歸入) | FR-086 B1-7 |
| §3.1 | 104 | 分類容器沒設記憶體/CPU/處理程序上限,逾時也殺不掉它 | 低 | 仍在 | 🅹 | FR-111 E1-3 |
| §3.1 | 114 | 手動重新掃描/解析功能無條件開一條背景執行緒,可以把主機打掛 | 中 | 仍在 | 🅹 | FR-108 D2-1a F2 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 59 | 在專案裡被定義為「只能看、沒有待辦任務」的 viewer 角色,實際上可以把別人的稽核任務標記完成、或是把流程退回上一關,稽 | 中 | 仍在 | 🅰🅷 | FR-088 H4 F6 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 74 | 一個客戶的管理員,可以改掉全公司所有人的登入規則 | 高 | 仍在 | 🅷 | FR-096 H1 F2 |
| §3.1 | 75 | 一個客戶的管理員,可以把「全公司的日誌要送去哪台伺服器」改成他自己的機器 | 高 | 仍在 | 🅳🅷 | FR-097 L1 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 80 | 設備清冊與資訊系統清冊的讀取功能只檢查「有沒有登入」、不檢查權限(設備四支、資訊系統三支) | 中 | 仍在 | 🅷 | FR-098 A1 F1 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 41 | 當某個客戶讀不到自己的儲存設定時,系統會去借用別的客戶的帳號密碼 | 中 | 仍在 | 🅲🅷 | FR-086 B2-B |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 11 | 使用者只要打字對話,就能誘導 AI 選中 26 支查詢功能裡的任何一支 | 高 | 仍在 | —(本棒新歸入) | FR-083 D1 F1 |
| §3.1 | 102 | 證據檔的內文可以對 AI 下指令,左右它判這份證據符合哪些合規項目 | 中 | 仍在 | 🅷 | FR-111 E1-1 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 10 | AI 儀表板的專案清單功能有一道「視同管理員」的後門,讓不是專案成員的人也能列出租戶內的全部專案 | 中 | 仍在 | 🅰🅷 | FR-083 D2 F10 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 3 | 安裝程式每套部署都種下同一組原廠超級管理員密碼,密碼的加密雜湊值寫死在 SQL 檔案裡,也沒有強制客戶第一次登入就改密碼 | 高 | 仍在 | 🅲🅷 | FR-079 B2 F15 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 46 | 兩支背景清理排程靠「查不到身分就給最高權限」撐著,收緊那條規則會連帶弄壞它們 | 中 | 已修 | 🅸 | FR-087 T1 §6.1 |
| §3.1 | 53 | 「查詢目前在哪個階段」這支功能,用你填的專案編號去查你的角色,卻用你填的輪次編號去撈資料,兩者完全不核對;角色不符也不會擋下 | 中 | 仍在 | 🅰🅱🅸 | FR-088 H1 F4 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 70 | 六張任務指派/參與者表的資料存取層,沒有一支自己加專案範圍條件 | 中 | 仍在 | —(本棒新歸入) | FR-095 P2 P2-4 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 54 | 推進或退回階段時,操作者顯示的暱稱可以由呼叫端自己填寫 | 低 | 仍在 | 🅶 | FR-088 H1 F8 |
| §3.1 | 81 | 只有「修改資訊系統」權限的人,送一個「停用」欄位就能達成「刪除」的效果,刪除權限形同虛設 | 低 | 仍在 | 🅶 | FR-098 A2 F2 |
| §3.1 | 93 | 多人同時填問卷時,「這筆是誰填的」直接採用前端送上來的名字寫進建立者/修改者欄位 | 中 | 仍在 | 🅶 | FR-109 V2 F5 |
| §3.2 | 12 | 系統自動產生的密碼,長度比要求的少一個字元 | 非資安 | 仍在 | 🅶 | common_util.py:64 |
| §3.2 | 13 | 「強制執行」這個旗標有兩個不同的來源,容易搞混 | 非資安 | 仍在 | 🅶 | stage_advance_serv |
| §3.2 | 21 | 卡片說「批次新增指派」是死端點、前端無呼叫者 | 非資安 | 仍在 | —(本棒新歸入) | FR-095 P2 P2-6 |
| §3.2 | 24 | 問卷 Excel 匯入失敗時,暫存檔會永遠留在磁碟上 | 非資安 | 仍在 | —(本棒新歸入) | FR-109 V1 runner 人 |
| §3.2 | 26 | 正解(ground truth)匯入的內容驗證幾乎等於沒有 | 非資安 | 仍在 | —(本棒新歸入) | evidence_classific |
| §3.2 | 27 | AI 分類設定裡的「預設廠商」「預設型號」兩欄存得進去、畫面填得出來,但分類真的跑起來時沒有人讀它們(只有「預設思考深度」被 | 非資安 | 仍在 | —(本棒新歸入) | evidence_batch_ser |
| §3.2 | 30 | 一段註解寫的跟資料庫實際規則相反 | 非資安 | 仍在 | —(本棒新歸入) | FR-108 D2-4a |
| §3.2 | 33 | jedi-common 分頁查詢的共用篩選邏輯,把跨欄位的字串條件用「或」而不是「且」連接 | 非資安 | 仍在 | —(本棒新歸入) | jedi-common _get_p |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 20 | db.py:97-99 這行程式碼是死碼(永遠不會真正發揮作用) | 其他 | 仍在 | 🅶 | FR-085 C1 卡片重點② |
| §3.1 | 32 | 有一支開發階段用的輔助工具混在正式出貨的套件裡,而且這支工具會把整個檔案內容覆寫成空白(jedi-common/jedi_c | 低 | 部分修 | —(本棒新歸入) | FR-085 C3-6 |
| §3.2 | 14 | 三支接收檔案路徑參數、但現在完全沒人呼叫的程式 | 非資安 | 仍在 | 🅶 | bpmn_generator.py: |
| §3.2 | 16 | 套件裡已經接上但目前沒人使用的功能(是未來的陷阱,不是現在的問題) | 非資安 | 仍在 | —(本棒新歸入) | FR-088 P2 §6.1 |
| §3.2 | 18b | 有一組流程參與者服務在主專案這邊已經接上、但沒人使用(與第 16 項是同一種「接上但沒人用的功能」型態) | 非資安 | 仍在 | —(本棒新歸入) | FR-095 P1 |
| §3.2 | 23 | 四支任務指派相關方法目前宿主完全零取用、零守門 | 非資安 | 仍在 | —(本棒新歸入) | FR-095 P2 六支方法對照表 |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.2 | 7 | 修改租戶或部門資料時,如果只更新部分欄位,會把「上層是誰」這個欄位打成空值,留下「上層是誰」跟「完整路徑」互相矛盾的一筆資料 | 非資安 | 已修 | —(本棒新歸入) | tenant_repo_impl.p |
| §3.2 | 8 | 建立部門時,「建立者」這個欄位從來沒有被設定過(程式裡連續兩行都寫成「更新者」),導致「建立者」跟「更新者」兩個稽核欄位都變 | 非資安 | 已修 | —(本棒新歸入) | app/service/org_un |
| §3.2 | 9 | 套件裡更新公告的功能,檢查的對象寫錯了(應該檢查轉換後的資料物件,卻檢查了原始輸入),導致查無此筆公告時,程式會對一個空值做 | 非資安 | 已修 | —(本棒新歸入) | jedi-bulletin bull |
| §3.2 | 10 | 沒有登入身分時建立公告會直接讓程式崩潰(對空值取屬性) | 非資安 | 已修 | —(本棒新歸入) | jedi-bulletin bull |
| 出處 | # | 一句話 | 嚴重度 | 狀態 | §4 原有 | 發現於 |
|---|---|---|---|---|---|---|
| §3.1 | 28 | 員工被停權之後,他手上的登入憑證還是能繼續用大約三天半,而且他自己還能把有效期續到約八天 | 中 | 仍在 | —(本棒新歸入) | FR-075 S7 重跑 F1 |
| §3.1 | 48 | 本機硬碟儲存方式在刪除檔案時,漏清了轉檔產生的 PDF 備份檔 | 中 | 仍在 | —(本棒新歸入) | FR-086 B1b-3 |
| §3.1 | 106 | 按「刪除整批」之後,這批證據的判定結果、容器原始報告、容器紀錄、含原始檔名的清單,全部永久留在後端主機的工作目錄裡 | 低 | 仍在 | —(本棒新歸入) | FR-111 E2 ⑥ |
| §3.2 | 18 | 沒有被分配部門的一般使用者,送出意見回饋會失敗、而且畫面看不出原因 | 非資安 | 仍在 | —(本棒新歸入) | FR-101 J2 N1 |
| §3.2 | 28 | SHARED 這個範圍值三層各認一套,服務層那層是空的 | 非資安 | 仍在 | —(本棒新歸入) | FR-108 D2-2a F2 |
| §3.2 | 29 | 套件自帶的建表腳本值域還停在舊版,跟主線 migration 已經對不上 | 非資安 | 仍在 | —(本棒新歸入) | FR-108 D2-2a F3 |