Commit graph

320 commits

Author SHA1 Message Date
a774dfedb1
Fix migration over-granting op on disabled levels and halfops
All checks were successful
CI / check (push) Successful in 5m16s
2026-07-19 20:28:24 +00:00
006808e974
Drop the SASL source record when the connection ends 2026-07-19 20:28:24 +00:00
b34ae037f6
Validate SCRAM cost floor, saturate expiry math, hide-oper service default 2026-07-19 20:28:24 +00:00
3c730f7add
Keep a bot-inhabited channel alive when pruning empty channels 2026-07-19 19:52:44 +00:00
071380efae
Re-check protection in the enforce sweep and key the kicker cache by registration
All checks were successful
CI / check (push) Successful in 5m19s
2026-07-19 19:19:20 +00:00
118782a4bf
Allocate guest nicks that skip online and registered names 2026-07-19 19:19:20 +00:00
d0a86359c2
Fix the caps kicker to trigger on ratio, not uppercase count
All checks were successful
CI / check (push) Successful in 5m16s
2026-07-19 18:52:26 +00:00
e4a2e76903
Harden votekick: dedup votes, require member targets, fix trigger refs 2026-07-19 18:52:26 +00:00
9806da9c28
Cap concurrent inbound gossip sessions
All checks were successful
CI / check (push) Successful in 5m22s
2026-07-19 18:15:57 +00:00
007b02d380
Don't install an already-expired gossiped akill as a permanent ban 2026-07-19 18:15:57 +00:00
75d3c70cc8
Reject CRLF/malformed emails and names to stop SMTP header injection 2026-07-19 18:12:35 +00:00
598234b817
Add regression tests for the authority, channel-prune and group-cap fixes
All checks were successful
CI / check (push) Successful in 5m35s
2026-07-19 17:45:05 +00:00
d6e74dd7c7
Key chatter buckets by lowercase channel 2026-07-19 17:45:04 +00:00
fa9eaece45
Cap and freeze-gate GroupServ registration 2026-07-19 17:45:04 +00:00
0c85c5b569
Forget emptied channels so a stale key can't leak to a recreated name 2026-07-19 17:45:04 +00:00
eea6e30f20
Guard the gRPC authority login and register paths 2026-07-19 17:45:04 +00:00
6149a15b34
Let identified users manage CERT without a password
All checks were successful
CI / check (push) Successful in 4m18s
2026-07-19 17:17:36 +00:00
bfff7dba91
Silently ignore unknown in-channel fantasy commands
All checks were successful
CI / check (push) Successful in 4m15s
2026-07-19 17:09:07 +00:00
d6b681c972
Don't expire runtime-granted opers; preserve standalone kicker flags across compaction
All checks were successful
CI / check (push) Successful in 4m12s
2026-07-19 16:44:35 +00:00
b704ab2b50
Never crash on a non-UTF-8 uplink line; bound line length; redeem keycards off the reactor loop 2026-07-19 16:44:35 +00:00
7894de4217
Resolve grouped-nick authzid in SASL EXTERNAL and saturate the Lamport clock
All checks were successful
CI / check (push) Successful in 4m10s
2026-07-19 15:59:00 +00:00
16d2a5035a
Enforce the email-forbid policy on gRPC Register and SetEmail
All checks were successful
CI / check (push) Successful in 4m10s
2026-07-19 15:37:33 +00:00
03d39c1329
Guard the namespace on NickServ GROUP, gRPC GroupNick, and GroupServ REGISTER (confusable/forbid/cap)
Some checks failed
CI / check (push) Has been cancelled
2026-07-19 15:34:35 +00:00
86444286d8
Test that SASL SCRAM honours the brute-force lockout
All checks were successful
CI / check (push) Successful in 4m9s
2026-07-19 14:40:00 +00:00
c36341668c
Fix self-review regressions: throttle SASL SCRAM, key game target by UID, exclude keycard from password lockout
Some checks failed
CI / check (push) Has been cancelled
2026-07-19 14:38:16 +00:00
4599c4834d
Bind game identity to UID (hijack + cap bypass) and warn on plaintext gossip
All checks were successful
CI / check (push) Successful in 4m17s
2026-07-19 14:15:06 +00:00
e23240bf52
Converge remaining gossiped state: node-local news/reports/help and deterministic group registration
Some checks failed
CI / check (push) Has been cancelled
2026-07-19 14:11:50 +00:00
fef4590f48
Update direct report_file/help_request test callers for the cooldown-key argument
All checks were successful
CI / check (push) Successful in 4m32s
2026-07-19 13:57:03 +00:00
c2db3bad7e
Preserve Anope negative mode locks on import instead of dropping them
Some checks failed
CI / check (push) Failing after 3m4s
2026-07-19 13:45:43 +00:00
d5bc2309c4
Bound gossip line length, add a handshake timeout, and compare the secret in constant time 2026-07-19 13:43:03 +00:00
3648c48d2e
Rate-limit REPORT and REQUEST on the real host instead of the spoofable nick 2026-07-19 13:39:03 +00:00
b2ffc01e52
Bound dice batches, game count, and report/help queues, and harden community votekick 2026-07-19 13:34:48 +00:00
64c4bbeae4
Cap certfp, channel access, and akick lists to bound attacker-driven log growth 2026-07-19 13:27:50 +00:00
d833dc28f0
Fix duration overflow, expiry-warned resets, DICT control-char injection, and HostServ TAKE forbid recheck 2026-07-19 13:24:46 +00:00
d0c7cb6905
Exempt service bots from ChannelOp secureops and bound the last-seen map 2026-07-19 13:17:54 +00:00
e7f012726c
Stop a non-founder from granting the founder flag (channel takeover escalation) 2026-07-19 13:12:54 +00:00
18806c5fe7
Apply the IRC namespace guards (forbid, confusable, frozen) to gRPC account writes 2026-07-19 13:10:44 +00:00
660362a34b
Throttle every password-verify path (GROUP/GHOST/CERT/DROP/SASL) and key the lockout by resolved account 2026-07-19 13:06:50 +00:00
1ecb76affb
Report failed IDENTIFY against a password-less account to the auth feed
All checks were successful
CI / check (push) Successful in 4m10s
2026-07-19 05:00:12 +00:00
876bc55e2b
Deliver node-local channel directory events to the gRPC subscribe stream 2026-07-19 04:54:48 +00:00
af5896743d
Restore the real ident when a HostServ ident@host vhost is turned off or deleted 2026-07-19 04:49:31 +00:00
23960adc83
Route every handle() early return through the shared tail so swept unbans and incident stamps aren't dropped 2026-07-19 04:44:11 +00:00
75aa8bc096
Preserve channel last_used and LEVELS overrides across compaction
Some checks failed
CI / check (push) Has been cancelled
2026-07-19 04:19:22 +00:00
ad8a3fe065
Add loopback health and Prometheus metrics endpoint
All checks were successful
CI / check (push) Successful in 4m22s
2026-07-19 04:13:18 +00:00
381f706634
Test oper type shortcut resolves to its tier privileges
All checks were successful
CI / check (push) Successful in 4m25s
2026-07-19 03:29:00 +00:00
fc214ab0d3
Add three-tier services operator model (operator, administrator, root)
All checks were successful
CI / check (push) Successful in 4m22s
2026-07-19 02:19:51 +00:00
a10662bbc6
engine: persist the incident ring (LOGSEARCH) across restarts via a periodic + on-shutdown snapshot event, mirroring stat-counter persistence
All checks were successful
CI / check (push) Successful in 3m44s
2026-07-19 00:46:14 +00:00
754c5d9e95
engine: staff-feed alerts are also recorded to the incident log, so a blocked look-alike registration is searchable via OperServ LOGSEARCH
All checks were successful
CI / check (push) Successful in 3m45s
2026-07-19 00:29:55 +00:00
0d16240606
nickserv/chanserv: announce a blocked look-alike registration to the staff feed (ServiceCtx alert drained by dispatch)
All checks were successful
CI / check (push) Successful in 3m44s
2026-07-19 00:24:27 +00:00
89ac01d0b0
nickserv/chanserv: catch styled/fullwidth look-alike names too, and add a [register] confusable_check toggle (REHASH-reloadable)
All checks were successful
CI / check (push) Successful in 3m48s
2026-07-19 00:15:08 +00:00