Skip to content

fix(dependencias): 34 de las 36 alertas de Dependabot, y Tauri sube a 2.11 entero - #10

Open
PersusUS wants to merge 1 commit into
mainfrom
seguridad/dependencias-dependabot
Open

PersusUS wants to merge 1 commit into
mainfrom
seguridad/dependencias-dependabot

Conversation

@PersusUS

Copy link
Copy Markdown
Owner

GitHub marcaba 36 alertas de Dependabot en main (1 crítica, 13 altas, 18 moderadas, 4 bajas). Este PR cierra 34 y deja dos abiertas que no tienen arreglo en la línea 2 de Tauri. Solo cambian los ficheros de dependencias: ni una línea de código.

Lo que había, por ecosistema

Ecosistema Fichero Alertas Tras este PR
npm RealTime/package-lock.json 31 (1 crítica, 13 altas, 15 moderadas, 2 bajas) 0 — npm audit dice found 0 vulnerabilities
cargo RealTime/src-tauri/Cargo.lock 5 (3 moderadas, 2 bajas) 2 (glib 0.18 y rand 0.7)
pip perseo_core/requirements*.txt 0 —

Lo que se actualizó y si afectaba de verdad

npm, en tiempo de ejecución

Paquete Antes Después Alertas ¿Afectaba?
protobufjs (+ @protobufjs/utf8) 7.5.4 7.6.6 la crítica (ejecución de código) + 5 altas + 6 moderadas Poco. Lo trae @google/genai, pero solo en su build de Node y en el tokenizador: el build browser que Vite mete en el binario no lo importa. Se sube igual porque cae dentro del ^7.5.4 que pide @google/genai y no cuesta nada.
ws 8.20.0 8.22.0 1 alta (DoS) + 1 moderada Igual que el anterior: ws es el WebSocket de Node; en la ventana de Tauri @google/genai usa el WebSocket del navegador.

npm, solo de desarrollo y build

Nada de esto llega al binario, pero vite sirve el servidor de desarrollo en el puerto 1420 y la maqueta, así que las lecturas de ficheros por el servidor de desarrollo (server.fs.deny, rutas alternativas de Windows, el WebSocket) sí eran alcanzables mientras se trabaja.

Paquete Antes Después
vite 7.3.1 7.3.6 (suelo en package.json: ^7.3.6)
vitest + @vitest/mocker 4.1.10 4.1.11 (suelo: ^4.1.11)
esbuild 0.27.4 0.28.2 (vite 7.3.6 ya acepta ^0.28)
postcss 8.5.8 8.5.28
nanoid 3.3.11 3.3.19
browserslist 4.28.1 4.29.1
baseline-browser-mapping 2.10.12 2.11.26
@babel/core 7.29.0 7.29.7

Todo dentro del mismo major y del mismo minor de vite: no hay saltos a Vite 8 ni a Vitest 5.

cargo

Crate Antes Después Alerta ¿Afectaba?
tauri 2.10.3 2.11.6 Confusión de origen: páginas remotas invocando comandos IPC solo locales Sí, es la importante del lado Rust. La CSP permite frame-src http://127.0.0.1:* http://localhost:*, así que la ventana enmarca páginas de otro origen.
serde_with 3.18.0 3.21.0 Pánico en KeyValueMap No en la práctica (lo usa tauri-utils al leer la configuración), pero es un salto de parche.
rand 0.8 / 0.9 0.8.5 / 0.9.2 0.8.8 / 0.9.5 Unsound con un logger propio y rand::rng() No: no hay logger propio. Parche dentro de semver.

