Skip to content

v10.5.0 — Pre-Launch Security Hardening

Choose a tag to compare

@Ruso-0 Ruso-0 released this 15 Apr 15:20
· 264 commits to master since this release

10.5.0 (2026-04-15) — Pre-Launch Security Hardening

Security (Critical)

  • RCE blocklist expansion (path-jail): .claude/hooks/, .claude/settings*.json (covers settings.json + settings.local.json), and .mcp.json are now blocked. Closes PreToolUse hook injection and rogue MCP server injection vectors.
  • SQL injection fix: NrekiDB.getEngramsForFile migrated from string interpolation to parameterized prepared statement.
  • Prototype pollution guards: chronos-memory.ts, cognitive-enforcer.ts, and repo-map.ts JSON cache loaders now reject __proto__/constructor/prototype keys via JSON.parse reviver. ChronosMemory.normalize rejects paths normalizing to those reserved names.
  • Path traversal guard in CLI enforcer hook generated by getEnforcerScriptContent(); resolved paths must stay inside cwd.
  • Auto-patch of legacy enforcer hook on boot: existing installations missing the traversal guard are rewritten with the hardened script before server.connect().
  • set_plan stores relative POSIX path in nreki_master_plan metadata instead of absolute path.

Correctness

  • Guillotine de payload es ahora incondicional en semantic-edit.ts (eliminados && !dryRun).
  • Recuperación de SQLite corrupto: NrekiDB._init() envuelve la carga en try/catch y recrea la BD si el buffer está dañado.
  • isError: true añadido a las 4 salidas tempranas de handlePin / handleUnpin.
  • CRLF/LF handling en Phantom Scalpel: applySemanticSplice adapta search_text/replace_text al fin de línea del archivo destino (patch mode) y normaliza new_code a LF antes del rebase de indentación (replace mode).
  • Router facades (handleNavigate, handleCode, handleGuard) llaman await deps.engine.initialize() al inicio; handleGuard ahora incluye karma penalty.

Performance

  • Lazy-load del raw identifier index: NrekiDB.searchRawCode construye el índice en la primera llamada.

Cosmetic

  • computeTriageRisk: regex de ternario con lookaround (?<!\?)\?(?!\.|:|\?) evita inflar el conteo de ramas con ?. u ??.

Tests

  • 729/729 pasan (45 archivos, ~140s).