Merge tag 'v0.32.7'

Merge branch created for security release v0.32.7 back to master.

Contains fix for CVE-2026-62943, along with cherry-picked minor
bugfixes.
master
Axel Burri 2026-07-19 16:39:09 +02:00
commit a47e8b7e0e
7 changed files with 25 additions and 11 deletions

View File

@ -1,3 +1,17 @@
btrbk-0.32.7
* MIGRATION
- Update ssh_filter_btrbk.sh on remote hosts.
- All users using ssh_filter_btrbk.sh in their authorized_keys
configurations should upgrade immediately.
* This release fixes a critical security vulnerability
(CVE-2026-62943) in ssh_filter_btrbk.sh.
Specially crafted commands can bypass filter checks and execute
arbitrary commands. Applies to remote hosts using
ssh_filter_btrbk.sh in authorized_keys for command filtering.
Thanks to @machin0r for responsible disclosure.
* Minor bugfixes, spelling and documentation improvements.
btrbk-0.32.6 btrbk-0.32.6
* Fix backup of unrelated (by parent_uuid) snapshots (close #339). * Fix backup of unrelated (by parent_uuid) snapshots (close #339).

2
btrbk
View File

@ -2,7 +2,7 @@
# #
# btrbk - Create snapshots and remote backups of btrfs subvolumes # btrbk - Create snapshots and remote backups of btrfs subvolumes
# #
# Copyright (C) 2014-2023 Axel Burri # Copyright (C) 2014-2026 Axel Burri
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by

View File

@ -1,7 +1,7 @@
btrbk(1) btrbk(1)
======== ========
:date: 2023-03-25 :date: 2026-07-19
:release-version: 0.32.6 :release-version: 0.32.7
:man manual: Btrbk Manual :man manual: Btrbk Manual
:man source: Btrbk {release-version} :man source: Btrbk {release-version}

View File

@ -1,7 +1,7 @@
btrbk.conf(5) btrbk.conf(5)
============= =============
:date: 2023-03-25 :date: 2026-07-19
:release-version: 0.32.6 :release-version: 0.32.7
:man manual: Btrbk Manual :man manual: Btrbk Manual
:man source: Btrbk {release-version} :man source: Btrbk {release-version}

View File

@ -1,7 +1,7 @@
lsbtr(1) lsbtr(1)
======== ========
:date: 2023-03-25 :date: 2026-07-19
:release-version: 0.32.6 :release-version: 0.32.7
:man manual: Btrbk Manual :man manual: Btrbk Manual
:man source: Btrbk {release-version} :man source: Btrbk {release-version}

View File

@ -1,7 +1,7 @@
ssh_filter_btrbk(1) ssh_filter_btrbk(1)
=================== ===================
:date: 2023-03-25 :date: 2026-07-19
:release-version: 0.32.6 :release-version: 0.32.7
:man manual: Btrbk Manual :man manual: Btrbk Manual
:man source: Btrbk {release-version} :man source: Btrbk {release-version}

View File

@ -96,12 +96,12 @@ reject_filtered_cmd()
# allow multiple paths (e.g. "btrfs subvolume snapshot <src> <dst>") # allow multiple paths (e.g. "btrfs subvolume snapshot <src> <dst>")
allow_cmd_match="(${allow_list})( ${option_match})*( ${path_match})+" allow_cmd_match="(${allow_list})( ${option_match})*( ${path_match})+"
stream_in_match="(${decompress_match} \| )?(${mbuffer_match} \| )?" stream_in_match="(${decompress_match} \| )?(${mbuffer_match} \| )?"
stream_out_match="( \| ${mbuffer_match})?( \| ${compress_match}$)?" stream_out_match="( \| ${mbuffer_match})?( \| ${compress_match})?"
# `grep`s `-q`-option is not used as it may cause an exit status of `0` even # `grep`s `-q`-option is not used as it may cause an exit status of `0` even
# when an error occurred. # when an error occurred.
allow_stream_match="^${stream_in_match}${allow_cmd_match}${stream_out_match}" allow_stream_match="^${stream_in_match}${allow_cmd_match}${stream_out_match}$"
if printf '%s' "${SSH_ORIGINAL_COMMAND}" | grep -E "${allow_stream_match}" >/dev/null 2>/dev/null; then if printf '%s' "${SSH_ORIGINAL_COMMAND}" | grep -E "${allow_stream_match}" >/dev/null 2>/dev/null; then
return 0 return 0
fi fi