Watch
1
0
Fork
You've already forked RedFlag
0
RedFlag/server/internal
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Fimeg 0b1b8124b0 crypto: forward-only key-path ceiling + OSV resilience + token serialization
SEC-028 -- a rotated-out server signing key must stop being trusted even when the agent cannot phone home. pubkey.go: bounded stale-cache window on public-key fetch failure; past the window (or when cache age is unknown) it fails closed instead of trusting the cached key indefinitely. Window length is operator policy (command_signing.stale_key_max_age_hours, default 168h/7d) delivered fleet-wide via GET /agents/:id/config; the [1h, 30d] clamp and the existence of the ceiling are doctrine, not knobs. verification.go: CheckKeyRotation refuses when the named key_id is not in the server active set (no primary fallback), and applies the same bounded-stale ceiling to the active-set fetch-failure path so key_id'd commands are no weaker than keyless ones. Server carries the default + 1-720h validation; web surfaces it in Security Settings.

SEC-029 -- the standalone OSV.dev client retries transient transport/5xx/429 with exponential backoff and trips a process-wide circuit breaker after a run of failures, fast-failing to 'unreachable'. Verdict semantics unchanged and still fail-closed; the resilience only stops a transient scanner blip from forcing an operator override.

GATE-004 #4 -- Consumer.ProcessToken holds a mutex so the replay-state guards are never raced by a concurrent caller. Today's single caller (the poll loop) never overlaps; this enforces the one-token-at-a-time invariant for future callers (local-API trigger, retry worker).

RAF/verification/03 and RAF/security/05 document the key-path and OSV changes. ETHOS #3, #4; forward-only doctrine.
2026-06-14 12:57:04 -04:00
..
api crypto: forward-only key-path ceiling + OSV resilience + token serialization 2026-06-14 12:57:04 -04:00
capability swap uuid lib, windows installer pass, README/RAF copy 2026-06-03 15:39:49 -04:00
circuitbreaker gave the server a breaker so a sulking upstream can't drag it down 2026-06-07 19:45:36 -04:00
command swap uuid lib, windows installer pass, README/RAF copy 2026-06-03 15:39:49 -04:00
common refactor: rename aggregator-agent to agent for public release 2026-05-21 13:19:18 -04:00
config feat: SETTINGS-001 reversible token encryption + one-liner restore 2026-06-05 16:17:47 -04:00
crypto feat: SETTINGS-001 reversible token encryption + one-liner restore 2026-06-05 16:17:47 -04:00
database fix: dashboard populates Updates-by-Type and gives honest severity bars 2026-06-13 08:23:20 -04:00
httpx swept the cobwebs, stopped re-dialing the same three hosts 2026-06-07 19:35:32 -04:00
integrations/wazuh feat: Wazuh queue-socket event emitter (INTEG-001) 2026-06-11 02:01:43 -04:00
logging feat: Wazuh queue-socket event emitter (INTEG-001) 2026-06-11 02:01:43 -04:00
models supply chain vuln UI — backend endpoints + frontend rendering for CVE/advisory detail 2026-06-11 11:32:24 -04:00
observability give the system a window you can scrape, and patch a migration that couldn't run twice 2026-06-07 20:59:29 -04:00
orchestrator v0.2.5.1: lifecycle, live operations, unified history 2026-06-05 09:13:42 -04:00
routeaudit code review: 12-finding fan-out — fixes across server, agent, web 2026-06-11 17:38:08 -04:00
scheduler swept the cobwebs, stopped re-dialing the same three hosts 2026-06-07 19:35:32 -04:00
security code review: 12-finding fan-out — fixes across server, agent, web 2026-06-11 17:38:08 -04:00
services crypto: forward-only key-path ceiling + OSV resilience + token serialization 2026-06-14 12:57:04 -04:00
taskrunner taught the rocks to stop tripping over each other under load 2026-06-07 19:17:08 -04:00
utils v0.2.5.1: lifecycle, live operations, unified history 2026-06-05 09:13:42 -04:00
version bump: v0.2.8.2 2026-06-11 20:25:08 -04:00
webui feat: embed web UI in server binary + local trigger-scan write endpoint 2026-06-10 08:38:18 -04:00