Appenders: network and transport
- 2fb4539f time out writes to stalled TelnetAppender clients
- 15d16eed add a listen address to TelnetAppender
- bd35fe0d add a TransportSecurity option to the MailKit SmtpAppender
Appenders: syslog record integrity
- eccb876e escape NUL characters in LocalSyslogAppender messages
- 46582e52 report a RemoteSyslogAppender Identity that would split the record
- 360a1026 fix the lifetime of the LocalSyslogAppender identity
AdoNet appender
- 9f5c9557 contain per-event failures in AdoNetAppender.SendBuffer
- 19fdb4a2 warn when AdoNetAppender executes layout-generated SQL
- e80b3810 redact the password when reporting a failed database connection
Reliability and resource bounds
- 3fd97cb5 bound the waits for the file locking mutexes
- 394fd3dc bound regular expression matching in the string match filters
- 86ecb152 flush TextWriterAppender under the appender lock
- 1786b139 keep the impersonated user name when a logging event is fixed
Diagnostics
- ecd1b8b9 report the first appender error without log4net.Internal.Debug
Build and release infrastructure
- 9cc34d29 make the release verification scripts fail closed
- 28d411a5 pin the Maven wrapper and distribution downloads
- e203b7c7 remove the git-broadcast workflow
Documentation
- 6bc3df34 document that configuration is trusted input
- 287fa9cd document that format strings are trusted developer input
- dc17e1ba document the conventions the security scan work relied on (#309)
Notes for reviewers
Several commits introduce secure defaults with a named opt-out (SendTimeoutMillis, MatchTimeoutMillis, LockTimeoutMillis); those are behaviour changes on upgrade and are recorded in the changelog. The documentation commits deliberately settle recurring reports in the threat model rather than changing code.