本卡屬 FR-079(母卡 CM-1609),第 2 棒:宿主接線(BE repo,不是 jedi monorepo)。只掃不修。建議先跑本棒——授權判定全在這半邊。

這一棒在做什麼(白話)

用 claude-security plugin 掃主專案裡「公告」這個功能的接線程式碼(33 檔),找出誰能看到不該看的公告、改別人的公告、發公告給不屬於自己的部門這類問題,產出報告。只找問題、不修問題。

為什麼切這一塊

jedi-bulletin 套件本身只有沒有守門的 CRUD——「誰能看到哪一則公告」的判定整個在主專案這半邊(route 的 capability 守門、app service 的部門過濾、infra 的動態查詢組裝、model 的 tenant scope)。母卡列的十個重點有八個落在這裡。與 FR-077 R3 的情形相同:套件把安全決策外包給宿主,真正的答案在宿主這幾十個檔裡。

另外,本專案已知會重犯「讀取端點漏守門」這個病(CM-1585/CM-1589 都是),而這裡的兩條讀取 route 正好只有 @jwt_required()。

重點看什麼

這些是首腦讀過程式碼後認為最容易出事的地方,是思考起點不是檢查清單;全部未經任何驗證,可能有錯,以你實際讀到的為準。工具不會照這份清單走,HIGH 級的東西常常要靠人照這裡追出來(FR-076 L2 的 HIGH 就是這樣來的)。

已知背景