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 — firmado con certificado Authenticode. La reputación de SmartScreen crece con cada release.
- Linux — paquetes
.deby.rpmcon firma de maintainer.
Checksums SHA256
Cada release incluye un archivo SHA256SUMS.txt junto a los binarios. Verifica
antes de instalar:
shasum -a 256 -c SHA256SUMS.txt El 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 corre
npm audit --omit=dev --audit-level=high como gate bloqueante. Una vulnerabilidad
alta o crítica en una dependencia de runtime detiene la release.
Runtime Python vendored
Pyodide v0.26.4 viene dentro del binario desktop con hashes de integridad fijados en
runtime-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.