Merge quick/0005-bump-close: unibus 0.7.0 + close issue 0005
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
name: unibus
|
||||
lang: go
|
||||
domain: infra
|
||||
version: 0.6.0
|
||||
version: 0.7.0
|
||||
description: "Bus de mensajería unificado sobre NATS+JetStream con cifrado E2E por room (megolm/olm reducido): service de membresía/claves, librería cliente y peers demo."
|
||||
tags: [service, messaging, nats, e2e]
|
||||
uses_functions:
|
||||
@@ -154,6 +154,29 @@ agent.<nombre>.{in,out} inbox/outbox de agente LLM (agent.scout.in)
|
||||
|
||||
## Capability growth log
|
||||
|
||||
- v0.7.0 (2026-06-07) — hardening de seguridad 2 (issue 0005, fases 0005a–0005e)
|
||||
que cierra los hallazgos nuevos de la re-auditoría red-team (report 0006) y
|
||||
lleva el veredicto de exposición pública a "sí-con-condiciones". (0005a) Bump de
|
||||
`github.com/nats-io/nats-server/v2` v2.10.22→v2.11.15 y de la toolchain a
|
||||
go1.26.4: `govulncheck ./...` pasa de 16 vulnerabilidades alcanzables (14 del
|
||||
servidor NATS embebido + 2 de la stdlib) a 0. (0005b) `client.processFrame`
|
||||
ahora descarta cualquier frame sin firma en una room `SignMsgs` (antes verificaba
|
||||
solo si la firma venía presente, lo que permitía suplantar `Sender` con
|
||||
`Sig==nil`). (0005c) Nuevo limiter global de bytes en vuelo
|
||||
(`pkg/membership.inflightLimiter`) que acota la memoria agregada que el control
|
||||
plane bufferiza bajo concurrencia (el límite por-request y el rate-limit por-IP
|
||||
no acotaban el total): un flood concurrente multi-IP se descarta con 503 en vez
|
||||
de crecer sin techo (el RSS deja de escalar con N). (0005d) El guard de arranque
|
||||
`validateBootConfig` ahora exige `--tls-cert/--tls-key` en bind no-loopback (un
|
||||
control plane público sin TLS servía metadata en claro). (0005e) Se cablea por
|
||||
fin en `membershipd` la ACL por subject que ya existía huérfana desde 0003e
|
||||
(`busauth.NewNkeyAuthenticatorACL` + nuevo adaptador `busauth.PermissionsFromSubjects`
|
||||
sobre `membership.SubjectACLFor`): un registrado no-miembro ya no puede
|
||||
`Subscribe(">")` y captar los subjects/advisories de rooms ajenas. Residuales
|
||||
documentados: `$JS.API.>` sigue compartido (cierre completo = NATS accounts por
|
||||
identidad, diferido) y los clientes deben `RefreshSession` tras cambios de
|
||||
membresía (chat/worker aún no lo hacen). El comportamiento de un solo nodo no
|
||||
cambia y master sigue verde.
|
||||
- v0.6.0 (2026-06-07) — descentralización / alta disponibilidad (issue 0003,
|
||||
fases 0003a–0003e), report 0006. El servidor NATS embebido gana soporte de
|
||||
cluster con routes autenticadas (secreto de cluster) y TLS mutuo de nodo
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
---
|
||||
issue: 0005
|
||||
title: Hardening 2 — CVEs, spoof por firma omitida, DoS por concurrencia, TLS forzado (re-auditoría)
|
||||
status: spec
|
||||
status: done
|
||||
created: 2026-06-07
|
||||
completed: 2026-06-07
|
||||
domain: security
|
||||
scope: unibus (go.mod, pkg/client, pkg/membership/server.go, cmd/membershipd/config.go, pkg/embeddednats, pkg/blobstore)
|
||||
depends_on: 0001, 0004 (cierra los hallazgos NUEVOS de la re-auditoría sobre lo entregado)
|
||||
|
||||
Reference in New Issue
Block a user