v4.10.0Desktop
Added 9
- Add command /theme
- Add built-in light theme applied automatically on first start on light-background terminals
- Add themable flag on configuration options
- Add options weechat.look.theme and weechat.look.theme_backup
- Add function theme_register to API
- Add filter t:themable to fset
- Add relay/api resource GET /api/scripts
- Add option relay.network.unix_socket_permissions
- Add info script_languages to script
Changed 6
- Improve speed of /upgrade with a lot of buffers and lines
- Improve speed of display of long words in chat area
- Add condition on connected relay api clients in default value of option weechat.look.hotlist_add_conditions
- Add /mute in default command for key Alt+= (toggle filters)
- Change type of parameter pos_option_name to const char ** in function config_search_with_string
- Add field last_read_line_id in relay/api GET /api/buffers
Fixed 4
- Fix infinite loop when option weechat.look.read_marker_string is set to a string with a width of zero
- Fix option weechat.look.color_real_white not applied when color is white on 16+ colors terminals
- Fix buffer overflow in connection to SOCKS5 proxy
- Fix infinite loop in function string_replace when the search string is empty
Added
- core: add command
/theme(#1338) - core: add built-in "light" theme, applied automatically on first start on light-background terminals (#1338)
- core: add
themableflag on configuration options (#1338) - core: add options weechat.look.theme and weechat.look.theme_backup (#1338)
- api: add function theme_register (#1338)
- fset: add filter
t:themable(#1338) - relay/api: add resource
GET /api/scripts - relay: add option relay.network.unix_socket_permissions (#2317)
- script: add info "script_languages"
Changed
- core: improve speed of
/upgradewith a lot of buffers and lines (#2338, #2339, #2341) - core: improve speed of display of long words in chat area (#2336)
- core: add condition on connected relay api clients in default value of option weechat.look.hotlist_add_conditions
- core: add
/mutein default command for keyAlt+=(toggle filters) - api: change type of parameter "pos_option_name" to "const char **" in function config_search_with_string
- relay/api: add field "last_read_line_id" in GET /api/buffers
Fixed
- core: fix infinite loop when option weechat.look.read_marker_string is set to a string with a width of zero (#2337)
- core: fix option weechat.look.color_real_white not applied when color is "white" on 16+ colors terminals (#1742)
- core: fix buffer overflow in connection to SOCKS5 proxy (#2325)
- api: fix infinite loop in function string_replace when the search string is empty
- api: do not free dynamic string on error in function string_dyn_concat
- irc: fix tag in message with list of names when joining a channel
- fset: remove error displayed in core buffer when clicking with the mouse below the last option displayed
- guile, lua, perl, python, ruby, tcl: fix conversion of dates in the API functions
- irc: fix conversion of dates in received messages
Security
- core: fix buffer overflow in display of time in chat area with a custom time format (#2342)
- core: fix integer overflow in size calculation when evaluating "${hide:...}" and "${base_encode:...}" (#2335)
- core: fix possible buffer overflow in command /color alias (#2330)
- core: fix possible buffer overflow in list of commands displayed by /help (#2330)
- irc: fix heap use-after-free when a batched message causes a disconnection from the server (GHSA-rfmh-3r7f-jpx5)
- irc: fix stack buffer overflow when splitting a JOIN message with a large list of channels and keys (GHSA-q2xg-9ggx-77mr)
- irc: limit size of data received from the server to prevent memory exhaustion
- irc: fix out-of-bounds read on incoming DCC command with a quoted filename ending the message (#2322)
- logger: fix path traversal in log file name when a buffer local variable contains the char used internally to protect directory separators (#2340)
- relay: fix use-after-free and double free on remote buffer (GHSA-hx59-4hq9-6vmw)
- relay: fix authentication bypass with the "plain" password hash algorithm (GHSA-68ff-gq39-pqjm)
- relay: limit size of decompressed websocket frame with permessage-deflate to prevent memory exhaustion (GHSA-v2v4-45wm-5cr3, CVE-2026-53524)
- relay: limit size of received websocket frame and HTTP body to prevent memory exhaustion
- relay: limit size of partial message received while reading an HTTP request to prevent memory exhaustion
- relay: fix timing attack on password authentication (GHSA-vhv8-g2r9-cwcc, CVE-2026-53525)
- relay: fix out-of-bounds read in dump of data (#2324)
- relay/api: fix memory leak in resources "handshake", "input" and "completion" (GHSA-wmpc-m6g9-fwj8)
- relay: fix read of uncompressed websocket frame (#2331)
- api, relay: fix timing attack on TOTP validation (GHSA-vhv8-g2r9-cwcc, CVE-2026-53525)
- xfer: replace directory separator in remote nick by underscore in download filename to prevent writing the file outside the download directory (#2321)
- xfer: fix out-of-bounds read when receiving empty line in DCC chat (#2323)
- xfer: fix out-of-bounds write in xfer file transfer resume (#2326)