summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThomas Waldmann <tw@waldmann-edv.de>2023-09-01 15:00:51 +0200
committerThomas Waldmann <tw@waldmann-edv.de>2023-09-03 17:15:09 +0200
commit1338646b9d623c62c32710f74974f748f062a8ce (patch)
tree46bf37df563c745c76725ec5c23794dc0a855bcf /src
parent270f33b7ed30c0e50b5c2f5352815595549023be (diff)
check: improve logging for TAM issues, fixes #7797
Diffstat (limited to 'src')
-rw-r--r--src/borg/archive.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/borg/archive.py b/src/borg/archive.py
index 964e32398..defbb28a0 100644
--- a/src/borg/archive.py
+++ b/src/borg/archive.py
@@ -1999,13 +1999,17 @@ class ArchiveChecker:
# are likely looking at an archive item here, also check the TAM authentication:
try:
archive, verified, _ = self.key.unpack_and_verify_archive(data, force_tam_not_required=False)
- except IntegrityError:
+ except IntegrityError as integrity_error:
# TAM issues - do not accept this archive!
# either somebody is trying to attack us with a fake archive data or
# we have an ancient archive made before TAM was a thing (borg < 1.0.9) **and** this repo
# was not correctly upgraded to borg 1.2.5 (see advisory at top of the changelog).
# borg can't tell the difference, so it has to assume this archive might be an attack
# and drops this archive.
+ name = archive.get(b"name", b"<unknown>").decode("ascii", "replace")
+ logger.error("Archive TAM authentication issue for archive %s: %s", name, integrity_error)
+ logger.error("This archive will *not* be added to the rebuilt manifest! It will be deleted.")
+ self.error_found = True
continue
# note: if we get here and verified is False, a TAM is not required.
archive = ArchiveItem(internal_dict=archive)
@@ -2271,6 +2275,7 @@ class ArchiveChecker:
# when upgrading to borg 1.2.5, users are expected to TAM-authenticate all archives they
# trust, so there shouldn't be any without TAM.
logger.error("Archive TAM authentication issue for archive %s: %s", info.name, integrity_error)
+ logger.error("This archive will be *removed* from the manifest! It will be deleted.")
self.error_found = True
del self.manifest.archives[info.name]
continue