VersionDrift
Product

Proxmox Backup Server 3.2.5 → 3.3.7

16 releases · 4 breaking changes · 2 security fixes · 0 advisories fixed

2security4breaking0deprecated62feature31fix

Breaking changes

  • breaking fix #4382: api: access control: remove permissions of token on deletion. in 3.3.7
  • breaking fix #3336: datastore: remove group if the last snapshot is removed to avoid confusing situations where the group directory still exists and blocks re-creating a group with another owner even though the empty group was not visible in the web UI. in 3.3.5
  • breaking Improvements to Secure Boot management. With the need to update the revocation database embedded in the shim boot loader, some edge-cases were discovered and improved in the proxmox-secure-boot metapackage. Ship an apt pinning snippet to ensure that Proxmox provided packages are installed, even if… in 3.3
  • breaking fix #5861: ui: remove minimum required username length in dialog for changing the owner of a backup group, as PBS support usernames shorter than 4 characters since a while now. in 3.2.9

Security changes

  • security api: datastore list: move checking if a datastore is mounted after we ensured that the user may actually access it. While this had no effect security wise, it could significantly increase the cost of this API endpoint in big setups with many datastores and many tenants that each have only access… in 3.3.3
  • security Fix a RCE vulnerability in the shim bootloader used for Secure Boot support. See PSA-2024-00007-1 for details. in 3.3

Every release in between

