Weblate threat model¶
Project: Weblate
Last reviewed for Weblate 2026.10.1 at commit af7a54c07c.
Date: 2026-09-24.
Status: Accepted, 2026-09-01.
Enllaç de versió: aquest model està versionat amb versions de Weblate. Un informe contra la versió N de Weblate es tria amb el model publicat per a la versió N, no amb l’última branca de desenvolupament. (mantenidor)
Reporting cross-reference: Reports that violate a property Weblate claims in
Security properties Weblate provides are reported through SECURITY.md
and Vulnerabilitat i gestió d’incidències. 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: Vulnerabilitat i gestió d’incidències)
Llegenda de procedència: *(documentat)* significa que la reclamació s’indica a la documentació de Weblate; *(mantenidor)* significa que va ser declarat per un responsable durant aquest procés de model d’amenaça; *(inferit)* significa que es va raonar a partir de la forma actual del projecte i necessita confirmació del responsable.
Weblate és una plataforma de localització web basada en Django. Accepta el treball d’usuaris del navegador, clients API, fitxes d’abast del projecte, webhooks de dipòsits, repositoris VCS, arxius de còpia de seguretat, treballadors en segon pla i serveis externs configurats, i després emmagatzema i sincronitza projectes de traducció mitjançant una base de dades, magatzem de dades, dipòsits de sistemes de fitxers locals i sistemes d’allotjament de codi externs. (documentat) (font: Weblate Documentation, API REST del Weblate, Localització contínua)
Àmbit i ús previst¶
This model describes shared trust boundaries and security properties. Features within a component family follow its general guidance unless an explicit exception applies; the representative surfaces below are not an exhaustive feature inventory. (maintainer)
Component family |
Superfície representativa |
Efectes fora del procés |
Estat del model |
|---|---|---|---|
Interfície d’usuari web i API REST |
Visualitzacions del navegador, formularis, punts finals de sessió, API REST del Weblate |
Base de dades, magatzem de dades, correu electrònic, registres, fitxers carregats |
En abast. (documentat) (font: API REST del Weblate, Instruccions de configuració) |
Authentication, sessions, and authorization |
Inici de sessió, 2FA, SSO, equips, permisos, accés al projecte, fitxes API |
Base de dades, proveïdors d’identitat, cookies del navegador |
En abast. (documentat) (font: Autenticació, Control d’accés) |
Project-scoped API tokens |
Tokens creats al projecte Accés a l’API |
Els mateixos efectes d’aplicació que permeten els permisos de testimoni |
En l’àmbit com a actors autenticats amb àmbit de projecte delegat. (documentat) (font: API REST del Weblate, Control d’accés) |
Webhooks |
Punts d’inserció de notificacions, project Activa els punts d’inserció, App webhook URL |
Programació de tasques en segon pla i actualitzacions del dipòsit VCS |
In scope as a public, deployment-hardened interface. (documented) (source: Punts d’inserció de notificacions, Activa els punts d’inserció, App webhook URL) |
VCS integration |
Repository URLs, branches, pushes, pulls, merge requests, local clones, and GitHub App registration, connections, component migration, and removal |
Filesystem, child VCS commands, SSH/HTTPS network connections, and provider repository or installation state |
En l’abast quan es pot accedir mitjançant la configuració de Weblate o el contingut del projecte. (documentat) (font: Localització contínua, Code-hosting integrations) |
Background tasks |
Celery queues for repository updates, project deletion, notifications, translation memory, translation, and backups |
Base de dades, magatzem de dades, sistema de fitxers, xarxa de sortida |
In scope as Weblate-controlled execution of user or operator actions. (documented) (source: Instruccions de configuració, API REST del Weblate) |
Project backup import/export |
Project level backups, API REST del Weblate project backup endpoints,
|
Uploaded ZIP archives, generated backup archives, filesystem restore, repository state |
In scope. (documented) (source: Còpia de seguretat i moviment de Weblate, API REST del Weblate, Ordres de gestió) |
Service backup |
BorgBackup configuration and |
Emmagatzematge de còpia de seguretat local o remot a través del sistema de fitxers o SSH |
En l’àmbit de la gestió per part de Weblate dels treballs de còpia de seguretat configurats; Borg mateix està fora de l’abast. (documentat) (font: Còpia de seguretat i moviment de Weblate, Ordres de gestió) |
Machine translation and outbound integrations |
Machine translation, avatars, status reporting, telemetry, error reporting, VCS hosts, GitHub App connections, CDN add-on, Fedora Messaging add-on, e-mail delivery (SMTP or AWS SES) |
Outbound HTTP(S), AMQP(S), provider APIs, logs |
In scope for Weblate’s enforcement of configured access and network restrictions. Provider behavior is out of scope. (documented) (source: Configuration, Code-hosting integrations, Complements) |
Complements |
Complements integrats i execució de complements configurats per l’administrador |
Varies by add-on; can mutate project or repository state or contact services |
Els complements integrats estan a l’abast quan estan activats. Els complements de tercers estan fora de l’abast, tret del permís i les portes d’instal·lació de Weblate. (mantenidor) |
Ordres de gestió |
Ordres weblate executades per un operador |
Base de dades, sistema de fitxers, VCS, emmagatzematge de còpia de seguretat |
En l’abast quan es processen dades de Weblate no fiables; l’intèrpret d’ordres de l’operador local és de confiança. (mantenidor) |
Proves, documents generats, captures de pantalla, accessoris de desenvolupament |
|
Fitxers només de desenvolupament i artefactes generats |
Fora de l’abast de les reclamacions de seguretat del producte. (mantenidor) |
Development environments are not supported production deployments and do not provide security isolation from a malicious checkout or local user. (maintainer)
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: Instruccions de configuració)
Els actors rellevants es divideixen per nivell de confiança: clients no autenticats, usuaris autenticats, revisors, gestors de projectes, administradors, testimonis d’API de l’àmbit del projecte, remitents de webhook, proveïdors externs de VCS, serveis externs configurats i operadors locals. (documentat) (font: Control d’accés, API REST del Weblate)
Weblate no està pensat per ser incrustat com a biblioteca de seguretat en procés, utilitzat com a sandbox per a codi no fiable o exposat sense els controls de desplegament documentats per a l’ús de producció. (mantenidor)
Fora de l’abast¶
Els següents no són objectius explícits per a aquest model:
Un compte de sistema operatiu compromès, temps d’execució del contenidor, servidor de bases de dades, magatzem de dades, servidor intermediari invers o shell de l’administrador. Weblate s’executa dins d’aquests límits i no pretén protegir-se d’un host ja compromès. (mantenidor)
Un administrador de llocs web de Weblate maliciós o un operador local amb accés sense restriccions al servidor. Aquest actor pot canviar la configuració, les credencials, les dades o el codi. (mantenidor)
Vulnerabilitats en dependències de tercers com a projectes independents. Les vulnerabilitats generals de Django, Django REST, Python Social Auth, BorgBackup, VCS, bases de dades i proveïdors s’informen aigües amunt, tret que el problema estigui en l’ús de Weblate. (documentat) (font: Vulnerabilitat i gestió d’incidències)
Creeu i allibereu la higiene, inclosa la fixació d’accions, la signatura d’artefactes, la frescor de la dependència i la protecció de les branques del dipòsit. Aquests afecten les operacions del projecte, però no són afirmacions del model d’amenaça sobre el comportament del temps d’execució de Weblate. (mantenidor)
Seguretat general de proveïdors externs de VCS, proveïdors d’identitat, servidors de correu, serveis de traducció automàtica, serveis d’avatar, emmagatzematge CDN o emmagatzematge de còpia de seguretat. Weblate només modela les seves interaccions configurades amb ells. (mantenidor)
Opcions de cadena de subministrament de traducció de les organitzacions d’usuaris fora de Weblate. Els riscos dels traductors subcontractats o col·lectius es descriuen per separat a Localization Threat Model. (documentat) (font: Localization Threat Model)
Codi de complement de tercers, codi de personalització local, accessoris de desenvolupament, sortida de documentació generada, codi només de prova i dades de demostració o exemple. (mantenidor)
Límits de confiança i flux de dades¶
El límit de confiança principal de Weblate és la superfície de l’aplicació orientada a la xarxa: les vistes del navegador, els punts finals de l’API, els punts finals del webhook i els punts finals de càrrega accepten dades d’actors menys fiables i les tradueixen a files de base de dades, estat del dipòsit local, tasques en segon pla, sol·licituds de sortida i interfície d’usuari representada. (mantenidor)
Boundary |
Trust transition |
|---|---|
Client browser/API client to Weblate |
Les sol·licituds no fiables o autenticades es converteixen en accions d’aplicació amb permisos comprovats. (documentat) (font: API REST del Weblate, Control d’accés) |
Weblate to public CDN storage and clients |
Enabling CDN publication deliberately moves selected translations and public build identifiers and resource mappings outside project access controls, including translations from private components. Removing published origin files cannot revoke cached or downloaded copies. Preparation files in the CDN filesystem remain non-public only when the origin excludes the reserved staging directory as required by Localization CDN. (documented) (source: Kotlin SDK CDN) |
Weblate request process to repository Celery worker |
Permission-checked browser and API repository actions become queued work carrying the initiating user and affected repository scope. The worker reacquires the datastore reservation and rechecks the user’s current VCS permission on the current repository owner before mutation. The broker, datastore, and workers are trusted parts of the same Weblate instance. (maintainer) |
Webhook sender to Weblate |
Public forge notifications can schedule repository synchronization
where hooks are enabled, matching components by exact repository URL
rather than host or path suffix fallback. Generic hook responses expose
match counts and, for updated components, project/component slugs and API
URLs, including for private projects and restricted components.
Components managed through an authenticated integration are excluded
from generic matching and diagnostics; currently this applies to the
GitHub App VCS backend. Registered GitHub App webhooks authenticate with
a per-app URL token and GitHub signature verification. Opt-in legacy
GitHub App deliveries to the generic GitHub webhook URL authenticate
with a separately configured secret. (documented) (source: Punts d’inserció de notificacions,
Activa els punts d’inserció, Matching webhook targets,
App webhook URL,
|
Weblate to database/datastore |
L’estat de l’aplicació comprovat amb els permisos es converteix en dades persistents i treball en cua. (documentat) (font: Instruccions de configuració) |
Weblate to local VCS repositories |
Configuració del projecte i sistema de fitxers de la unitat de contingut del dipòsit i operacions VCS. (documentat) (font: Localització contínua) |
Weblate to external services |
Els URL configurats, les credencials i la configuració del proveïdor impulsen les connexions de xarxa de sortida. (documentat) (font: Code-hosting integrations, Configuration) |
Project backup archives and Weblate filesystem |
Uploaded ZIP members and metadata become restored project state; generated project backups are written to and read from local backup storage. (documented) (source: Còpia de seguretat i moviment de Weblate, API REST del Weblate, Project level backups) |
Reachability preconditions:
Una troballa d’interfície d’usuari web o d’API només es troba al model quan un client no autenticat, un usuari autenticat o un testimoni d’abast del projecte es pot accedir mitjançant rutes, formularis o punts finals de l’API documentats. (mantenidor)
Una troballa d’autorització només es troba en el model quan travessa un permís documentat, un equip, un projecte, un component, un idioma, un glossari, un testimoni o un límit de tot el lloc. (documentat) (font: Control d’accés)
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 beyond the documented matching diagnostics. (documented) (source: Punts d’inserció de notificacions, Activa els punts d’inserció, Matching webhook targets)
Una troballa de VCS només es troba en el model quan les dades de repositoris controlades per l’atacant o menys fiables, els noms de branques, els URL, els noms de fitxers, les metadades de confirmació o la configuració del projecte poden influir en les operacions de VCS de Weblate. (mantenidor)
Una troballa d’importació de còpia de seguretat només es troba al model quan es pot accedir des d’una còpia de seguretat del projecte carregada mitjançant Weblate o subministrada a
import_projectbackup. (documentat) (font: Project level backups,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: API REST del Weblate, Project level backups, Control d’accés)
Una troballa d’una tasca de fons només es troba al model quan la tasca es pot posar a la cua des d’una superfície de Weblate dins de l’abast o des d’una ruta de manteniment programada de Weblate. (documentat) (font: Instruccions de configuració)
Una troballa d’ordres de gestió només es troba al model quan l’ordre processa dades de Weblate no fiables; L’accés arbitrari del shell local no és una capacitat d’atacant. (mantenidor)
Environment assumptions¶
Weblate assumeix un temps d’execució de Python i Django compatible, una base de dades correctament configurada, un magatzem de dades, un directori de dades que es pot escriure i treballadors en execució per a funcions que requereixen un processament en segon pla. (documentat) (font: Instruccions de configuració)
S’espera que els desplegaments de producció configuren el servidor web extern o el servidor intermediari invers de manera coherent amb la configuració de HTTPS, capçalera de l’amfitrió, mida del cos i capçalera del servidor intermediari de Weblate. (documentat) (font: Instruccions de configuració, ENABLE_HTTPS, ALLOWED_HOSTS)
Se suposa que la base de dades, el magatzem de dades i els ports de servei intern no estan directament exposats a xarxes no fiables. (mantenidor)
Se suposa que els permisos del sistema de fitxers impedeixen que usuaris locals no relacionats modifiquin el directori de dades, la configuració, els dipòsits VCS, els embolcalls SSH generats, les còpies de seguretat i el material secret de Weblate. (documentat) (font: Còpia de seguretat i moviment de Weblate, Instruccions de configuració)
Els treballadors d’api són components de confiança de la mateixa instància de Weblate. Un treballador maliciós o compromès és equivalent a un procés d’aplicació compromès. (mantenidor)
Worker process and queue separation do not create security isolation; workers retain the same trusted application authority. (maintainer)
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: Code-hosting integrations,
SSH_EXTRA_ARGS)
What Weblate does to its host:
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: Configuration, Code-hosting integrations, Còpia de seguretat i moviment de Weblate)
Executa VCS i ordres d’ajuda relacionades amb la còpia de seguretat com a part dels fluxos de treball del dipòsit i de la còpia de seguretat. (documentat) (font: Localització contínua, Còpia de seguretat i moviment de Weblate)
Escriu al directori de dades configurat, emmagatzematge del dipòsit, suports/fonts de lletra, abocaments de còpia de seguretat, registres i ubicacions de memòria cau. (documentat) (font: Configuration, Còpia de seguretat i moviment de Weblate)
It sends e-mail and notifications through configured providers. Operator-controlled service endpoints and credentials are trusted infrastructure, outside user-configurable private-target restrictions. (documented) (source: Configuration, Instal·lació mitjançant Docker)
No pretén estar lliure d’efectes secundaris a tot el procés, com ara el registre, les escriptures de memòria cau, l’execució de subprocés o l’accés a la xarxa de sortida. (mantenidor)
Build-time and configuration variants¶
Knob |
Default or documented posture |
Effect on the model |
Maintainer stance |
|---|---|---|---|
Els ganxos remots anònims es poden configurar i també s’han d’habilitar per a un projecte. (documentat) |
Exposes webhook endpoints as a public scheduling interface. Abuse resistance depends on deployment controls. (documented) (source: Punts d’inserció de notificacions, Activa els punts d’inserció) |
Els desplegaments de producció que exposen els ganxos utilitzen límits de velocitat de proxy inversa, límits de mida corporal, monitorització i exposició pública mínima. (mantenidor) |
|
|
HTTPS afecta les galetes segures, les redireccions, HSTS, WebAuthn i els URL generats. (documentat) (font: |
La desactivació o la configuració incorrecta d’HTTPS elimina les proteccions de transport i de galetes en què es basa Weblate per a la seguretat del navegador. (documentat) (font: |
La postura de producció documentada és HTTPS amb les capçaleres de proxy correctes. (documentat) |
Configura els noms d’amfitrió HTTP acceptats. (documentat) (font: |
L’acceptació àmplia de l’amfitrió pot debilitar les proteccions basades en la capçalera de l’amfitrió i els supòsits de generació d’URL. (mantenidor) |
Els desplegaments de producció restringeixen això als noms d’amfitrió d’instància. (mantenidor) |
|
|
Els límits de tarifa es poden configurar. (documentat) (font: API REST del Weblate, Configuration) |
Les reclamacions de disponibilitat suposen límits de tarifa adequats a la mida i l’exposició del desplegament. (mantenidor) |
Operators can override or exempt users and IP networks, including
anonymous clients. IP exemptions rely on trusted proxy configuration;
they do not grant authentication or permissions. (documented)
(source: Limitació de velocitat de l’API, |
|
Content Security Policy sources are configurable. (documented) (source: Configuration) The default script policy permits inline execution only on explicitly scoped compatibility paths. (maintainer) |
Ampliar les fonts pot reduir la contenció del costat del navegador per a contingut XSS o de tercers. (mantenidor) |
Els desplegaments que afegeixen fonts de tercers accepten aquesta confiança ampliada del navegador. (mantenidor) |
|
Els valors predeterminats enllaçaven la mida de la càrrega i la importació de la còpia de seguretat del projecte, el nombre de membres i les relacions de compressió sospitoses. (documentat) (font: Configuration) |
Augmentar o desactivar aquests límits amplia l’exposició dels recursos en temps de restauració. (documentat) (font: Configuration) |
Els valors per defecte documentats anteriorment formen part de les garanties de recursos d’importació de còpia de seguretat. (documentat) |
Restriccions d’objectius privats i llistes de permís per a URL de sortida |
User-configurable outbound URL surfaces documented with private-target
restriction settings reject internal or non-public targets by default.
(documented)
(source: |
Allowlist settings and privileged configuration can intentionally expand
reachability. A non-empty |
El rebuig d’objectiu privat predeterminat és una propietat de seguretat a nivell d’aplicació per a les superfícies d’URL configurables per l’usuari documentades. (mantenidor) |
Allows custom SSH options. (documented) (source: |
Weakening SSH algorithms or host verification changes VCS transport assumptions. Routing options can override protected repository address pinning. (maintainer) |
Els operadors posseeixen l’impacte de seguretat de les opcions SSH personalitzades. (mantenidor) |
|
Complements de tercers i personalització local |
Els administradors poden ampliar el comportament. (documentat) (font: Complements) |
El codi personalitzat pot afegir nous límits de confiança i propietats de seguretat fora d’aquest model. (mantenidor) |
El codi de tercers es modela per separat. (mantenidor) |
Declarative automation expressions |
Add-on managers configure ordered Weblate operations and CEL conditions. (documented) (source: Workflow definition) |
Expressions receive JSON context rather than application objects. A resource-limited helper process parses and evaluates CEL without custom function bindings; workflows cannot supply Python code. This is a distinct expression-evaluation boundary, not a sandbox for arbitrary Python. On macOS, the helper enforces CPU and wall-time limits but no memory cap, so expressions can exhaust memory within those time limits. (maintainer) |
Existing add-on management authority governs mutations. Operation scopes, validation, and automation-origin suppression constrain declarative runs; custom Python add-ons retain their separate trust model. (maintainer) |
Hipòtesis d’entrada¶
Surface |
Input |
Controlable per l’atacant? |
La persona que truca o l’operador ha de fer complir |
|---|---|---|---|
Formularis del navegador i API REST |
Cossos de sol·licitud, cadenes de consulta, fitxers penjats, capçaleres, galetes |
Sí, dins de l’estat d’autenticació de l’actor. (documentat) (font: API REST del Weblate) |
HTTPS, configuració correcta d’amfitrió/proxy, límits de velocitat i assignació de permisos. (documentat) (font: Instruccions de configuració, Control d’accés) |
Authentication endpoints |
Contrasenyes, dades de WebAuthn, devolucions de trucada SSO, testimonis de restabliment |
Sí. (documentat) (font: Autenticació) |
Configuració correcta del proveïdor d’identitat i HTTPS. (documentat) (font: Autenticació, |
Project-scoped tokens |
API requests authenticated by token |
Sí, per qui tingui la fitxa. (documentat) (font: API REST del Weblate) |
Emmagatzematge de testimonis, rotació i pertinença a l’equip amb menys privilegis. (mantenidor) |
Translation content |
Cadenas d’origen, traduccions, comentaris, suggeriments, entrades de glossari |
Sí, d’usuaris amb permisos rellevants o repositoris importats. (documentat) (font: Traduir amb Weblate, Control d’accés) |
Review workflows and permission assignment for project-specific content integrity. (documented) (source: Fluxos de treball de traducció, Control d’accés) |
Webhook endpoints |
Capçaleres, tipus d’esdeveniment, cos, repositori i metadades de branques |
Yes, where endpoint is reachable. (documented) (source: Punts d’inserció de notificacions) |
Habilitació de ganxos només quan sigui necessari, límits de sol·licitud i supervisió. (mantenidor) |
GitHub App lifecycle |
Registration and installation callbacks, GitHub OAuth code, signed Weblate state, installation ID, account metadata, component migration selections, and connection-removal requests |
Yes, from authenticated Weblate users and GitHub redirect query strings. (documented) (source: Registering the GitHub App from Weblate, Migrating existing components) |
Registering App credentials requires the site-wide
|
Repository configuration |
Repository URLs, branches, push URLs, credentials, Gerrit review push options, add-on settings, and Version control parameters controlling force pushes and pull-request behavior |
Trusted to users with corresponding management permissions. (documented) (source: Control d’accés, Localització contínua) The automatic translation add-on can create approved strings when the target language’s effective review settings allow it. Configuring this behavior uses add-on management permissions rather than the configuring user’s review permission. (documented) (source: Complements) |
Assigna permisos de gestió de projectes i VCS només als usuaris de confiança. (documentat) (font: Control d’accés) |
External repository content |
Fitxers de traducció, camins, noms de branques, metadades de commit |
Sí, si el repositori aigües amunt està controlat per un altre actor. (mantenidor) |
Confieu en el repositori amunt configurat o reviseu els canvis importats. (mantenidor) |
Project backup import |
Membres de l’arxiu ZIP, metadades, fitxers de traducció, estat del dipòsit |
Sí, per a qui pugui carregar o proporcionar la còpia de seguretat. (documentat) (font: Project level backups) |
Mantingueu els límits d’importació en els valors adequats per a la instància. (documentat) (font: Configuration) |
Project backup export |
Backup creation requests and requested backup file names |
Yes, for users or project-scoped tokens with project edit permission. (documented) (source: API REST del Weblate, Project level backups, Control d’accés) |
Grant project edit permission only to trusted project administrators. (documented) (source: Control d’accés) |
Machine translation and external service configuration |
URL del proveïdor, credencials, model o configuració del servei |
Confiable per als administradors o usuaris amb permisos de configuració concedits. (documentat) (font: Suggeriments automàtics, Control d’accés) |
Tractar els proveïdors configurats com a destinataris de les dades que se’ls envia; el contingut enviat varia segons el proveïdor i la funció activada. (mantenidor) |
Ordres de gestió |
Arguments de línia d’ordres i fitxers subministrats per l’operador local |
Entrada local de confiança tret que es processi dades de Weblate o còpies de seguretat del projecte. (mantenidor) |
Restringeix l’accés de l’intèrpret d’ordres als operadors de confiança. (mantenidor) |
Deployment configuration |
Environment variables, container arguments, mounted configuration, image selection, and workload or orchestration manifests |
Trusted local-operator input. Systems that delegate selected deployment values to less-trusted users introduce an external trust boundary; Weblate does not treat those values as untrusted application input. (maintainer) |
Restrict deployment access to trusted operators and validate delegated values before they reach Weblate. (maintainer) |
Supòsits de mida i taxa:
Weblate es basa en els límits de càrrega d’aplicacions i de servidor intermediari invers per a sol·licituds HTTP grans. (documentat) (font:
PROJECT_BACKUP_UPLOAD_MAX_SIZE)Les importacions de còpies de seguretat del projecte estan limitades pel nombre de membres, la mida agregada sense comprimir, la mida de l’entrada comprimida, la mida mínima de la relació i la configuració de la relació de compressió. (documentat) (font: Configuration)
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: Project level backups)
S’espera que l’API i les accions web seleccionades estiguin protegides pels límits de velocitat configurats. (documentat) (font: API REST del Weblate, Configuration)
La mida del dipòsit, el nombre de projectes, el nombre de components i la capacitat del treballador són preocupacions de mida del desplegament, tret que una única entrada de l’àmbit d’aplicació passi per alt els límits o els permisos documentats. (mantenidor)
Model adversari¶
Actor |
Capacitats a l’abast |
Capacitats fora de l’àmbit |
|---|---|---|
Unauthenticated internet client |
Envieu sol·licituds HTTP(S) a pàgines públiques, registre, inici de sessió, API i punts finals de webhook accessibles. (documentat) (font: API REST del Weblate) |
Llegeix la memòria del servidor, evita els controls del servidor intermediari invers o accedeix directament als serveis interns. (mantenidor) |
Authenticated user |
Realitzeu accions permeses pels equips, els permisos i el flux de treball assignats. (documentat) (font: Control d’accés) |
Actua fora dels permisos assignats sense explotar un error de Weblate. (documentat) (font: Control d’accés) |
Revisor o gestor de projectes |
Feu exercici dels permisos delegats de projecte, component, idioma, revisió, VCS, memòria de traducció, captura de pantalla o gestió d’accés. (documentat) (font: Control d’accés) |
Converteix-te en administrador del lloc, tret que se’t concedeixi aquesta funció o exploti una fallada de Weblate. (mantenidor) |
Titular del testimoni d’API de l’àmbit del projecte |
Use API permissions assigned to the token’s team memberships, including project backup creation and download where project edit permission is granted. (documented) (source: API REST del Weblate, Control d’accés, Project level backups) |
Accediu a projectes, components o funcions de tot el lloc fora del seu abast. (documentat) (font: Control d’accés) |
Webhook sender |
Send forged, replayed, malformed, or high-volume webhook requests to enabled hook endpoints and observe documented matching diagnostics. (documented) (source: Punts d’inserció de notificacions, Matching webhook targets) |
Obteniu una identitat autenticada per falsificació quan Weblate no la verifiqui. (mantenidor) |
VCS extern o proveïdor de serveis |
Retorna dades del repositori, respostes de l’API, redireccions o errors segons la integració configurada. (documentat) (font: Code-hosting integrations) |
Comprometre l’amfitrió de Weblate excepte mitjançant el comportament de dades o protocols dels processos de Weblate. (mantenidor) |
Translator or localization contributor |
Envieu contingut de traducció que les aplicacions posteriors poden consumir. (documentat) (font: Localization Threat Model) |
Controleu la política d’escapament, representació o revisió d’aplicacions posteriors fora de Weblate. (documentat) (font: Localization Threat Model) |
Local operator |
Executeu ordres de gestió, canvieu la configuració i accediu a còpies de seguretat. (documentat) (font: Ordres de gestió, Còpia de seguretat i moviment de Weblate) |
Els operadors locals maliciosos són de confiança per a aquest model. (mantenidor) |
L’atacant modelat intenta passar per alt l’autorització, modificar les dades de traducció o del repositori sense permís, revelar dades privades del projecte o de l’usuari, falsificar o abusar de la sincronització del dipòsit, activar sol·licituds de sortida no segures, executar ordres mitjançant fluxos de treball controlats per Weblate o esgotar els recursos limitats de l’aplicació. (mantenidor)
Security properties Weblate provides¶
Property |
Conditions |
Símptoma de violació |
Severity tier |
|---|---|---|---|
Web authorization separates site, project, component, language, glossary, VCS, translation memory, screenshot, review, and access management permissions. (documented) (source: Control d’accés, Autenticació, Memòria de traducció) |
Permission assignments match the intended trust relationship.
Team-level enforced 2FA is satisfied by human users before
team-derived permissions apply. Pending authenticator app registrations
do not satisfy 2FA requirements. Registration requires a valid,
single-use TOTP code and cannot be completed more than once, including
under concurrent submissions. (documented) (source: Autenticació de doble factor)
Component administrators are trusted to
configure operations that can affect repository contents, for example by
selecting files through component settings, configuring add-ons, or
enabling force pushes and pull-request behavior through Version control parameters.
Add-ons are persistent administrative configuration: project and category
add-ons operate on compatible restricted descendants, while component
add-ons can consume cross-component inputs documented by the add-on.
Their service identities and configured authority do not depend on the
configuring user’s later account or permission state. Project backups
similarly contain every component in the project, including restricted
components. Consequently, component restrictions protect ordinary direct
access but are not an isolation boundary against these documented
administrative capabilities.
Users with management rights for a workspace are trusted to connect and
remove its GitHub App installations; removing the final workspace
connection can uninstall the App from GitHub. GitHub App component
migration separately requires edit permission for every selected
component.
Linking a repository extends this trust to administrators of every
linked component for the complete shared checkout. Permissions for
explicit VCS actions are checked on the repository-owning component.
Linking accepts this owner’s authority over the complete shared checkout;
permissions on downstream linked components neither grant nor veto
explicit VCS authority. Project-wide
VCS actions omit repositories where this permission check fails; they do
not partially operate on an individual shared checkout. Explicit VCS
actions queued from the browser or API retain the initiating user,
serialize access to the affected repositories, and recheck that user’s
permission on the current repository owner in the worker
before mutation. Weblate’s normal background commit and push of
authorized translation changes does not require the editor to have
these VCS permissions. The |
L’usuari o el testimoni poden llegir o mutar dades fora de l’àmbit assignat. |
La seguretat és crítica quan s’exposen dades privades o mutacions privilegiades. |
Els testimonis d’API de l’àmbit del projecte estan limitats pels permisos assignats al projecte/equip. (documentat) (font: API REST del Weblate, Control d’accés) |
El testimoni el crea i emmagatzema un actor de confiança. |
El testimoni pot actuar fora de l’àmbit del projecte o de l’equip. |
Security-critical. |
Authentication and session controls protect browser sessions when HTTPS
and proxy settings are correct. Pending second-factor sessions are bound
to the current password authentication state, and repeated rejected
second-factor submissions lock password sign-in according to
|
La configuració HTTPS de producció i les galetes segures estan habilitades. |
Session fixation, credential bypass, cross-user session confusion, or a pending password sign-in remaining usable after a password change or account lock. |
Security-critical. |
S’espera que el contingut proporcionat per l’usuari representat per Weblate no executi script als navegadors d’altres usuaris. (mantenidor) |
El contingut es mostra mitjançant les plantilles d’interfície d’usuari de Weblate i l’escapament estàndard. |
XSS emmagatzemat o reflectit a l’origen del Weblate. |
Security-critical. |
Les entrades de dipòsit, branca, camí i VCS processades per Weblate no s’han de convertir en l’execució d’ordres de l’intèrpret d’ordres. (mantenidor) |
VCS operations are invoked through Weblate-supported repository workflows and configured credentials. Project backup restores allow only non-executable Git, git-svn, and Mercurial repository state, and rebuild repository-local configuration from validated component settings. Weblate does not populate Git submodules (see Git submodules). |
Injecció d’ordres o execució de codi arbitrari com a usuari de Weblate. |
Security-critical. |
Private project data other than documented generic webhook matching diagnostics, metadata published through Public sharing, and translations, build identifiers, and resource mappings explicitly published through CDN add-ons, user data, credentials, tokens, SSH keys, and 2FA secrets are not disclosed to actors lacking permission. (documented) (source: Control d’accés, Compliment de la normativa de privadesa, Integració del control de versions) |
Host, database, and storage permissions are intact. Generic webhook responses expose only the match counts, project/component slugs, and API URLs documented in Matching webhook targets. Public sharing permits unauthenticated access to engage pages and rendered status widgets, exposing project and component names, including restricted components, translation statistics, languages, and progress. It does not grant access to project content or APIs. Repository content deliberately shared through linked components follows the linked repository trust boundary. Project repository permission diagnostics identify accessible repository owners where an operation requires permission, but do not expose inaccessible component identities or blocked repository content or status. Custom add-ons list only non-sensitive fields as public configuration; unlisted values are redacted from public change history. Installing the Kotlin SDK CDN add-on explicitly publishes translations, application package names and version codes, and the names and submitted IDs of published resources from that component to unauthenticated CDN clients, including for private projects. CDN storage and cached client copies are outside project access controls; removing origin files cannot revoke previously downloaded copies. |
Cross-project data leak not covered by the documented generic webhook diagnostics, public-sharing metadata, explicit CDN publication, or linked-repository trust boundary, credential exposure, or unauthorized export. |
Security-critical. |
La importació de còpia de seguretat rebutja els arxius que superen els llindars de compressió sospitosos de càrrega documentada, membre, mida agregada i. (documentat) (font: Configuration, Project level backups) |
Es mantenen configurats els límits predeterminats o més estrictes. |
S’accepten arxius sobredimensionats o molt amplificats més enllà dels llindars configurats. |
Seguretat crítica per a DoS d’una sol·licitud; en cas contrari, error de disponibilitat. |
Les superfícies d’URL de sortida documentades configurables per l’usuari rebutgen objectius interns o no públics de manera predeterminada. (documentat) (font: |
Default private-target checks are enabled and no trusted allowlist exemption applies. Direct protected HTTP requests and Git HTTPS and SSH operations retain address binding, VCS restrictions remain enabled, and VCS backends without binding use only explicitly trusted hosts. Configured per-protocol HTTP proxies remain trusted routing infrastructure. |
A user-configurable screenshot URL, remote HTML URL, project website or repository browser URL, outbound webhook URL, or VCS URL reaches an internal or non-public target despite default controls. |
És crític per a la seguretat quan exposa serveis interns o metadades. |
Weblate records security-relevant account, permission, billing lifecycle,
authenticated web-action rate-limit lockouts, and project or component
setting changes in audit logs or history. Account-removal audit entries
retain the former e-mail address until |
Logging is configured, storage is available, and
|
Missing audit trail for an action Weblate claims to log, or personal data retained beyond the configured audit-log expiry. |
Security-critical when it blocks investigation of privileged changes or discloses retained personal data; privacy-impacting when data exceeds the configured retention; correctness-only for minor event gaps. |
Self-service trial creation grants only the designated commercial trial plan or the Libre setup plan. (maintainer) |
The deployment offers self-service hosting trials. |
An authenticated user can select another public, private, or internal billing plan when creating a trial. |
Security-critical when this bypasses paid service limits. |
L’API i les accions web amb tarifes limitats imposen els límits de velocitat configurats. (documentat) (font: API REST del Weblate, Configuration) |
La limitació de velocitat està activada i recolzada per un magatzem de dades en funcionament. |
Les sol·licituds que superen els llindars configurats es continuen processant. |
Enduriment de la disponibilitat/seguretat en funció de la sensibilitat del punt final. |
Built-in translation quality checks must not permit user-controlled content within configured size limits to monopolize synchronous request workers through disproportionate resource consumption. (maintainer) |
The check is enabled and runs during a supported browser or API translation write. |
A single accepted translation causes CPU or memory consumption disproportionate to its size and stalls a request worker. |
Seguretat crítica per a DoS d’una sol·licitud; en cas contrari, error de disponibilitat. |
Generic webhooks schedule repository updates only for eligible components whose repository URL exactly matches a repository URL from the payload, including documented URL variants. Components managed through an authenticated integration are excluded from generic matching and diagnostics. Generic responses disclose only the documented matching diagnostics for eligible components. (documented) (source: Matching webhook targets) |
Hooks are enabled and the delivery reaches an in-scope hook endpoint. |
A delivery updates a component whose repository URL does not exactly match the payload, including through host or path suffix fallback, or a generic delivery updates or discloses a component managed through an authenticated integration, or a response discloses component information beyond the documented fields. |
Security-critical when it causes unauthorized repository synchronization across unrelated components; otherwise correctness or hardening. |
Weblate does not intentionally expose database, datastore, backup storage, or raw internal storage directly through the public web interface; exported VCS repositories are intentionally exposed by Exportador de Git when that optional module is enabled; authorized project backup downloads are intentionally exposed through documented project backup routes. (documented) (source: API REST del Weblate, Project level backups) (maintainer) |
El desplegament no serveix les rutes d’emmagatzematge intern com a fitxers estàtics, tret de les funcions d’exportació documentades. |
La sol·licitud pública recupera dades d’emmagatzematge intern en brut, de configuració o de repositori no exportades. |
Security-critical. |
Els llindars de recursos d’aquest model són els valors predeterminats de configuració documentats on existeixen, especialment els límits d’importació de còpia de seguretat i els límits de velocitat. Per a la mida del dipòsit, el nombre de projectes, el nombre de components i el volum de traducció, Weblate no reclama un sostre de recursos universal fix independent de la capacitat de desplegament. (mantenidor)
Component discovery bounds repository traversal and file-mask matching work even when repository content controls the masks; see component discovery limits. (maintainer)
Propietats de seguretat que Weblate no ofereix¶
Weblate no autentica cada lliurament de webhook criptogràficament per a totes les integracions de forja compatibles. Els punts finals d’enganxament estan orientats a la compatibilitat i s’endureix el desplegament en lloc d’autenticar-se de manera uniforme. Els informes que mostren només activacions no autenticades dins d’efectes modelats són ENDURITZACIÓ VÀLIDA en lloc de PER DISSENY. (mantenidor)
Weblate does not make an unauthenticated webhook equivalent to a trusted forge identity. Hook processing can trigger update workflows, and generic responses can confirm repository registration and reveal match counts, project/component slugs, and API URLs, including for private projects and restricted components. Components managed through an authenticated integration are excluded from this generic behavior. Attribution and authenticity are weaker than for an authenticated user or token. (maintainer)
User-requested background work is authorized when Weblate accepts and queues the request. Background tasks do not always verify the initiating user’s permissions again when they execute. Later changes to the user’s account, permissions, or team memberships therefore do not reliably prevent already-authorized work from completing. (maintainer)
Weblate no és una caixa de proves per a administradors maliciosos, operadors locals maliciosos, complements de tercers, codi de desplegament personalitzat, clients VCS o eines de còpia de seguretat. (mantenidor)
Weblate no garanteix que el contingut de la traducció sigui segur quan es copia a un producte posterior sense que aquest producte s’escapa, valida o revisi. Les comprovacions de traducció i els fluxos de treball de revisió ajuden a gestionar la qualitat i el risc de la localització; no són un límit de seguretat de l’aplicació completa. (documentat) (font: Localization Threat Model, Comprovacions i correccions)
Falsos amics:
Els permisos de weblate són autorització d’aplicacions, no un sandbox de l’amfitrió. Un usuari amb permisos de gestió de projectes o VCS pot configurar integracions intencionadament dins del poder d’aquest rol. (mantenidor)
La concordança de projectes webhook i l’anàlisi d’esdeveniments no són una prova que el remitent sigui la forja legítima quan la integració no autentica el lliurament. (mantenidor)
Les comprovacions de traducció detecten problemes comuns de qualitat i format; no són una garantia que les cadenes traduïdes siguin segures per a tots els renderitzadors aigües avall. (documentat) (font: Comprovacions i correccions, Localization Threat Model)
El xifratge BorgBackup protegeix els arxius de còpia de seguretat segons el disseny de Borg; Weblate no afegeix una garantia criptogràfica independent per als interns de Borg. (documentat) (font: Còpia de seguretat i moviment de Weblate)
Els límits de velocitat redueixen l’abús dels punts finals configurats; no són una garantia de disponibilitat sota atacs volumètrics de xarxa. (mantenidor)
Classes d’atac conegudes deixades parcialment o totalment a sistemes de desplegament o aigües avall:
La pesca de pesca i la reutilització de credencials es mitiguen amb la política d’autenticació i la 2FA, però Weblate no pot impedir que els usuaris revelin les credencials fora del servei. (mantenidor)
Les traduccions malicioses poden convertir-se en problemes XSS, format-cadena, ordres o polítiques en aplicacions posteriors que les fan insegures. (documentat) (font: Localization Threat Model)
Les superfícies d’URL de sortida configurables per l’usuari amb restriccions documentades d’objectius privats rebutgen objectius interns o no públics de manera predeterminada; les llistes de privilegis, els servidors intermediaris i la configuració controlada per l’administrador poden ampliar intencionadament l’accessibilitat. (mantenidor)
Els grans historials de dipòsits, l’escala del projecte i el volum de tasques en segon pla requereixen una mida de desplegament i límits operatius més enllà de la validació d’una entrada única de Weblate. (mantenidor)
Responsabilitats aigües avall¶
Els operadors han de desplegar Weblate darrere d’HTTPS de nivell de producció amb capçaleres de servidor intermediari correctes, noms d’amfitrió, límits de mida de sol·licitud i comportament de galetes segures. (documentat) (font: Instruccions de configuració, ENABLE_HTTPS, ALLOWED_HOSTS)
Operators enabling forwarded client-IP handling must trust only reverse proxies
under their control and prevent untrusted clients from bypassing those proxies
to reach Weblate directly. (documented) (source:
WEBLATE_TRUSTED_PROXY_ADDRESSES, Corrent darrere del proxy invers)
Els operadors han d’assignar equips, rols, testimonis de l’àmbit del projecte, credencials VCS i permisos de gestió de projectes d’acord amb el mínim privilegi de la seva organització. (documentat) (font: Control d’accés, API REST del Weblate)
Operators exposing Punts d’inserció de notificacions must enable them only where needed and provide deployment controls such as reverse-proxy rate limits, body-size limits, monitoring, and optional source restrictions. They must accept the documented identifier disclosure or use authenticated integrations where available. (maintainer)
Els operadors han de tractar les llistes d’objectius privats, els servidors intermediaris i la configuració d’integració de sortida privilegiada com una expansió intencionada dels límits d’accessibilitat de la xarxa predeterminats de Weblate. (mantenidor)
Els operadors han de mantenir els límits d’importació de còpia de seguretat, els límits de velocitat de l’API i els límits de velocitat web en valors que coincideixin amb la capacitat i l’exposició de la instància. (documentat) (font: Configuration)
Els operadors han de protegir el directori de dades de Weblate, la configuració, les credencials de còpia de seguretat, les claus generades, la base de dades, el magatzem de dades i l’accés a l’intèrpret d’ordres local com a infraestructura de confiança. (documentat) (font: Còpia de seguretat i moviment de Weblate, Instruccions de configuració)
Els equips de producte aigües avall han de tractar les cadenes traduïdes com a contingut no fiable a les seves pròpies aplicacions tret que les hagin revisat, escapat i validat per separat per al renderitzador de destinació. (documentat) (font: Localization Threat Model)
Known misuse patterns¶
Exposing webhook endpoints broadly, enabling project hooks, and relying on webhook payloads as authenticated forge identity. This is unsafe because some supported hooks are compatibility-oriented and return matching diagnostics. Use deployment controls and prefer authenticated integrations where available. (maintainer)
Granting workspace, project, VCS, or access-management permissions to users who are trusted only as translators. This is unsafe because those permissions can affect code-hosting connections, repositories, credentials, or other users. Assign narrower roles. (documented) (source: Control d’accés, Code-hosting integrations)
Assigning site-wide permissions to roles intended for limited project or helpdesk delegation. Site-wide permissions apply across the instance and are not narrowed by the team’s project selection. In particular,
group.editpermits changing site-wide team scope and granting team members access to private projects the manager cannot access directly, whileuser.editpermits changing team memberships and superuser status for editable accounts, including the caller’s own account. Delegate permissions through project or workspace teams for limited scopes. (documented) (source: Control d’accés)Enviament de cadenes d’origen sensibles o contingut privat del client als proveïdors de traducció automàtica sense tractar el proveïdor com a destinatari de dades. Això no és segur perquè Weblate ha de transmetre contingut al servei configurat i el contingut enviat varia segons el proveïdor i la funció habilitat. Configureu els proveïdors segons la política de dades del projecte. (mantenidor)
Importació de còpies de seguretat del projecte des de fonts no fiables com a comoditat administrativa. Això no és segur perquè les còpies de seguretat porten metadades del projecte, contingut de traducció i estat del dipòsit. Manteniu els límits d’importació activats i importeu només les còpies de seguretat adequades per a la instància de destinació. (documentat) (font: Còpia de seguretat i moviment de Weblate)
Tractar les comprovacions de traducció de Weblate com una prova que les aplicacions posteriors no es poden atacar mitjançant cadenes traduïdes. Això no és segur perquè el renderitzador aigües avall defineix el context d’execució final. Revisa i escapa de traduccions a l’aplicació consumidora. (documentat) (font: Localization Threat Model)
No troballes conegudes¶
A report that a reachable webhook can be called without forge authentication and only triggers modeled update scheduling or returns the documented matching diagnostics is not
VALIDby itself. It is routed toVALID-HARDENINGunless it bypasses documented limits, matches unrelated repositories, leaks data beyond the documented fields, or causes effects beyond modeled scheduling. (maintainer)A report that a webhook does not update a component whose repository URL only shares a host or path suffix with the payload is not a vulnerability; Weblate matches only exact repository URLs and documented variants. (documented) (source: Matching webhook targets)
Un informe que un gestor de projecte pot canviar la configuració del dipòsit, les credencials de VCS o la configuració del projecte no és una vulnerabilitat quan l’actor té el permís documentat per a aquesta acció. (documentat) (font: Control d’accés)
A report containing private-project or restricted-component data is not a vulnerability when the user has effective
reports.viewpermission on the selected parent scope. That permission intentionally authorizes the complete report scope. (documented) (source: Informe de progrés de la traducció, Control d’accés)A report that a project administrator can obtain restricted descendants from a complete project backup, or that an add-on manager can configure a core add-on to process its documented restricted descendants or cross-component inputs, is not a vulnerability. These are persistent administrative capabilities and do not inherit the configuring user’s direct component visibility. (documented) (source: Complements, Project level backups, Control d’accés)
Un informe contra el comportament de complements de tercers no és una vulnerabilitat bàsica de Weblate tret que l’informe mostri que el permís o els límits d’instal·lació de Weblate s’han passat. (mantenidor)
Un informe que un operador local maliciós pot llegir la configuració, executar ordres de gestió o modificar fitxers no és model perquè els operadors locals són una infraestructura de confiança. (mantenidor)
A report that an operator-supplied environment variable, container argument, or mounted configuration can alter generated service configuration is not a vulnerability. These are trusted deployment inputs. A CI/CD, GitOps, PaaS, Helm, or other orchestration layer that lets less-trusted users set selected values owns that delegation boundary and must validate the values before constructing the Weblate workload. (maintainer)
Un informe que una aplicació posterior fa una traducció perillosa no és una vulnerabilitat de Weblate tret que Weblate mateix infringeixi una propietat reclamada mentre emmagatzema, comprova, revisa o mostra aquesta traducció. (documentat) (font: Localization Threat Model)
Condicions que canvien aquest model¶
Review this model when changes affect public interfaces, authentication or authorization, deployment assumptions, untrusted input processing, external integrations, execution capabilities, or security-relevant defaults. Review whether the existing scope, actors, trust boundaries, assumptions, security properties, and triage dispositions still cover the change. (maintainer)
Revise this model in the same change only when those elements change or leave a gap. This includes an unsupported component becoming supported product surface, a claimed security property changing, or an accepted vulnerability report that cannot be routed to an existing triage disposition. (maintainer)
Features that follow existing boundaries and security properties do not need individual entries. Keep endpoint schemas, permission details, configuration instructions, implementation mechanics, and numeric limits in the relevant feature or administration documentation. Link to that documentation when a detail is needed to explain a distinct boundary, exception, or triage outcome. A review that confirms existing coverage requires no threat-model edit. (maintainer)
Disposicions de triatge¶
Disposition |
Meaning |
Licensed by |
|---|---|---|
|
Infringeix una propietat que Weblate reclama, mitjançant un actor i una entrada dins l’àmbit. |
Propietats de seguretat que proporciona Weblate, Hipotecs d’entrada, Model adversari |
|
No s’infringeix cap propietat reclamada, però Weblate opta per reduir un risc d’ús indegut conegut, com ara l’activació de webhook de compatibilitat que es manté dins dels efectes modelats. |
Patrons d’ús indegut coneguts, Propietats de seguretat Weblate no ofereix |
|
Requereix el control de l’atacant de l’entrada que aquest model marca de confiança. |
|
|
Requereix una capacitat que aquest model exclou. |
|
|
Arriba a complements de tercers, documents generats, proves, personalització local o un altre component marcat fora de l’abast. |
|
|
Es manifesta només després de les opcions de desplegament que eliminen conscientment una propietat reclamada. |
|
|
Es refereix a una propietat que Weblate no proporciona explícitament. |
|
|
Coincideix amb un fals positiu recurrent documentat. |
|
|
No es pot dirigir netament a cap disposició anterior. |