When queuing data of sending to clients, the Relay plugin builds a partial buffer.
There is no limit for the allocated buffer.
A malicious unauthenticated client sending PING control frames can can lead to memory exhaustion and the WeeChat process can be killed by the OOM killer.
Mitigation
Unload relay plugin with command: /plugin unload relay and see: /help weechat.plugin.autoload.
Credit
The issue was discovered by Acts1631.
WSA-2026-19: [Relay] Missing rejection of invalid websocket frames.
The relay plugin fails to reject invalid websocket frames.
A malicious client sending invalid websocket frames can lead to memory exhaustion and the WeeChat process can be killed by the OOM killer.
Mitigation
Unload relay plugin with command: /plugin unload relay and see: /help weechat.plugin.autoload.
Credit
The issue was discovered by Acts1631.
WSA-2026-18: [Relay] Missing size limit for the unterminated Relay text message received from a client.
When receiving a text message from a client, the Relay plugin builds a partial buffer until the end of text is found.
There is no limit for the allocated buffer.
A malicious client sending large amount of data without end of text can lead to memory exhaustion and the WeeChat process can be killed by the OOM killer.
Mitigation
Unload relay plugin with command: /plugin unload relay and see: /help weechat.plugin.autoload.
Credit
The issue was discovered by Acts1631.
WSA-2026-17: [Xfer] Bypass of user authorization for start of DCC file transfer.
When receiving part of Xfer chat message, the Xfer plugin builds a partial buffer until the end of message is found.
There is no limit for the allocated buffer.
A malicious client sending large amount of data without end of message can lead to memory exhaustion and the WeeChat process can be killed by the OOM killer.
Mitigation
Unload xfer plugin with command: /plugin unload xfer and see: /help weechat.plugin.autoload.
Credit
The issue was discovered by Acts1631.
WSA-2026-15: [Xfer] Write of DCC file received outside of configured download path.
When receiving a DCC file, the filename may contain directory separator that is not the platform-native one (for example "/" received on Windows or "\" received on Linux). This separator may be interpreted as a directory separator, so the file could be written outside of the configured download path.
Xfer never overwrites existing files, so if a file exists with the same name, a suffix like ".1" is appended to the filename.
Mitigation
Unload xfer plugin with command: /plugin unload xfer and see: /help weechat.plugin.autoload.
Credit
The issue was discovered by Acts1631.
WSA-2026-14: [Relay] Use-after-free and double free when a remote relay sends an event with an array as body.
A malicious (or compromised) relay remote can send a "buffer_closed" event with an array, causing a use-after-free (read and write) followed by a double free, in the relay plugin.
Note: if the remote is a trusted WeeChat, the problem does not happen, as WeeChat itself never sends an array in the "buffer_closed" event.
Mitigation
Always connect to a trusted WeeChat remote.
Credit
The issue was discovered by Mohammed Arib (arib06).
WSA-2026-13: [IRC] Use-after-free in the irc plugin when a batched message disconnects the server.
When a batch message is received and one of the messages causes a disconnection from the server, the remaining messages are reading data that is already freed.
When writing a log file, a specific char used internally as separator may be used to forge a new path that can be outside the path configured by the option logger.file.path.
Mitigation
There is no known mitigation.
The upgrade to the latest stable version is highly recommended.
Credit
The issue was discovered by Mohammed Arib (arib06).
WSA-2026-10: [Relay] Authentication bypass in Relay plugin, protocols "api" and "weechat".
When receiving a DCC file, the filename built contains the remote nick (the option xfer.file.use_nick_in_filename is on by default).
If the nick contains special characters, the file could be written outside of the configured download path.
Xfer never overwrites existing files, so if a file exists with the same name, a suffix like ".1" is appended to the filename.
Mitigation
Turn off option to include nick in filename: /set xfer.file.use_nick_in_filename off.
Credit
The issue was discovered by aizu-m.
WSA-2026-5: [IRC] Buffer overflow when receiving a DCC file.
When receiving part of websocket frame, HTTP message or HTTP body, the Relay plugin builds a partial buffer until the end of data is found.
There is no limit for the allocated buffer.
A malicious client sending large amount of data without end of websocket frame or HTTP message/body can lead to memory exhaustion and the WeeChat process can be killed by the OOM killer.
Mitigation
There are multiple ways to mitigate this issue:
Remove all relays, see: /help relay
Unload relay plugin with command: /plugin unload relay and see: /help weechat.plugin.autoload
Secure relay to allow only trusted IP addresses, see: /help relay.network.allowed_ips
WSA-2026-3: [IRC] Missing size limit for the unterminated IRC message or isupport value (message 005).
When receiving data on the socket, the IRC plugin builds a partial message until "\r\n" is found.
There is no limit for the allocated message.
A malicious server sending large amount of data without end of message ("\r\n") can lead to memory exhaustion and the WeeChat process can be killed by the OOM killer.
Mitigation
There is no known mitigation.
The upgrade to the latest stable version is highly recommended.
WSA-2026-2: [API, Relay] Non-constant time password/hash comparison.
WeeChat uses non-constant time password/hash comparison in the Relay plugin and in TOTP validation.
This could allow an attacker to guess a password, a hash or a TOTP and bypass relay authentication.
Mitigation
There are multiple ways to mitigate this issue:
Remove all relays, see: /help relay
Unload relay plugin with command: /plugin unload relay and see: /help weechat.plugin.autoload
Secure relay to allow only trusted IP addresses, see: /help relay.network.allowed_ips
Credit
The issue was discovered by Tristan Madani (TristanInSec).
WSA-2026-1: [Relay] Missing size limit for the decompressed websocket frame in relay plugin, protocol "api".
When decompressing a websocket frame received from a Relay client with "api" protocol and permessage-deflate enabled, WeeChat allocates memory without upper limit.
In case of highly compressed frame, this can lead to memory exhaustion and the WeeChat process can be killed by the OOM killer.
Buffer overflow in function util_parse_time when the received date/time has no date and a length of 117 or more chars.
It can be an issue in IRC plugin, where the "time" tag received in IRC messages is parsed using this function.
Mitigation
There is no known mitigation.
The upgrade to the latest stable version is highly recommended.
WSA-2025-3: [Core] Integer overflow in conversion of version to an integer number.
Integer overflow happens in conversion of a version as string to an integer number, if the version is greater than 0x7FFFFFFF (127.255.255.255), so if the version is at least 0x80000000 (128.0.0.0).
Mitigation
There is no known mitigation.
The upgrade to the latest stable version is highly recommended.
WSA-2025-2: [Core] Integer overflow in base32 decode/encode functions.
An integer overflow can happen when looping over items in a list.
This can only happen in rare conditions on 32 and 64-bit systems, as the list must contain more than 2,147,483,647 elements.
On 16-bit systems, this happens with a list that contains more than 32,767 elements.
Mitigation
There is no known mitigation.
The upgrade to the latest stable version is highly recommended.