3.3.7 Apr 5, 2025
fixfix #5982: garbage collection: add a check to ensure that the underlying file system supports and honors file access time (atime) updates. The check is performed once on datastore creation and on start of every garbage collection (GC) task, just to be sure. It can be disabled in the datastore…
othergarbage collection: support setting a custom access time cutoff, overriding the default of one day and five minutes.
otherui: expose flag for GC access time support safety check and the access time cutoff override in datastore tuning options.
otherdocs: describe rationale for new GC access time update check setting and the access time cutoff check in tuning options.
featureaccess control: add support to mark a specific authentication realm as default selected realm for the login user interface.
breakingfix #4382: api: access control: remove permissions of token on deletion.
fixfix #3887: api: access control: allow users to regenerate the secret of an API token without changing any existing ACLs.
fixfix #6072: sync jobs: support flags to limit sync to only encrypted and/or verified snapshots.
featureui: datastore tuning options: expose overriding GC cache capacity so that admins can either restrict the peak memory usage during GC or allow GC to use more memory to reduce file system IO even for huge (multiple TiB) referenced data in backup groups.
otherui: datastore tuning options: increase width and rework labels to provide a tiny bit more context about what these options are.
otherui: sync job: increase edit window width to 720px to make it less cramped.
otherui: sync job: small field label casing consistency fixes.
3.3.6 Apr 3, 2025
otherdatastore: ignore group locking errors when removing snapshots, they normally happen only due to old-locking, and the underlying snapshot is deleted in any case at this point, so it's no help to confuse the user.
featureapi: datastore: add error message on failed removal due to old locking and tell any admin what they can do to switch to the new locking.
featureui: only add delete parameter on token edit, not when creating tokens.
featurepbs-client: allow reading fingerprint from system credential.
otherdocs: client: add section about system credentials integration.
3.3.5 Apr 2, 2025
otherapi: config: use guard for unmounting on failed datastore creation
otherclient: align description for backup specification to docs, using archive-name and type over label and ext.
featureclient: read credentials from CREDENTIALS_DIRECTORY environment variable following the "System and Service Credentials" specification. This allows users to use native systemd capabilities for credential management if the proxmox-backup-client is used in systemd units or, e.g., through a wrapper…
fixfix #3935: datastore/api/backup: move datastore locking to '/run' to avoid that lock-files can block deleting backup groups or snapshots on the datastore and to decouple locking from the underlying datastore file-system.
fixapi: fix race when changing the owner of a backup-group.
breakingfix #3336: datastore: remove group if the last snapshot is removed to avoid confusing situations where the group directory still exists and blocks re-creating a group with another owner even though the empty group was not visible in the web UI.
featurenotifications: clean-up and add dedicated types for all templates as to allow declaring that interface stable in preparation for allowing overriding them in the future (not included in this release).
featuretape: introduce a tape backup job worker-thread option for restores. Depending on the underlying storage using more threads can dramatically improve the restore speed. Especially fast storage with low penalty for random access, like flash-storage (SSDs) can profit from using more worker threads.…
othergarbage collection: generate index file list via datastore iterators in a structured manner.
fixfix #5331: garbage collection: avoid multiple chunk atime updates by keeping track of the recently marked chunks in phase 1 of garbage to avoid multiple atime updates via relatively expensive utimensat (touch) calls. Use a LRU cache with size 32 MiB for tracking already processed chunks, this…
featurelogging helper: use new builder initializer – not functional change intended.
3.3.4 Mar 13, 2025
fixfix #6185: client/docs: explicitly mention archive name restrictions
otherdocs: using-the-installer: adapt to raised root password length requirement
otherdisks: wipe: replace dd with write_all_at for zeroing disk
fixfix #5946: disks: wipe: ensure GPT header backup is wiped
otherdocs: fix hash collision probability comparison
3.3.3 Feb 11, 2025
securityapi: datastore list: move checking if a datastore is mounted after we ensured that the user may actually access it. While this had no effect security wise, it could significantly increase the cost of this API endpoint in big setups with many datastores and many tenants that each have only access…
fixRevert "fix #5710: api: backup: stat known chunks on backup finish" due to a big performance impact relative to what this is protectign against. We will work out a more efficient fix for this issue in the future.
otherprune simulator: show backup entries that are kept also in the flat list of backups, not just in the calendar view.
otherdocs: improve the description for the garbage collection's cut-off time
otherpxar extract: correctly honor the overwrite flag
featureapi: datastore: add missing log context for prune to avoid a case where the worker state being unknown after it finished.
otherdocs: add synopsis and basic docs for prune job configuration
otherbackup verification: handle manifest update errors as non-fatal to avoid that the job fails, as we want to continue with verificating the rest to ensure we uncover as much potential problems as possible.
fixfix #4408: docs: add 'disaster recovery' section for tapes
fixfix #6069: prune simulator: correctly handle schedules that mix both, a range and a step size at once.
fixclient: pxar: fix a race condition where the backup upload stream can miss an error from the create archive function, because the error state is only set after the backup stream was already polled. This avoids a edge case where a file-based backup was incorrectly marked as having succeeded while…
3.3.2 Dec 10, 2024
fixfile-restore: fix regression with the new blockdev method used to pass disks of a backup to the isolated virtual machine.
3.3.1 Dec 3, 2024
featuretree-wide: add missing O_CLOEXEC flags to openat calls to avoid passing any open FD to new child processes which can have undesired side-effects like keeping a lock open longer than it should.
fixcargo: update proxmox dependency of rest-server and sys crates to include some fixes for open FDs and a fix for the active task worker tracking, as on failing to update the index file the daemon did not finished the worker, causing a reference count issue where an old daemon could keep running…
otherui: check that store is set before trying to select anything in the garbage collection (GC) job view.
3.3 Nov 28, 2024 Release notes ↗
featureLatest 6.8.12-4 Kernel as new stable default
featurePush direction for sync jobs. Sync jobs can already pull backup snapshots from remote Proxmox Backup Server instances. The new push direction allows copying backup snapshots from the local instance to remote instances. This can be useful in setups where the remote instance cannot initiate…
featureSupport for removable datastores. Datastores can now be created on removable media for offline storage. After unmounting the removable datastore, the medium can be removed. The datastore can be used on multiple Proxmox Backup Server instances.
featureWebhook target for the notification system. The new webhook notification target allows notification events to trigger HTTP requests. Request headers and body can be customized and can contain notification metadata. This allows users to push notifications to any target that supports webhooks.
featureNew change detection modes for speeding up file-based backups. Metadata and data of backup snapshots are now stored in two separate archives. Optionally, files that have not changed since the previous backup snapshot can be identified using the previous backup snapshot's metadata archive.…
featureAllow to set a consent banner that users must acknowledge before logging in (issue 5463). This can be required for compliance reasons. The banner supports Markdown and can be set in Configuration → Other → General → Consent Text.
featureColumns in the "Prune & GC Jobs" view are now sortable (issue 5422).
featureFix a short-lived regression where updating proxmox-backup-server without updating proxmox-widget-toolkit made the GUI inaccessible (issue 5503).
featureFix an issue where the "Change owner" dialog would not accept usernames shorter than 8 characters (issue 5861).
featureDisallow creating a datastore on / via the GUI, as this is most likely unintended.
featureFix an issue where clicking on an external link to the GUI would display a login screen, even if the current session was still valid.
featureShow only installed services in the node's system panel by default, but optionally allow showing all services (issue 5611).
featureRight-align numbers in the S.M.A.R.T. values table (issue 5831).
featureFix an issue where the installed Proxmox Backup Server version was incorrectly rendered with a hyphen instead of a dot.
featureImproved translations, among others:
featureBulgarian (NEW!)
featureArabic
featureFrench
featureGerman
featureItalian
featureJapanese
featureRussian
featureSpanish
featureTraditional Chinese
featurePush direction for sync jobs (issue 3044). Sync jobs can already pull backup snapshots from remote Proxmox Backup Server instances. The new push direction allows copying backup snapshots from the local instance to remote instances. This can be useful in setups where the remote instance cannot…
featurePull sync jobs can now optionally resync corrupt chunks (issue 3786). When syncing a backup group from a remote, the sync job checks whether the last local snapshot has previously failed verification. If this is the case, the sync job overwrites the local snapshot with the remote snapshot. As the…
featureSupport for removable datastores. Datastores can now be created on removable media for offline storage. After unmounting the removable datastore in the GUI, the medium can be removed. The datastore can be used on multiple Proxmox Backup Server instances. Multiple datastores per device are also…
featureCheck for known but missing chunks when creating a new backup snapshot (issue 5710). Known chunks are chunks that are contained in the previous snapshot of the backup group. When creating a new backup snapshot, the list of known chunks is sent to the client, so the client can skip uploading known…
featureFix a regression where an early HTTP connection close could result in high CPU usage and denial-of-service (issue 5868). Early connection closes are used by some monitoring solutions performing health checks.
featureAllow reusing already-existing datastores, but disallow creating datastores in non-empty directories (issue 5439).
featureFix a regression that prevented legacy notifications for successful sync jobs.
featureFix an issue where a delayed TLS Client Hello would cause the API server to respond with a plain HTTP 400 "Bad Request" response (issue 5105).
featureAbort garbage collection if a nested datastore is encountered, as garbage collection cannot be done safely on nested datastores.
featureUpdate choices of cryptographic primitives:
featureCSRF tokens now use a standard HMAC construction.
featureMigrate to yescrypt for hashing passwords. Old hashes will be upgraded to the new scheme once a user logs in.
featureMigrate to Ed25519 for authentication tickets.
featureUse constant-time comparison for additional hardening against timing side-channels.
breakingImprovements to Secure Boot management. With the need to update the revocation database embedded in the shim boot loader, some edge-cases were discovered and improved in the proxmox-secure-boot metapackage. Ship an apt pinning snippet to ensure that Proxmox provided packages are installed, even if…
securityFix a RCE vulnerability in the shim bootloader used for Secure Boot support. See PSA-2024-00007-1 for details.
+69 more items in the release notes
3.2.14 Nov 27, 2024
otherpull-sync: do not interpret older missing snapshots as needs-resync
otherapi: directory: use relative path when creating removable datastore
otherui: prune keep input: actually clear value on clear trigger click
fixui: datastore edit: fix empty-text for path field
othersync: push: pass full error context when returning error to job
otherapi: mount removable datastore: only log an informational message if the correct device is already mounted.
featureapi: sync: restrict edit permissions for the new push sync jobs to avoid that a user is able to create or edit sync jobs in push direction, but not able to see them.
fixapi: create datastore: fix checks to avoid that any datastore can contain another one to better handle the case for the new removable datastores.
3.2.13 Nov 26, 2024
otherupdate pxar dependency to fix selective extraction with the newly supported match patterns.
otherreuse-datastore: avoid creating another prune job
featureapi: notification: add API routes for webhook targets
featuremanagement cli: add CLI for webhook targets
otherui: utils: enable webhook edit window
featureui: utils: add task description for mounting/unmounting
featureui: add onlineHelp for consent-banner option
otherdocs: client: fix example commands for client usage
otherdocs: explain some further caveats of the change detection modes
otherui: use same label for removable datastore created from disk
featureapi: maintenance: allow setting of maintenance mode if 'unmounting'
otherdocs: add more information for removable datastores
otherui: sync jobs: revert to single list for pull/push jobs, improve distinction between push and pull jobs through other means.
otherui: sync jobs: change default sorting to 'store' -> 'direction' -> 'id'
featureui: sync jobs: add search filter-box
otherconfig: sync: use same config section type sync for push and pull, note that this breaks existing configurations and needs manual clean-up. As the package versions never made it beyond test this is ignored, as while it's not really ideal we never give guarantees for testing package versions, and…
otherapi: removable datastores: require Sys.Modify permission on /system/disks
featureui: allow resetting unmounting maintenance
otherdatastore: re-phrase error message when datastore is unavailable
fixclient: backup writer: fix regression in progress output
3.2.11 Nov 21, 2024
fixfix #3044: server: implement push support for sync operations
otherpush sync related refactors
3.2.10 Nov 19, 2024
otherapi: disk list: do not fail but just log error on gathering smart data
othercargo: require proxmox-log 0.2.6 to reduce spamming the logs with the whole worker task contents
3.2.9 Nov 14, 2024
otherclient: catalog: fallback to metadata archives for dumping the catalog
otherclient: catalog shell: make the catalog optional and use the pxar accessor for navigation if the catalog is not provided, like its the case for example for split pxar archives.
otherclient: catalog shell: drop payload offset in stat output, as this is a internal value that only helps on debugging some specific development.
fixsync: fix premature return in snapshot-skip filter logic to avoid that the first snapshot newer that the last synced one gets unconditionally included.
breakingfix #5861: ui: remove minimum required username length in dialog for changing the owner of a backup group, as PBS support usernames shorter than 4 characters since a while now.
fixfix #5439: allow one to reuse an existing datastore on datastore creation
otherui: disallow datastore in the file system root, this is almost never what user want and they can still use the CLI for such an edge case.
fixfix #5233: api: tape: add explicit required permissions for the move tape, update tape and destroy tape endpoints, requiring Tape.Modify and Tape.Write on the /tape ACL object path, respectively. This avoids requiring the use of the root account for basic tape management.
otherclient: catalog shell: make the root element its own parent to avoid navigating below archive root, which makes no sense and just causes odd glitches.
otherapi: disk management: avoid retrieving lsblk result twice when listing disks, while it's not overly expensive it certainly does not help to be performant either.
otherapi: disk management: parallelize retrieving the output from smartctl checks.
fixfix #5600: pbs2to3: make check more flexible to allow one to run arbitrary newer '-pve' kernels after upgrade
otherclient: pxar: perform match pattern check for exclusion only once
featureclient: pxar: add debug output for exclude pattern matches to more conveniently debug possible issues.
fixfix #5868: rest-server: handshake detection: avoid infinite loop on connections abort
3.2.8 Oct 18, 2024
otherswitch various log statements in worker tasks to the newer, more flexible proxmox log crate. With this change, errors from task logs are now also logged to the system log, increasing their visibility.
otherdatastore api: list snapshots: avoid calculating protected attribute twice per snapshot, this reduces the amounts of file metadata requests.
otheravoid re-calculating the backup snapshot path's date time component when getting the full path, reducing calls to the relatively slow strftime function from libc.
fixfix #3699: client: prefer the XDG cache directory for temporary files with a fallback to using /tmp, as before.
othersync job: improve log message for when syncing the root namespace.
otherclient: increase read buffer from 8 KiB to 4 MiB for raw image based backups. This reduces the time spent polling between the reader, chunker and uploader async tasks and thus can improve backup speed significantly, especially on setups with fast network and storage.
otherclient benchmark: avoid unnecessary allocation in the AES benchmark, causing artificial overhead. The benchmark AES results should now be more in line with the hardware capability and what the PBS client could already do. On our test system we saw an increase by an factor of 2.3 on this specific…
otherdocs: add external metrics server page
othertfa: webauthn: serialize OriginUrl following RFC6454
featurefactor out apt and apt-repository handling into a new library crate for reuse in other projects. There should be no functional change.
fixfix various typos all over the place found using the rust based typos tool.
featuredatastore: data blob compression: increase compression throughput by switching away from a higher level zstd method to a lower level one, which allows us to control the target buffer size directly and thus avoid some allocation and syscall overhead. We saw the compression bandwidth increase by a…
otherdaily-update: ensure notification system context is initialized.
otherbackup reader: derive if debug messages should be printed from the global log level. This avoids printing some debug messages by default, e.g., the "protocol upgrade done" message from sync jobs.
otherui: user view: disable 'Unlock TFA' button by default to improve UX if no user is selected.
othermanager cli: ensure the worker tasks finishes when triggering a reload of the system network.
fixfix #5622: backup client: properly handle rate and burst parameters. Previously, passing any non-integer value, like 1mb, was ignored.
othertape: read element status: ignore responses where the library specifies that it will return a volume tag but then does not includes that field in the actual response. As both the primary and the alternative volume tag are not required by PBS, this specific error can simply be downgraded to a…
otherpxar: dump archive: print entries to stdout instead of stderr
othersync jobs: various clean-ups and refactoring that should not result in any semantic change.
othermetric collection: put metrics in a cache with a 30 minutes lifetime.
featureapi: add /status/metrics API to allow pull-based metric server to gather data directly.
otherpartial fix #5560: client: periodically show backup progress
otherdocs: add proxmox-backup.node.cfg man page
otherdocs: sync: explicitly mention removed-vanish flag
3.2.7 Jul 3, 2024
otherdocs: drop blanket statement recommending against remote storage
fixui: gc job edit: fix i18n gettext usage
otherpxar: improve error handling, e.g., avoiding duplicate information
featureclose #4763: client: add command to forget (delete) whole backup group with all its snapshots
fixclose #5571: client: fix regression for map command
otherclient: mount: wait for child to return before exiting to provide better UX for some edge paths
fixfix #5304: client: set process uid/gid for .pxarexclude-cli to avoid issues when trying to backup and restore the backup as non-root user.
otherhttp client: keep renewal future running on failed re-auth to make it more resilient against some transient errors, like the request just failing due to network instability.
fixdatastore: fix problem with operations counting for the case where the .chunks/ directory is not available (deleted/moved)
othermanager: use confirmation helper in wipe-disk command
3.2.6 Jun 17, 2024
othertape: disable Programmable Early Warning Zone (PEWZ)
othertape: handle PEWZ like regular early warning
otherdocs: add note for not using remote storages
fixclient: pxar: fix fuse mount performance for split archives
See how far your stack has drifted from upstream. Release data from vendors’ own sources · feed under CC BY 4.0 · Code under AGPL-3.0 Settings Feed status