| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- From 65a304dab3329625b409efa161f2c31a7221ad7c Mon Sep 17 00:00:00 2001
- From: Alexander Barton <alex@barton.de>
- Date: Mon, 1 Jan 2024 18:20:26 +0100
- Subject: [PATCH 01/20] Respect "SSLConnect" option for incoming connections
- Don't accept incoming plain-text ("non SSL") server connections for
- servers configured with "SSLConnect" enabled.
- If "SSLConnect" is not set for an incoming connection the server still
- accepts both plain-text and encrypted connections.
- This change prevents an authenticated client-server being able to force
- the server-server to send its password on a plain-text connection when
- SSL/TLS was intended.
- (cherry picked from commit 21c1751b045b0be49e584a4ba191a330e0c381bb)
- ---
- src/ngircd/irc-server.c | 13 +++++++++++++
- 1 file changed, 13 insertions(+)
- --- a/src/ngircd/irc-server.c
- +++ b/src/ngircd/irc-server.c
- @@ -87,6 +87,19 @@
- return DISCONNECTED;
- }
-
- +#ifdef SSL_SUPPORT
- + /* Does this server require an SSL connection? */
- + if (Conf_Server[i].SSLConnect &&
- + !(Conn_Options(Client_Conn(Client)) & CONN_SSL)) {
- + Log(LOG_ERR,
- + "Connection %d: Server \"%s\" requires a secure connection!",
- + Client_Conn(Client), Req->argv[0]);
- + Conn_Close(Client_Conn(Client), NULL,
- + "Secure connection required", true);
- + return DISCONNECTED;
- + }
- +#endif
- +
- /* Check server password */
- if (strcmp(Conn_Password(Client_Conn(Client)),
- Conf_Server[i].pwd_in) != 0) {
|