Weblate fenyegetési modell¶
Scope: Core Weblate web application, its interactions with user browsers, backend components (web server, WSGI, database, datastore, Celery), and integration with external VCS.
Assumptions: Standard Weblate deployment with typical components (nginx/Apache, granian/Gunicorn/uWSGI, PostgreSQL, datastore, Celery) and user roles (unauthenticated user, authenticated user, reviewer, project manager, administrator, project-scoped API token).
Webhook endpoints for some VCS integrations are intentionally compatibility-oriented and can accept unauthenticated deliveries from supported forges. Weblate therefore treats webhook-triggered repository updates as a deployment-hardened interface rather than a cryptographically authenticated one by default.
Until native authenticated integrations are available for these platforms, webhook abuse resistance depends on compensating controls such as reverse-proxy rate limiting, request size limits, minimizing public exposure, and monitoring.
A rendszer leírása és hatóköre¶
A Weblate egy nyílt forráskódú, webalapú lokalizációs platform, amely a Django keretrendszerre épül. Szorosan integrálódik a Git-tárolókkal a fordítások kezelésére, és CI/CD-jellegű funkciókat kínál automatizáláshoz, hookokhoz és VCS-szinkronizációhoz.
Authorization in Weblate is not limited to instance-wide administrator versus regular user access. Permissions can be delegated per site, project, component, language, glossary, or other scope, including dedicated VCS, translation memory, screenshot, review, and project access management permissions. Project-scoped API tokens can also be granted team memberships and permissions similar to users.
Védendő elemek:
Bizalmasság: Fordítási szövegek, VCS-integrációhoz tartozó API-kulcsok/hitelesítési adatok, felhasználói hitelesítő adatok (jelszavak, 2FA-titkok), felhasználói személyes adatok (e-mail, név), munkamenet-tokenek, audit naplók, személyes projektek adatai.
Sértetlenség: Fordítási szövegek tartalma, VCS-tárolók sértetlensége, projekt- és összetevőbeállítások, felhasználói jogosultságok, auditnaplók.
Rendelkezésre állás: A Weblate webes felülete, VCS-integráció, adatbázis-elérés, háttérfeladatok feldolgozása.
Hitelesség / visszautasíthatatlanság: Fordítási véglegesítések előzményei, felhasználók hozzárendelése a fordításokhoz, adminisztratív műveletek auditnaplói.
Elvi adatáramlási diagram¶
Megbízási határok¶
Internet ↔ Webkiszolgáló: A nyilvános internetes forgalom kommunikál az első védelmi vonallal.
Webhook source ↔ Web server: External code hosting services or other callers invoking repository hooks, sometimes with unauthenticated endpoints enabled per project.
Webkiszolgáló ↔ Weblate alkalmazás: A fordított proxy / webszerver és az alkalmazáslogika közötti kommunikáció.
Weblate application ↔ Database: Application logic accessing persistent and cached data.
Weblate alkalmazás ↔ Naplózás: Az alkalmazás naplóbejegyzéseket hoz létre.
Weblate alkalmazás ↔ Belső VCS-tároló: Az alkalmazás a saját VCS-másolatával dolgozik.
Weblate alkalmazás ↔ Külső VCS-tároló: A Weblate külső kódtárolókhoz kapcsolódik.
Privileged user configuration ↔ Outbound network: Project and integration settings can cause Weblate to initiate connections to external VCS hosts or other services.
Imported backup archive ↔ Weblate application/filesystem: Backup restore processes attacker-controlled archive contents, metadata, and VCS state.
Unauthenticated caller ↔ Authenticated user/token: Different privilege levels for browser, API, and webhook access.
Authenticated user/token ↔ Project manager/reviewer/VCS manager: Delegated project- and component-scoped permissions create additional privilege boundaries inside the application.
Fenyegetések azonosítása¶
Komponens / interakció |
STRIDE fenyegetéskategória |
A fenyegetés leírása |
Lehetséges hatás |
|---|---|---|---|
Webkiszolgáló (nginx/Apache) |
DoS |
Szolgáltatásmegtagadási támadás: A támadó lekérésekkel árasztja el a webszervert, elérhetetlenné téve a Weblate-et. |
A fordítási felület elérhetetlenné válik. |
Információszivárgás |
Konfiguráció kiszivárgása: Hibásan beállított szerver érzékeny fájlokat (például konfigurációs fájlokat, privát kulcsokat) tesz elérhetővé. |
Hitelesítő adatok, belső architektúra kiszivárgása. |
|
Manipuláció |
Káros kérés befecskendezése: A támadó manipulált adatokat juttat a HTTP-fejlécekbe vagy a kérés törzsébe. |
Ha a háttérrendszer nem kezeli megfelelően, fennáll az SQL-injektálás, XSS vagy más típusú injektálás lehetősége. |
|
Webhook handling |
Megtévesztés |
Forged webhook delivery: An attacker submits a fake webhook payload to trigger repository updates or other automation, especially when unauthenticated hooks are enabled. |
Unauthorized repository synchronization, noisy task execution, or follow-on abuse of automation paths. |
Manipuláció |
Payload manipulation or replay: An attacker replays or modifies webhook payloads so Weblate processes repository states or branches different from the legitimate event. |
Unexpected updates, repository confusion, or misuse of privileged VCS credentials. |
|
DoS |
Hook flooding: An attacker sends excessive webhook requests or oversized payloads, overwhelming request handling or background workers. |
Weblate slowdown or unavailability. |
|
Információszivárgás |
Repository enumeration via webhook responses: An attacker probes webhook payloads and learns whether repositories, branches, or components exist based on response metadata. |
Disclosure of private project structure, enabled hooks, or component identifiers. |
|
Letagadhatóság |
Limited webhook attribution: Hook-triggered updates are recorded as coming from a service bot rather than a forge-authenticated principal. |
Reduced forensic confidence when investigating malicious or disputed hook activity. |
|
Weblate alkalmazás |
Megtévesztés |
Felhasználó megszemélyesítése: A támadó hozzáférést szerez egy jogos felhasználó munkamenetéhez (például munkamenet-eltérítés vagy ellopott hitelesítő adatok révén). |
Jogosulatlan fordítás, tárolóhozzáférés. |
(WSGI/Celery) |
Manipuláció |
Jogosulatlan fordításmódosítás: Rosszindulatú felhasználó vagy sérülékenység kihasználása révén a támadó módosítani tudja a fordításokat, projektbeállításokat vagy a VCS-integrációs beállításokat. |
Hibás fordítás, hibás build, távoli kódfuttatás VCS-hookokon keresztül. |
Manipuláció |
VCS-integráció manipulálása: A támadó manipulálja a Weblate és a verziókezelő rendszer (VCS) közötti kapcsolatot (például rosszindulatú parancsokat juttat célba egy speciálisan kialakított tároló URL-jén keresztül, ha ez nincs megfelelően megtisztítva, ami tetszőleges kód futtatásához vezethet). |
Kód-befecskendezés célprojektekbe, adatszivárgás. |
|
Letagadhatóság |
Nem azonosítható módosítások: Rosszindulatú változtatások történnek anélkül, hogy a felhasználó vagy rendszer megfelelően lenne hozzárendelve. |
Nehézkes auditálás és felelősségre vonhatóság. |
|
Információszivárgás |
Érzékeny adatok kiszivárgása: SQL-injektálás, nem biztonságos API-végpontok vagy hibák érzékeny adatokat tárhatnak fel (pl. más felhasználók fordításai, VCS-hitelesítő adatok, kiszolgáló információk). |
Adatvédelmi incidens, szellemi tulajdon eltulajdonítása. |
|
Információszivárgás |
VCS-hitelesítő adatok kiszivárgása: A Weblate által tárolt VCS-hitelesítők (SSH-kulcsok, tokenek) a támadó kezébe kerülnek. |
Közvetlen hozzáférés az integrált forráskód-tárolókhoz. |
|
DoS |
Erőforrás-kimerítés: Túlzott számú háttérfeladat vagy nem hatékony adatbázis-lekérdezés a rendszer lelassulásához vagy összeomlásához vezet. |
A Weblate elérhetetlenné válása. |
|
Jogosultságok kiterjesztése |
Szerepkör kiterjesztése: Egy egyszerű fordító adminisztrátori jogosultságokat szerez. |
A rendszer teljes kompromittálása. |
|
Jogosultságok kiterjesztése |
Parancs-befecskendezés: Tetszőleges kód futtatása a nem megfelelően ellenőrzött bemenetek (pl. tároló URL-ek vagy kiegészítők) révén. |
Rendszerkompromittálás, adatszivárgás. |
|
Backup import / restore |
DoS |
Archive amplification during restore: A crafted backup contains many members or a large aggregate uncompressed size, exhausting disk, memory, worker time, or inode capacity. |
Restore-time denial of service and possible service degradation for the instance. |
Manipuláció |
Malicious backup metadata or VCS state: A crafted backup restores misleading project metadata or unsafe repository state despite path validation and schema checks. |
Corrupted restored projects, unsafe repository state, or administrative confusion. |
|
Database/Datastore |
Manipuláció |
Adatkárosodás: Közvetlen hozzáférés az adatbázishoz lehetővé teszi fordítások, felhasználói adatok vagy beállítások módosítását. |
Rendszerhiba, az adatok integritásának elvesztése. |
Információszivárgás |
Sensitive data access: Unauthorized access to database/datastore exposes all stored data (credentials, translation memory, user profiles). |
Jelentős adatszivárgás. |
|
DoS |
Database exhaustion: Attacker floods the database or datastore with queries, or consumes all memory or available connections. |
A Weblate elérhetetlenné válása. |
|
VCS-integráció |
Manipuláció |
Rosszindulatú véglegesítések a Weblate-ből: A kompromittált Weblate rosszindulatú módosításokat küld fel az forrástárolóba. |
Kártékony kód vagy hátsó kapuk (malware/backdoors) bejuttatása célprojektekbe. |
Letagadhatóság |
Hamis véglegesítési hozzárendelés: A Weblate olyan véglegesítést hajt végre, amelyet hibásan rendel hozzá egy felhasználóhoz (pl. egy adminisztrátor egy fordító nevében véglegesít a beleegyezése nélkül). |
Felelősségre vonhatóság problémái. |
|
Outbound integrations / VCS configuration |
Információszivárgás |
Server-side request forgery or unintended internal reachability: A privileged user configures repository or integration endpoints that cause Weblate to connect to internal or otherwise restricted hosts. |
Exposure of internal services, metadata endpoints, or restricted network paths. |
Felhasználói interakció |
Megtévesztés |
Adathalászat / social engineering: A támadó megtéveszti a felhasználót, hogy adja ki a Weblate vagy a hozzákapcsolt VCS-fiók hitelesítő adatait. |
Felhasználói fiók kompromittálása. |
(Webes felület) |
Manipuláció |
Cross-site scripting (XSS): A weboldalon keresztüli szkript támadás során, rosszindulatú kódok kerülnek be a fordításokba vagy a felhasználói profilokba, és más felhasználók böngészőjében futnak le. |
Munkamenet-eltérítés, hitelesítő adatok eltulajdonítása, felület rongálása. |
Információszivárgás |
Clickjacking / felhasználói felület manipulálása: A támadó rosszindulatú elemeket helyez el a Weblate felületén, és így felhasználókat késztet nem szándékos műveletekre. |
Jogosulatlan műveletek, adatmanipuláció. |
|
Információszivárgás |
Érzékeny adatok a felületen: Az UI hibás jogosultságkezelés miatt nem szándékosan megjelenít érzékeny adatokat (pl. másik felhasználó e-mail címét). |
Adatvédelmi incidens. |
Enyhítési stratégiák¶
- Hitelesítés és jogosultságkezelés:
Erős jelszavakat előíró szabályzat, lásd: Jelszóbiztonság.
Kétlépcsős hitelesítés kötelezővé tétele, lásd: Kétlépcsős hitelesítés.
Robusztus munkamenet-kezelés.
Role-based access control (RBAC) to enforce the least privilege (for example separating translation, review, VCS, translation memory, screenshot, and project access management permissions), see Hozzáférés-vezérlés.
Külső hitelesítési szolgáltatókkal való integráció (SAML, OAuth, LDAP), lásd: Hitelesítés.
- Webhook security:
Current product limitation: webhook authenticity is not uniformly enforced in-app for all supported forge integrations.
Treat webhook endpoints as deployment-hardened interfaces and enable them only where necessary, see Értesítési hookok and Hookok engedélyezése.
Deployment controls required today include reverse-proxy rate limiting, request size limits, optional source-IP filtering, minimizing public exposure, and alerting on webhook spikes.
Validate webhook event type and payload before triggering repository updates or tasks.
Future product direction is to replace compatibility webhooks with native authenticated integrations that validate source authenticity before scheduling repository updates.
- Bemenet érvényesítése és a kimenet kódolása:
Az összes felhasználói bemenet (űrlapok, API-kérések, VCS URL-ek) szigorú érvényesítése a befecskendezéses támadások megelőzése érdekében (SQL injection, parancs-befecskendezés, XSS).
A webes felületen megjelenő felhasználói tartalmak kontextusérzékeny kódolása az XSS támadások megelőzésére.
- VCS-integráció biztonsága:
A legkisebb szükséges jogosultság elve a VCS-hitelesítő adatoknál (pl. csak olvasási jogosultság, korlátozott hatókörű tokenek).
VCS-hitelesítő adatok biztonságos tárolása.
A VCS-ből érkező adatok (pl. fájlnevek, ágak nevei, véglegesítési üzenetek) szigorú tisztítása és érvényesítése, különösen ha megjelenítésre kerülnek.
Git/Mercurial parancsok biztonságos végrehajtása (elkerülve a felhasználói bemenettel történő shell-futtatást).
Document and review hostname allowlisting and private-network restrictions for outbound integrations where deployments need to constrain server-initiated connections.
- Backup import security:
Treat backup archives as untrusted input and validate both metadata and extracted paths.
Enforce aggregate archive-size and extraction-budget limits, not only per-entry checks.
Monitor restore failures and unusually large imports as potential abuse indicators.
- Adatvédelem:
Érzékeny adatok titkosítása nyugalmi állapotban.
Adatok titkosítása átvitel közben (TLS/SSL minden HTTP/S és VCS kommunikációhoz).
Adatbázis megerősítése (Weblate felhasználónak minimális jogosultság, erős jelszavak).
- Rendszer megerősítése:
Az operációs rendszer, a Weblate és minden függőség rendszeres frissítése.
A legkisebb jogosultság elve a Weblate felhasználói fiók esetén az operációs rendszeren.
Network segmentation (e.g., separating database and datastore from public access).
Webalkalmazás-tűzfal (WAF) használata.
- Naplózás és megfigyelés:
Minden biztonsági szempontból releváns esemény (bejelentkezések, sikertelen bejelentkezések, jogosultságváltozások, kritikus beállítások módosítása, VCS-műveletek) átfogó auditnaplózása.
Biztonsági események központosított naplózása és riasztása, például a Graylog-alapú naplókezelés használatával.
- Biztonságos fejlesztési gyakorlatok:
Biztonsági szempontokra fókuszáló kódfelülvizsgálatok.
Statikus és dinamikus alkalmazásbiztonsági tesztelés (SAST és DAST), lásd: Weblate forráskód.
Függőségek sebezhetőségének vizsgálata, lásd: Függőségek.
Rendszeres biztonsági auditok és behatolás-tesztelések végrehajtása.
- Hibakezelés:
Általános hibaüzenetek használata, amelyek nem árulnak el érzékeny belső információkat.