Weblate 威脅模型¶
專案:Weblate
上次針對 Weblate 2026.8 版本的提交 491e79010b2 進行檢閱。
日期:2026-05-14。
狀態:已接受,2026-05-14。
版本繫結:此模型會隨 Weblate 發行版本進行版本控管。針對 Weblate N 版的回報,會依 N 版所公開的模型進行分流處理,而不是依最新開發分支處理。 (維護者說明)
Reporting cross-reference: Reports that violate a property Weblate claims in
Security properties Weblate provides are reported through SECURITY.md
and 漏洞與事件處理. Reports that fall under Out of scope or
Security properties Weblate does not provide can be closed by citing this
document unless this model routes them to VALID-HARDENING. (documented)
(source: 漏洞與事件處理)
來源圖例:*(文件記載)* 表示該聲明記載於 Weblate 說明文件;*(維護者說明)* 表示維護者在此威脅模型處理期間提出該聲明;*(推論)* 表示該聲明是依目前專案形態推論而得,仍需維護者確認。
來源摘要:103 項記載於文件/64 項由維護者提出/0 項推論聲明。
Weblate is a Django-based web localization platform. It accepts work from browser users, API clients, project-scoped tokens, repository webhooks, VCS repositories, backup archives, background workers, and configured external services, then stores and synchronizes translation projects through a database, datastore, local filesystem repositories, and external code-hosting systems. (documented) (source: Weblate 說明文件, Weblate 的 REST API, 持續在地化)
範圍及預期用途¶
元件家族 |
代表性介面 |
處理程序外部影響 |
模型狀態 |
|---|---|---|---|
Web 使用者介面和 REST API |
瀏覽器檢視、表單、工作階段端點、Weblate 的 REST API |
資料庫、資料存放區、電子郵件、記錄、上傳的檔案 |
In scope. (documented) (source: Weblate 的 REST API, 設定說明) |
已儲存的翻譯報告 |
報告表單及 |
資料庫快照及背景工作 |
In scope as authenticated, permission-checked contributor data with operator-configured retention. (documented) (source: 翻譯進度報告, Weblate 的 REST API) |
身分驗證、工作階段及授權 |
登入、雙因素驗證、SSO、團隊、權限、專案存取、API 權杖 |
資料庫、身分識別服務提供者、瀏覽器 Cookie |
|
專案範圍 API 權杖 |
在專案 API 存取 中建立的權杖 |
與權杖權限允許的應用程式影響相同 |
In scope as authenticated actors with delegated project scope. (documented) (source: Weblate 的 REST API, 存取控制) |
Webhooks |
通知掛勾, 專案 啟用掛勾, 應用程式 webhook URL |
背景工作排程及 VCS 儲存庫更新 |
In scope as a public, deployment-hardened interface. (documented) (source: 通知掛勾, 啟用掛勾, 應用程式 webhook URL) |
VCS 整合 |
儲存庫 URL、分支、推送、拉取、合併要求及本機複本 |
檔案系統、子 VCS 指令、SSH/HTTPS 網路連線 |
In scope when reachable through Weblate configuration or project content. (documented) (source: 持續在地化, 程式碼託管整合) |
背景工作 |
用於儲存庫更新、通知、翻譯記憶、翻譯及備份的 Celery 佇列 |
資料庫、資料存放區、檔案系統、對外網路 |
In scope as Weblate-controlled execution of user or operator actions. (documented) (source: 設定說明) |
專案備份匯入/匯出 |
上傳的 ZIP 封存檔、產生的備份封存檔、檔案系統還原、儲存庫狀態 |
In scope. (documented) (source: 備份和移動 Weblate, Weblate 的 REST API, 管理指令) |
|
服務備份 |
BorgBackup 設定與 |
透過檔案系統或 SSH 使用的本機或遠端備份儲存空間 |
In scope for Weblate's handling of configured backup jobs; Borg itself is out of scope. (documented) (source: 備份和移動 Weblate, 管理指令) |
機器翻譯及對外整合 |
機器翻譯、頭像、狀態回報、遙測、錯誤回報、VCS 主機、GitHub App 連線、CDN 附加元件、Fedora Messaging 附加元件 |
對外 HTTP(S)、AMQP(S)、提供者 API、記錄 |
In scope for Weblate's enforcement of configured access and network restrictions. Provider behavior is out of scope. (documented) (source: 設定, 程式碼託管整合, 附加元件) |
附加元件 |
內建附加元件及管理員設定的附加元件執行作業 |
依附加元件而異;可能變更儲存庫或聯絡服務 |
啟用的內建附加元件納入範圍。第三方附加元件不在範圍內,但 Weblate 的權限及安裝閘門除外。 (維護者說明) |
管理指令 |
由營運者執行的 weblate 指令 |
資料庫、檔案系統、VCS、備份儲存空間 |
處理不受信任的 Weblate 資料時納入範圍;本機營運者的 Shell 視為可信任。 (維護者說明) |
測試、產生的說明文件、螢幕擷取畫面、開發固定資料 |
|
僅供開發使用的檔案及產生的產物 |
不在產品安全性聲明的範圍內。 (維護者說明) |
The intended deployment is a server-side Weblate installation behind a web server or reverse proxy, with a WSGI or ASGI application server, PostgreSQL database, datastore, Celery workers, a writable data directory, and optional outbound VCS, backup, identity-provider, and machine-translation integrations. (documented) (source: 設定說明)
The WSGI and ASGI deployment modes expose the same Django HTTP request surface and rely on the same reverse-proxy controls. ASGI deployment does not add a WebSocket interface. (documented) (source: Sample configuration to start Granian with ASGI)
The relevant actors are split by trust level: unauthenticated clients, authenticated users, reviewers, project managers, administrators, project-scoped API tokens, webhook senders, external VCS providers, configured external services, and local operators. (documented) (source: 存取控制, Weblate 的 REST API)
Weblate 的設計用途並不是作為處理程序內安全程式庫嵌入、作為不受信任程式碼的沙箱,或在缺少正式環境使用說明所述部署控制措施時對外公開。 (維護者說明)
不納入範圍¶
下列項目明確不屬於此模型的目標:
遭入侵的作業系統帳號、容器執行階段、資料庫伺服器、資料存放區、反向 Proxy 或管理員 Shell。Weblate 在這些界線內執行,並未聲明能保護自身免受已遭入侵主機的影響。 (維護者說明)
具有不受限制伺服器存取權的惡意 Weblate 網站管理員或本機營運者。這類執行者可以變更設定、認證資訊、資料或程式碼。 (維護者說明)
Vulnerabilities in third-party dependencies as independent projects. General Django, Django REST framework, Python Social Auth, BorgBackup, VCS, database, and provider vulnerabilities are reported upstream unless the issue is in Weblate's use of them. (documented) (source: 漏洞與事件處理)
建置及發行維護規範,包括固定 Action 版本、產物簽署、相依套件更新程度及儲存庫分支保護。這些項目會影響專案營運,但不是 Weblate 執行階段行為的威脅模型聲明。 (維護者說明)
外部 VCS 提供者、身分識別服務提供者、電子郵件伺服器、機器翻譯服務、個人頭像服務、CDN 儲存空間或備份儲存空間的一般安全性。Weblate 只對其與這些服務之間已設定的互動方式建立模型。 (維護者說明)
User organizations' translation-supply-chain choices outside Weblate. Outsourced or crowdsourced translator risks are described separately in 在地化威脅模型. (documented) (source: 在地化威脅模型)
第三方附加元件程式碼、本機自訂程式碼、開發固定資料、產生的說明文件輸出、僅供測試使用的程式碼,以及示範或範例資料。 (維護者說明)
信任界線及資料流程¶
Weblate 的主要信任界線是面向網路的應用程式介面:瀏覽器檢視、API 端點、Webhook 端點及上傳端點會接受信任程度較低的行為者所提供的資料,並將其轉換為資料庫資料列、本機儲存庫狀態、背景工作、對外要求及呈現的使用者介面。 (維護者說明)
邊界 |
信任翻譯 |
|---|---|
用戶端瀏覽器/API 用戶端至 Weblate |
Untrusted or authenticated requests become permission-checked application actions. (documented) (source: Weblate 的 REST API, 存取控制) |
Webhook 傳送者至 Weblate |
Public forge notifications can schedule repository synchronization where hooks are enabled. GitHub App webhooks additionally authenticate with a per-app URL token and GitHub signature verification before processing. (documented) (source: 通知掛勾, 啟用掛勾, 應用程式 webhook URL) |
Weblate 至資料庫/資料存放區 |
Permission-checked application state becomes persistent data and queued work. (documented) (source: 設定說明) |
Weblate 到本機 VCS 儲存庫 |
Project configuration and repository content drive filesystem and VCS operations. (documented) (source: 持續在地化) |
Weblate 到外部服務 |
Configured URLs, credentials, and provider settings drive outbound network connections. (documented) (source: 程式碼託管整合, 設定) |
專案備份封存檔及 Weblate 檔案系統 |
Uploaded ZIP members and metadata become restored project state; generated project backups are written to and read from local backup storage. (documented) (source: 備份和移動 Weblate, Weblate 的 REST API, 專案層級備份) |
可及性前提條件:
網頁使用者介面或 API 的發現,只有在未經身分驗證的用戶端、已通過身分驗證的使用者或專案範圍權杖能透過已記載的路由、表單或 API 端點觸及時,才納入模型。 (維護者說明)
An authorization finding is in model only when it crosses a documented permission, team, project, component, language, glossary, token, or site-wide boundary. (documented) (source: 存取控制)
A webhook finding is in model only when a request can reach an enabled hook endpoint and affect repository update scheduling, task volume, or information returned to the caller. (documented) (source: 通知掛勾, 啟用掛勾)
VCS 問題只有在攻擊者控制或信任程度較低的儲存庫資料、分支名稱、URL、檔名、提交中繼資料或專案設定能影響 Weblate 的 VCS 作業時,才納入模型。 (維護者說明)
A backup import finding is in model only when reachable from a project backup uploaded through Weblate or supplied to
import_projectbackup. (documented) (source: 專案層級備份,import_projectbackup)A backup export finding is in model only when reachable from documented project backup creation or download routes, including the REST API for users or project-scoped tokens with project edit permission. (documented) (source: Weblate 的 REST API, 專案層級備份, 存取控制)
A background-task finding is in model only when the task can be queued from an in-scope Weblate surface or scheduled Weblate maintenance path. (documented) (source: 設定說明)
A stored-report finding is in model when an authenticated user can generate, list, or render contributor data outside the creator or current
reports.viewscope. (documented) (source: 翻譯進度報告, Weblate 的 REST API)管理指令問題只有在該指令會處理不受信任的 Weblate 資料時,才納入模型;任何本機 Shell 存取權並非攻擊者能力。 (維護者說明)
環境假設¶
Weblate assumes a supported Python and Django runtime, a correctly configured database, a datastore, a writable data directory, and running workers for features that require background processing. (documented) (source: 設定說明)
Production deployments are expected to configure the external web server or
reverse proxy consistently with Weblate's HTTPS, host header, body-size, and
proxy-header settings. (documented) (source: 設定說明,
ENABLE_HTTPS, ALLOWED_HOSTS)
假設資料庫、資料存放區及內部服務連接埠不會直接公開給不受信任的網路。 (維護者說明)
Filesystem permissions are assumed to prevent unrelated local users from modifying Weblate's data directory, configuration, VCS repositories, generated SSH wrappers, backups, and secret material. (documented) (source: 備份和移動 Weblate, 設定說明)
Celery 工作程式是相同 Weblate 執行個體中的可信任元件。惡意或遭入侵的工作程式等同於遭入侵的應用程式處理程序。 (維護者說明)
VCS command execution, SSH, and HTTPS clients are assumed to execute as the
Weblate service user with the credentials configured for the relevant project
or integration, including database-stored GitHub App credentials used for
installation tokens and webhook signature verification. (documented) (source: 程式碼託管整合,
SSH_EXTRA_ARGS)
Weblate 對主機執行的動作:
It opens outbound network connections for configured VCS, identity-provider, avatar, machine-translation, backup, status-reporting, telemetry, error-reporting, and add-on features such as outbound webhooks and Fedora Messaging AMQP delivery. (documented) (source: 設定, 程式碼託管整合, 備份和移動 Weblate)
It runs VCS and backup-related helper commands as part of repository and backup workflows. (documented) (source: 持續在地化, 備份和移動 Weblate)
它會寫入已設定的資料目錄、儲存庫儲存空間、媒體/字型、備份傾印、記錄檔及快取位置。(文件記載) (來源:設定、備份和移動 Weblate)
它會依設定傳送電子郵件及通知。(文件記載) (來源:設定)
它並未宣稱不會產生影響整個處理程序的副作用,例如寫入記錄檔與快取、執行子處理程序或存取外部網路。(維護者說明)
建置時間與設定變體¶
調整項目 |
預設或文件記載的安全態勢 |
對模型的影響 |
維護者立場 |
|---|---|---|---|
匿名遠端 Hook 可進行設定,也必須針對專案啟用。 (文件記載) |
Exposes webhook endpoints as a public scheduling interface. Abuse resistance depends on deployment controls. (documented) (source: 通知掛勾, 啟用掛勾) |
公開 Hook 的正式環境部署會採用反向 Proxy 速率限制、要求主體大小限制、監控,以及儘量縮小公開範圍。 (維護者說明) |
|
|
HTTPS 會影響安全 Cookie、重新導向、HSTS、WebAuthn 及產生的 URL。(文件記載) (來源: |
停用 HTTPS 或設定錯誤,會移除 Weblate 瀏覽器安全性所依賴的傳輸與 Cookie 保護。(文件記載) (來源: |
文件記載的正式環境安全態勢為使用 HTTPS,並正確設定 Proxy 標頭。(文件記載) |
Configures accepted HTTP hostnames. (documented) (source: |
接受過於廣泛的主機可能削弱以 Host 標頭為基礎的保護機制,並破壞 URL 產生時的假設。(維護者說明) |
正式環境部署會將此項限制為執行個體的主機名稱。(維護者說明) |
|
|
速率限制可進行設定。(文件記載) (來源:Weblate 的 REST API、設定) |
可用性聲明假設速率限制符合部署規模及暴露範圍。(維護者說明) |
若停用速率限制,DoS 的分流判定將從 Weblate 錯誤改為部署安全態勢問題,除非單一要求違反所聲明的屬性。(維護者說明) |
|
內容安全性原則 (CSP) 來源可進行設定。(文件記載) (來源:設定) |
擴大來源範圍可能降低瀏覽器端對 XSS 或第三方內容的限制能力。(維護者說明) |
加入第三方來源的部署環境,即表示接受這項擴大的瀏覽器信任範圍。(維護者說明) |
|
預設值會限制專案備份的上傳與匯入大小、成員數,以及可疑的壓縮比。(文件記載) (來源:設定) |
提高或停用這些限制,會增加還原時的資源暴露程度。(文件記載) (來源:設定) |
上述文件記載的預設值,是備份匯入資源保證的一部分。(文件記載) |
對外 URL 的私有目標限制及允許清單 |
User-configurable outbound URL surfaces documented with private-target
restriction settings, including Fedora Messaging AMQP broker URLs,
reject internal or non-public targets by default. (documented)
(source: |
允許清單設定及高權限設定可刻意擴大可連線範圍。(文件記載) (來源: |
對於文件記載且可由使用者設定的 URL 介面,預設拒絕私有目標屬於應用程式層級的安全屬性。(維護者說明) |
允許自訂 SSH 選項。(文件中有資訊) (來源: |
Weakening SSH algorithms or host verification changes VCS transport assumptions. Routing options can override protected repository address pinning. (maintainer) |
營運者須負責自訂 SSH 選項對安全性造成的影響。 (維護者說明) |
|
第三方附加元件及本機自訂項目 |
管理員可以擴充行為。(文件記載) (來源:附加元件) |
自訂程式碼可能加入此模型範圍外的新信任邊界及安全屬性。(維護者說明) |
第三方程式碼會另行建立模型。(維護者說明) |
輸入假設¶
表面 |
輸入 |
攻擊者是否可控制? |
呼叫端或營運者必須強制執行的措施 |
|---|---|---|---|
瀏覽器表單及 REST API |
要求主體、查詢字串、上傳的檔案、標頭及 Cookie |
可以,但受行為者的驗證狀態限制。(文件記載) (來源:Weblate 的 REST API) |
|
身分驗證端點 |
密碼、WebAuthn 資料、SSO 回呼、重設權杖 |
可以。(文件記載) (來源:身分驗證) |
正確的身分識別服務提供者設定及 HTTPS。(文件記載) (來源:身分驗證、 |
專案範圍權杖 |
透過權杖認證的 API 請求 |
可以,持有權杖者即可控制。(文件記載) (來源:Weblate 的 REST API) |
權杖儲存、輪替,以及遵循最小權限原則的團隊成員資格。(維護者說明) |
翻譯內容 |
來源字串、翻譯、註解、建議、詞彙表項目;建議 API 要求,包括 |
可以,來源可能是具備相關權限的使用者或匯入的儲存庫。(文件記載) (來源:使用 Weblate 進行翻譯、存取控制) |
Review workflows for project-specific content integrity; approving a
suggestion via the API additionally requires the |
Webhook 端點 |
標頭、事件類型、內容、儲存庫及分支中繼資料 |
可以,前提是端點可連線。(文件記載) (來源:通知掛勾) |
僅在需要時啟用 Hook,並採用要求限制及監控。 (維護者說明) |
GitHub App 連線回呼 |
GitHub OAuth 程式碼、已簽署的 Weblate 狀態、安裝 ID、帳號中繼資料 |
可以,來源為已驗證的 Weblate 使用者及 GitHub 重新導向查詢字串。(文件記載) (來源:從 Weblate 註冊 GitHub App) |
Weblate 要求工作區管理權限,且會在儲存前確認 GitHub 使用者擁有個人安裝項目,或可管理組織安裝項目。(文件記載) (來源:從 Weblate 註冊 GitHub App) |
儲存庫設定 |
儲存庫 URL、分支、推送 URL、認證資訊、Gerrit 審閱推送選項、附加元件設定 |
僅將 VCS 及專案管理權限指派給受信任的使用者。(文件記載) (來源:存取控制) |
|
外部儲存庫內容 |
翻譯檔案、路徑、分支名稱及提交中繼資料 |
可以,前提是上游儲存庫由其他行為者控制。(維護者說明) |
信任已設定的上游儲存庫,或審閱匯入的變更。(維護者說明) |
專案備份匯入 |
ZIP 封存檔成員、中繼資料、翻譯檔案、儲存庫狀態 |
可以,任何能上傳或提供備份的人皆可控制。(文件記載) (來源:專案層級備份) |
將匯入限制維持在適合此執行個體的值。(文件記載) (來源:設定) |
專案備份匯出 |
備份建立要求及要求的備份檔名 |
可以,具備專案編輯權限的使用者或專案範圍權杖皆可控制。(文件記載) (來源:Weblate 的 REST API、專案層級備份、存取控制) |
Grant project edit permission only to trusted project administrators. (documented) (source: 存取控制) |
機器翻譯和外部服務設定 |
服務提供者 URL、認證資訊、模型或服務設定 |
應將已設定的服務提供者視為傳送資料的接收方;提交的內容會因服務提供者及啟用的功能而異。(維護者說明) |
|
管理指令 |
本機營運者提供的指令列引數及檔案 |
除非正在處理 Weblate 資料或專案備份,否則視為受信任的本機輸入。(維護者說明) |
僅允許受信任的營運者存取 Shell。 (維護者說明) |
大小和速率假設:
Weblate 依賴應用程式及反向 Proxy 的上傳限制來處理大型 HTTP 要求。(文件記載) (來源:
PROJECT_BACKUP_UPLOAD_MAX_SIZE)專案備份匯入會受到成員數、未壓縮總大小、壓縮項目大小、最小比率大小及壓縮比設定的限制。(文件記載) (來源:設定)
Project backup metadata, object references, repository paths, outbound URLs, regular expressions, and screenshot content are validated before restore writes project state. Failed restores remove repository and media objects created by that attempt. (documented) (source: 專案層級備份)
API 及選取的網頁操作應受到已設定速率限制的保護。(文件記載) (來源:Weblate 的 REST API、設定)
儲存庫大小、專案數、元件數及 Worker 容量皆屬部署規模規劃考量,除非單一範圍內輸入可略過文件記載的限制或權限。(維護者說明)
攻擊者模型¶
行為者 |
範圍內能力 |
範圍外能力 |
|---|---|---|
未經身分驗證的網際網路用戶端 |
向公開頁面、註冊、登入、API 及可連線的 webhook 端點傳送 HTTP(S) 要求。(文件記載) (來源:Weblate 的 REST API) |
讀取伺服器記憶體、略過反向 Proxy 控制,或直接存取內部服務。(維護者說明) |
已認證身分的使用者 |
執行已指派團隊、權限及工作流程所允許的操作。(文件記載) (來源:存取控制) |
Act outside assigned permissions without exploiting a Weblate flaw. (documented) (source: 存取控制) |
審閱者或專案管理員 |
Exercise delegated project, component, language, review, VCS, translation memory, screenshot, or access-management permissions. (documented) (source: 存取控制) |
除非獲授該角色或利用 Weblate 弱點,否則成為網站管理員。 (維護者說明) |
專案範圍 API 權杖持有者 |
使用指派給權杖之團隊成員資格的 API 權限,包括在已授予專案編輯權限時建立及下載專案備份。(文件記載) (來源:Weblate 的 REST API、存取控制、專案層級備份) |
存取範圍外的專案、元件或全站功能。(文件記載) (來源:存取控制) |
Webhook 傳送方 |
向已啟用的 hook 端點傳送偽造、重送、格式錯誤或大量的 webhook 要求。(文件記載) (來源:通知掛勾) |
取得未經 Weblate 驗證、由程式碼代管平台驗證的身分。(維護者說明) |
外部 VCS 或服務提供者 |
依已設定的整合傳回儲存庫資料、API 回應、重新導向或錯誤。(文件記載) (來源:程式碼託管整合) |
除非透過 Weblate 所處理的資料或通訊協定行為,否則入侵 Weblate 主機。 (維護者說明) |
翻譯者或在地化貢獻者 |
提交下游應用程式可能取用的翻譯內容。(文件記載) (來源:在地化威脅模型) |
控制 Weblate 範圍外之下游應用程式的逸出、呈現或審閱原則。(文件記載) (來源:在地化威脅模型) |
本機營運者 |
執行管理指令、變更設定及存取備份。(文件記載) (來源:管理指令、備份和移動 Weblate) |
在此模型中,本機惡意營運者視為受信任。 (維護者說明) |
此模型中的攻擊者會嘗試略過授權、未經許可修改翻譯或儲存庫資料、揭露私有專案或使用者資料、偽造或濫用儲存庫同步、觸發不安全的外連要求、透過 Weblate 控制的工作流程執行指令,或耗盡有明確限制的應用程式資源。(維護者說明)
Weblate 提供的安全屬性¶
屬性 |
條件 |
違規徵兆 |
嚴重程度層級 |
|---|---|---|---|
Web authorization separates site, project, component, language, glossary, VCS, translation memory, screenshot, review, and access management permissions. (documented) (source: 存取控制, 身分驗證) |
權限指派符合預期的信任關係。人工使用者必須先通過團隊層級強制執行的 2FA,才能套用由團隊取得的權限。 |
使用者或權杖可以讀取或變更已指派範圍外的資料。 |
若暴露私有資料或高權限變更,便屬安全性重大問題。 |
專案範圍 API 權杖受已指派的專案/團隊權限限制。(文件記載) (來源:Weblate 的 REST API、存取控制) |
權杖由受信任的行為者建立及儲存。 |
權杖可以執行專案或團隊範圍外的操作。 |
對安全有重要影響。 |
HTTPS 與 Proxy 設定正確時,驗證及工作階段控制會保護瀏覽器工作階段。(文件記載) (來源:身分驗證、 |
已啟用正式環境 HTTPS 及安全 Cookie 設定。 |
工作階段固定攻擊、略過認證或跨使用者工作階段混淆。 |
對安全有重要影響。 |
Weblate 呈現使用者提供的內容時,不應在其他使用者的瀏覽器中執行指令碼。(維護者說明) |
內容會透過 Weblate UI 範本及標準逸出機制顯示。 |
Weblate 同源環境中的儲存型或反射型 XSS。 |
對安全有重要影響。 |
Weblate 處理的儲存庫、分支、路徑及 VCS 輸入不得轉化為 Shell 指令執行。(維護者說明) |
VCS 操作會透過 Weblate 支援的儲存庫工作流程及已設定的認證資訊叫用。 |
以 Weblate 使用者身分插入指令或執行任何程式碼。 |
對安全有重要影響。 |
私有專案資料、使用者資料、認證資訊、權杖、SSH 金鑰及 2FA 秘密資料,不會揭露給缺乏權限的行為者。(文件記載) (來源:存取控制、隱私法規遵循) |
主機、資料庫及儲存空間權限均保持完整。 |
跨專案資料外洩、認證資訊暴露或未經授權的匯出。 |
對安全有重要影響。 |
預設或更嚴格的限制保持已設定狀態。 |
超大或高度膨脹的封存檔超過已設定臨界值後仍獲接受。 |
若造成單一要求 DoS,便屬安全性重大問題;否則屬於可用性錯誤。 |
|
文件記載且可由使用者設定的外連 URL 介面,預設會拒絕內部或非公開目標。(文件記載) (來源: |
Default private-target checks are enabled and no trusted allowlist exemption applies. VCS restrictions remain enabled, Git HTTPS and SSH address binding is not bypassed, and VCS backends without binding use only explicitly trusted hosts. |
可由使用者設定的螢幕擷取畫面 URL、遠端 HTML URL、專案網站或儲存庫瀏覽器 URL、外連 webhook URL、Fedora Messaging AMQP Broker URL 或 VCS URL,儘管有預設控制措施,仍可連線至內部或非公開目標。 |
若因此暴露內部服務或中繼資料,便屬安全性重大問題。 |
Weblate 會在稽核記錄或歷程記錄中,記下與安全性相關的帳號、權限及專案或元件設定變更。(文件記載) (來源:隱私法規遵循、Weblate 2026.8) |
記錄功能已設定,且儲存空間可供使用。 |
Weblate 聲稱會記錄的操作缺少稽核軌跡。 |
若因此無法調查高權限變更,便屬安全性重大問題;若只缺少次要事件,則僅屬正確性問題。 |
受速率限制的 API 及網頁操作會強制執行已設定的速率限制。(文件記載) (來源:Weblate 的 REST API、設定) |
速率限制已啟用,且由正常運作的資料儲存區提供支援。 |
超過已設定臨界值的要求仍會繼續處理。 |
依端點敏感程度而定,屬於可用性/安全性強化措施。 |
Weblate 不會刻意透過公開網頁介面直接暴露資料庫、資料儲存區、備份儲存空間或未經處理的內部儲存空間;啟用選用模組時,Git 匯出器 會刻意暴露匯出的 VCS 儲存庫;已授權的專案備份下載則會刻意透過文件記載的專案備份路由暴露。(文件記載) (來源:Weblate 的 REST API、專案層級備份) (維護者說明) |
除檔案記載的匯出功能外,部署環境不會將內部儲存路徑作為靜態檔案提供。 |
公開要求取得未經處理的內部儲存空間、設定或未匯出的儲存庫資料。 |
對安全有重要影響。 |
此模型中的資源臨界值,會在文件有記載時採用其設定預設值,尤其是備份匯入限制及速率限制。對於儲存庫大小、專案數、元件數及翻譯量,Weblate 並未聲明與部署容量無關的固定通用資源上限。(維護者說明)
Weblate 不提供的安全屬性¶
Weblate 不會針對所有支援的程式碼代管平台整合,以密碼學方式驗證每一次 webhook 傳送。Hook 端點著重相容性及部署強化,而非一律由程式碼代管平台驗證。若報告只顯示在模型所述影響範圍內,未經驗證便能觸發操作,應歸類為 VALID-HARDENING,而非 BY-DESIGN。(維護者說明)
Weblate 不會將未經驗證的 webhook 視同受信任的程式碼代管平台身分。Hook 處理可以觸發更新工作流程,但其歸屬及真實性不如已驗證的使用者或權杖可靠。(維護者說明)
Weblate 不是用來隔離惡意管理員、惡意本機操作人員、第三方附加元件、自訂部署程式碼、VCS 用戶端或備份工具的沙箱。(維護者說明)
Weblate 不保證翻譯內容複製到下游產品後仍然安全,除非該產品自行進行逸出、驗證或審閱。翻譯檢查及審閱工作流程有助於管理在地化品質與風險,但並非完整的下游應用程式安全邊界。(文件記載) (來源:在地化威脅模型、檢查與修復)
容易混淆的概念:
Weblate 權限屬於應用程式授權,而非主機沙箱。獲授予 VCS 或專案管理權限的使用者,可以在該角色的權力範圍內刻意設定整合。(維護者說明)
若整合未驗證傳送內容,webhook 專案比對及事件剖析無法證明傳送者是合法的程式碼代管平台。(維護者說明)
翻譯檢查可偵測常見的品質及格式問題,但不保證翻譯字串對每個下游呈現器皆安全。(文件記載) (來源:檢查與修復、在地化威脅模型)
BorgBackup 加密會依 Borg 的設計保護備份封存檔;Weblate 不會另行為 Borg 內部機制提供密碼學保證。(文件記載) (來源:備份和移動 Weblate)
速率限制可減少已設定端點遭到濫用,但不保證在大量網路攻擊下仍能維持可用性。(維護者說明)
部分或全部交由部署環境或下游系統處理的常見攻擊類型:
驗證原則及 2FA 可降低網路釣魚及重複使用認證資訊的風險,但 Weblate 無法防止使用者在服務外洩漏認證資訊。(維護者說明)
若下游應用程式以不安全的方式呈現翻譯,惡意翻譯可能造成 XSS、格式字串、指令或原則問題。(文件記載) (來源:在地化威脅模型)
具有文件所載私有目標限制、可由使用者設定的外連 URL 介面,預設會拒絕內部或非公開目標;高權限允許清單、Proxy 及管理員控制的設定則可刻意擴大可連線範圍。(維護者說明)
龐大的儲存庫歷程、專案規模及背景工作量,需要 Weblate 單一輸入驗證以外的部署規模規劃及操作限制。(維護者說明)
下游責任¶
Operators must deploy Weblate behind production-grade HTTPS with correct proxy
headers, hostnames, request-size limits, and secure-cookie behavior.
(documented) (source: 設定說明, ENABLE_HTTPS,
ALLOWED_HOSTS)
Operators must assign teams, roles, project-scoped tokens, VCS credentials, and project management permissions according to least privilege for their organization. (documented) (source: 存取控制, Weblate 的 REST API)
公開 通知掛勾 的營運者必須只在需要時啟用,並提供反向 Proxy 速率限制、要求主體大小限制、監控及選用來源限制等部署控制措施。 (維護者說明)
營運者必須將私有目標允許清單、Proxy 及高權限對外整合設定,視為刻意擴大 Weblate 預設網路連線範圍限制。 (維護者說明)
Operators must keep backup import limits, API rate limits, and web rate limits at values that match instance capacity and exposure. (documented) (source: 設定)
Operators must protect the Weblate data directory, configuration, backup credentials, generated keys, database, datastore, and local shell access as trusted infrastructure. (documented) (source: 備份和移動 Weblate, 設定說明)
下游產品團隊必須在自己的應用程式中將翻譯字串視為不受信任的內容,除非已針對目標呈現器另行審閱、逸出及驗證。(文件記載) (來源:在地化威脅模型)
已知的誤用模式¶
廣泛公開 Webhook 端點、啟用專案 Hook,並將 Webhook 承載內容視為已由程式碼代管平台驗證的身分。這並不安全,因為部分支援的 Hook 著重相容性。請採用部署控制措施,並在可用時優先使用經過驗證的整合。 (維護者說明)
將專案管理、VCS 或存取管理權限授予僅獲信任擔任翻譯者的使用者。這並不安全,因為這些權限可能影響儲存庫、認證資訊或其他使用者。請指派權限較小的角色。(文件記載) (來源:存取控制)
將敏感來源字串或客戶私有內容傳送給機器翻譯服務提供者,卻未將該提供者視為資料接收方。這並不安全,因為 Weblate 必須將內容傳送至已設定的服務,而提交內容會因服務提供者及啟用的功能而異。請依專案的資料原則設定服務提供者。(維護者說明)
為求管理便利而從不受信任的來源匯入專案備份。這並不安全,因為備份包含專案中繼資料、翻譯內容及儲存庫狀態。請保持啟用匯入限制,且只匯入適用於目標執行個體的備份。(文件記載) (來源:備份和移動 Weblate)
將 Weblate 翻譯檢查視為下游應用程式不會透過翻譯字串遭受攻擊的證明。這並不安全,因為下游呈現器會決定最終執行環境。請在取用翻譯的應用程式中審閱並逸出翻譯。(文件記載) (來源:在地化威脅模型)
已知不構成問題的情況¶
若報告指出可連線的 webhook 無須程式碼代管平台驗證即可呼叫,且只會觸發模型所述的更新排程,單憑這點並不屬於
VALID。除非它略過文件記載的限制、洩漏資料,或造成模型所述排程以外的影響,否則應歸類為VALID-HARDENING。(維護者說明)若專案經理具備執行該操作的文件所載權限,報告指出其可以變更儲存庫設定、VCS 認證資訊或專案設定,並不構成安全漏洞。(文件記載) (來源:存取控制)
報告指出專案經理可設定 Gerrit 審閱推送選項,本身並不構成安全漏洞。Gerrit 會將這些選項解讀為已設定的 Weblate Gerrit 帳號,並強制執行 Gerrit 端權限。(文件記載) (來源:推送分支)
針對第三方附加元件行為的報告,除非證明略過 Weblate 的權限或安裝邊界,否則不屬於 Weblate 核心安全漏洞。(維護者說明)
惡意本機操作人員可以讀取設定、執行管理指令或變更檔案的報告,不在此模型範圍內,因為本機操作人員屬於受信任的基礎架構。(維護者說明)
下游應用程式呈現危險翻譯的報告,不屬於 Weblate 安全漏洞,除非 Weblate 本身在儲存、檢查、審閱或顯示該翻譯時違反所聲明的屬性。(文件記載) (來源:在地化威脅模型)
會改變此模型的條件¶
當 Weblate 加入新的公開端點系列、新的驗證或權杖模式、新的預設部署模式、新的備份或匯入格式、新的 VCS 執行路徑、新的外連整合類別、新的附加元件執行能力,或變更 hook、HTTPS、速率限制、CSP、私有網路存取或備份匯入限制的預設值時,請修訂此模型。(維護者說明)
當不支援的元件成為受支援的產品介面、文件記載的安全屬性遭到移除或縮減,或維護者接受無法歸入下列分流處置的安全漏洞報告時,請修訂此模型。(維護者說明)
分流處置¶
處置 |
含義 |
判定依據 |
|---|---|---|
|
範圍內的行為者透過範圍內的輸入,違反 Weblate 所聲明的屬性。 |
|
|
未違反任何所聲明的屬性,但 Weblate 選擇降低已知的誤用風險,例如仍在模型所述影響範圍內的相容性 webhook 觸發操作。 |
|
|
必須由攻擊者控制此模型標記為受信任的輸入。 |
|
|
需要此模型排除的能力。 |
|
|
發生於第三方附加元件、產生的文件、測試、本機自訂項目,或其他標記為範圍外的元件。 |
|
|
僅在部署選擇刻意移除所聲明的屬性後才會發生。 |
|
|
事關一個 Weblate 確實沒有提供的屬性。 |
|
|
符合文件記載且反覆出現的誤判情況。 |
|
|
無法明確歸入上述任何處置。 |