Sfoglia il codice sorgente

check: improve logging for TAM issues, fixes #7797

Thomas Waldmann 1 anno fa
parent
commit
e0542077b0
1 ha cambiato i file con 6 aggiunte e 1 eliminazioni
  1. 6 1
      src/borg/archive.py

+ 6 - 1
src/borg/archive.py

@@ -1442,13 +1442,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)
@@ -1693,6 +1697,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