Decisiones que conviene saber

  • Tauri se queda en la línea 2.11, no en la 2.12. La 2.12.0 salió ayer (26 de septiembre) y el arreglo está desde la 2.11.1. Además, cargo update -p tauri a secas mezclaba tauri 2.11 con tauri-runtime 2.12 y wry 0.57, y el lock acababa con dos webview2-com (0.38 y 0.39). Así que el juego se fijó entero en lo que se publicó junto: tauri 2.11.6, tauri-runtime 2.11.3, tauri-runtime-wry 2.11.4, tauri-utils 2.9.3, tauri-build/codegen/macros 2.6.3, wry 0.55.1, tao 0.35.3.
  • @tauri-apps/api pasa a 2.11.1 y @tauri-apps/cli a 2.11.5, para que el CLI no se niegue a construir por versiones desparejadas entre el paquete npm y el crate. En package.json los rangos siguen con ^, igual que en Cargo.toml: si algún día se hace npm update y cargo update, los dos lados suben juntos.
  • serde_with se fija en 3.21.0, no en la 3.24. La última arrastraba darling 0.24 y syn 3 solo para compilar una macro. La 3.21.0 es la primera versión con el arreglo.
  • El lock de npm se regeneró con npm 11. npm 10.9.3 (el de Node 22 en esta máquina) revienta con Cannot read properties of null (reading 'edgesOut') en cuanto tiene que recalcular los peers de vite/vitest, sea con npm audit fix, npm update o npm install. El lock resultante sigue siendo lockfileVersion: 3, y npm ci con npm 10 —lo que hace el CI— lo instala limpio: npm ci no recalcula el árbol, solo lo lee.

Lo que no se arregla, y por qué

Alerta Por qué se queda
glib 0.18.5 (moderada, unsound en VariantStrIter) Viene de gtk 0.18 (GTK3), que es lo que usan wry/tray-icon en Linux. Tauri 2 no tiene salida de GTK3; el arreglo (glib ≥ 0.20) llega con el paso a GTK4 de Tauri 3. En Windows ni se compila.
rand 0.7.3 (baja) Solo aparece como dependencia de build (kuchikiki → selectors → phf_codegen → phf_generator 0.8), y la 0.7 no tiene rand::rng(), que es donde está el fallo. Ninguna versión 2.x de tauri-utils (tampoco la 2.10 de Tauri 2.12) se libra de kuchikiki.

Se pueden descartar en Dependabot como «riesgo tolerable» una vez fusionado esto; no lo he hecho yo.

Las ramas de Dependabot

Este PR hace lo mismo que #2 (nanoid), #3 (serde_with), #5 (baseline-browser-mapping), #6 (tauri), #7 (browserslist) y #8 (vitest), así que al fusionarlo Dependabot debería cerrarlas solo al ver que ya no hacen falta.

Comprobado

  • python commands/perseo.py comprobar: verde — 1059 pruebas del núcleo (1 saltada), ruff, código muerto, tsc, 204 pruebas del frontend y cargo check.
  • python commands/perseo.py actualizar en el worktree: construye en release y pasa la comprobación de versiones desparejadas del CLI de Tauri. El dist resultante no contiene ni una mención a protobufjs, que confirma lo dicho arriba.
  • npm ci con npm 10 sobre el lock nuevo: instala limpio, found 0 vulnerabilities.

Después de fusionar, hace falta perseo actualizar en el checkout principal para que la app que se abre lleve el Tauri nuevo: el binario compilado en el worktree no sustituye al de siempre.

🤖 Generated with Claude Code

… 2.11 entero

Del lado npm se va la crítica de protobufjs y todo lo demás: protobufjs y ws
suben dentro del rango que pide @google/genai (aunque el build del navegador
que va en el binario no los importa: son de su build de Node), y vite, vitest,
esbuild, postcss, nanoid, browserslist, baseline-browser-mapping y @babel/core
se quedan en el mismo major. npm audit: 0.

Del lado Rust, tauri 2.11.6 cierra la confusión de origen del IPC, que aquí
importa porque la CSP deja enmarcar 127.0.0.1 y localhost. El juego se fija
entero en la línea 2.11 (runtime 2.11.3, runtime-wry 2.11.4, wry 0.55.1,
tao 0.35.3): `cargo update -p tauri` a secas mezclaba tauri 2.11 con
tauri-runtime 2.12 y dejaba dos webview2-com en el lock. @tauri-apps/api y
@tauri-apps/cli bajan a 2.11 por lo mismo: el CLI no construye si el paquete
npm y el crate no comparten minor. serde_with va a 3.21.0, la primera con el
arreglo, y no a la 3.24, que arrastraba syn 3 para una macro. rand 0.8 y 0.9,
parche.

Se quedan glib 0.18 (GTK3, solo en Linux, sin salida hasta Tauri 3) y rand
0.7 (solo en build scripts, y sin la función afectada).

El lock de npm se regeneró con npm 11: npm 10.9 revienta con «reading
'edgesOut'» al recalcular los peers de vite y vitest. `npm ci` con npm 10 lo
instala limpio.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant