Legal
Seguridad
Lingua ejecuta código no confiable en tu máquina. Lo tomamos en serio. Aquí está lo que hace el pipeline de release para asegurar que el binario instalado sea el que construimos, y lo que hace el runtime para contener tus snippets.
Binarios firmados y notarizados
- macOS — firmado con certificado Apple Developer ID y notarizado con el servicio de Apple. Gatekeeper no debería advertirte.
- Windows — un instalador NSIS
.exe. Los builds preliminares pueden no estar firmados y activar SmartScreen; CI verifica con Authenticode las releases firmadas. - Linux — un AppImage verificado mediante los checksums del release.
Checksums SHA256
Cada release incluye un archivo SHA256SUMS.txt junto a los binarios. Verifica antes de instalar:
shasum -a 256 -c SHA256SUMS.txtEl archivo de checksums se genera en el workflow de release después de construir cada binario. El workflow corre en CI público con pasos auditables.
Auditoría de dependencias bloqueante
Cada ejecución del pipeline de release correpnpm run check:prod-audit como gate bloqueante. Una vulnerabilidad alta o crítica en una dependencia de runtime detiene la release.
Runtime Python vendored
Pyodide v0.29.4 viene dentro del binario desktop con hashes de integridad fijados enruntime-assets.lock.json. La app desktop no carga Python desde CDN. La versión web en app.linguacode.dev cachea Pyodide con Service Worker en la primera carga y lo sirve localmente después.
Ejecución en sandbox
- JavaScript y TypeScript corren dentro de un Web Worker con timeouts y buffers de salida controlados por el padre; un loop infinito no bloquea el renderer.
- Python corre en un worker dedicado de Pyodide con los mismos límites de timeout y salida.
- Los subprocesses de Go y Rust heredan un entorno mínimo (
PATH,HOME,LANG,TMPDIR); el entorno completo del host no se expone al snippet. - El IPC de filesystem usa un registro basado en capacidades: el renderer solo puede operar sobre rutas bajo un root de proyecto aprobado explícitamente por el proceso principal.
Content Security Policy estricta
El renderer desktop incluye una CSP que bloquea scripts remotos e imports de módulos no aprobados. Todo lo que Lingua necesita en runtime viene empaquetado.
Reportar una vulnerabilidad
Escribe a [email protected] con los detalles. Intentamos confirmar recepción en 72 horas. Por favor danos 90 días antes de hacer divulgación pública.