Commit graph

388 commits

Author SHA1 Message Date
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
68df1e7078
Use the ircd's learned CHANMODES arities for FMODE/FJOIN param scanning 2026-07-19 13:22:00 +00:00
d0c7cb6905
Exempt service bots from ChannelOp secureops and bound the last-seen map 2026-07-19 13:17:54 +00:00
7528b78bf7
Gate OperServ EXCEPTION at admin tier and reject match-all SNLINE regex 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
384f222a22
Enforce cloned akicks with a standing +b for ircd-enforced masks 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
b38cde945f
Persist CS TOPIC so KEEPTOPIC and TOPICLOCK keep the set topic
All checks were successful
CI / check (push) Successful in 4m13s
2026-07-19 04:21:25 +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
baab04203d
Report oper tier by capability so a sub-floor grant isnt labelled a full operator
All checks were successful
CI / check (push) Successful in 4m13s
2026-07-19 02:28:32 +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
c2b70f5004
nickserv/chanserv: reject look-alike / mixed-script registration names (homoglyph impersonation guard)
All checks were successful
CI / check (push) Successful in 3m56s
2026-07-19 00:02:44 +00:00
03f9c2d3bd
dictserv: retry a transient lookup once, and end the read on a no-match/error status instead of blocking for a 250 that never comes
All checks were successful
CI / check (push) Successful in 4m0s
2026-07-18 23:20:34 +00:00
623750e638
dictserv: opt-in DICT (RFC 2229) lookup service — bots and /msg answer dict/define/thes/acronym/law/etc via dict.org off-reactor
All checks were successful
CI / check (push) Successful in 4m4s
2026-07-18 20:21:30 +00:00
76be932131
test: add an ignored engine throughput benchmark (botserv hot path + append/fsync write path)
All checks were successful
CI / check (push) Successful in 3m56s
2026-07-18 19:43:45 +00:00
5859aaf888
engine: reuse the event-log append handle instead of reopening per event (~20% faster writes on disk) 2026-07-18 19:43:45 +00:00
e05c62c085
operserv: NOTIFY gains k/m/u/o flags and quit/part reasons; protocol carries kicker, mode-setter, oper-up, user modes
All checks were successful
CI / check (push) Successful in 4m1s
2026-07-18 19:18:17 +00:00
617d3c7966
operserv: NOTIFY feed uses labelled fields (IP/DNS/Account/Server) and Service:verb
All checks were successful
CI / check (push) Successful in 4m5s
2026-07-18 17:50:32 +00:00
4247df8844
operserv: notify_exclude gains server:<glob> to mute a whole relay server from the feed
All checks were successful
CI / check (push) Successful in 4m1s
2026-07-18 17:35:04 +00:00
4d327c3f47
operserv: NOTIFY lines carry real IP, rdns, login and origin server for the oper feed
All checks were successful
CI / check (push) Successful in 4m4s
2026-07-18 17:28:07 +00:00
2fb1970030
docs: notify_exclude comments cover channel masks
All checks were successful
CI / check (push) Successful in 4m3s
2026-07-18 17:20:24 +00:00
29bedf0358
operserv: notify_exclude also mutes #channel masks, so a broad watch can skip specific channels
Some checks failed
CI / check (push) Has been cancelled
2026-07-18 17:19:48 +00:00
bbdb34aa77
operserv: NOTIFY allows broad masks (it only observes) so a #* watch can match all joins
All checks were successful
CI / check (push) Successful in 4m4s
2026-07-18 17:14:13 +00:00
1d30c9cfe3
operserv: note the log channel and notify exclude list are REHASH-reloadable in HELP
All checks were successful
CI / check (push) Successful in 4m11s
2026-07-18 17:02:01 +00:00
8f19a94928
operserv: NOTIFY honours a config exclude list so relay/pylinked clients cannot flood the feed 2026-07-18 16:47:25 +00:00
c415117ec5
operserv: add NOTIFY oper watch list emitting matched-user events to the staff feed 2026-07-18 16:16:06 +00:00
86b1aae686
engine: rate-limit anonymous service commands so a bot cannot spam a service in a loop 2026-07-18 05:02:40 +00:00
321e03ac48
link: set TCP_NODELAY on the uplink so an off-box services link never holds a reply tail 2026-07-18 04:39:57 +00:00
ce9c802d0a
nickserv: SNOTICE names the service once per reply then uses plain *** continuations, so a long HELP is not the service name on every line
All checks were successful
CI / check (push) Successful in 3m47s
2026-07-18 03:46:10 +00:00
6429b82fc4
nickserv: SET SNOTICE — opt-in server-notice-style service replies (*** NickServ: ...) sourced from the server instead of the pseudoclient
All checks were successful
CI / check (push) Successful in 3m47s
2026-07-18 03:40:22 +00:00
3230cdd9db
protocol: handle SQUERY like PRIVMSG so the NS/CS/OS/... service aliases work (proto 1206 delivers SQUERY raw instead of folding it to PRIVMSG)
All checks were successful
CI / check (push) Successful in 3m43s
2026-07-18 03:24:58 +00:00
db3e818089
db: a gossiped re-home of an account is only a takeover when the credential also changed, so an authority re-provision or migration re-home no longer spuriously logs the user out
All checks were successful
CI / check (push) Successful in 3m44s
2026-07-18 03:04:50 +00:00
c64c3820a7
protocol: verify echos pseudoclients request servprotect (+k, by name from CAPAB USERMODES) so they cannot be killed by operators; warn if service_modes lacks it
All checks were successful
CI / check (push) Successful in 3m45s
2026-07-18 02:41:03 +00:00
2f70b0c133
protocol: verify echo ircd module dependencies from CAPAB MODULES at link, warning per-feature if one is missing rather than failing silently
All checks were successful
CI / check (push) Successful in 3m49s
2026-07-18 02:22:43 +00:00
0ca06247f8
protocol: read CASEMAPPING from CAPAB and verify it matches echos ascii identity folding, warning on mismatch instead of silently desyncing
All checks were successful
CI / check (push) Successful in 4m31s
2026-07-18 01:58:49 +00:00
e206f4edbb
operserv: REDACT deletes a message by its msgid (draft/message-redaction), relayed server-sourced so no ircd oper privilege is needed
All checks were successful
CI / check (push) Successful in 4m6s
2026-07-18 01:23:37 +00:00