On 02/01/2018 04:17 AM, Michał Górny wrote:
> Issue an explicit warning if the Manifest timestamp is 24 hours behind
> the system clock. This is meant to detect attacks based on preventing
> the user from upgrading.
> ---
>  pym/portage/sync/modules/rsync/rsync.py | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/pym/portage/sync/modules/rsync/rsync.py 
> b/pym/portage/sync/modules/rsync/rsync.py
> index b7758c2c3..9c352b139 100644
> --- a/pym/portage/sync/modules/rsync/rsync.py
> +++ b/pym/portage/sync/modules/rsync/rsync.py
> @@ -6,6 +6,7 @@ import logging
>  import time
>  import signal
>  import socket
> +import datetime
>  import io
>  import re
>  import random
> @@ -339,6 +340,11 @@ class RsyncSync(NewBase):
>                                               ts = m.find_timestamp()
>                                               if ts is None:
>                                                       raise 
> RuntimeError('Timestamp not found in Manifest')
> +                                             if (datetime.datetime.utcnow() 
> - ts.ts).days > 1:
> +                                                     out.ewarn('Manifest is 
> over 24 hours old, this is suspicious!')
> +                                                     out.ewarn('You may want 
> to try using another mirror and/or reporting this one:')
> +                                                     out.ewarn('  %s' % 
> (dosyncuri,))
> +                                                     out.ewarn('')
>  
>                                               out.einfo('Manifest timestamp: 
> %s UTC' % (ts.ts,))
>                                               out.einfo('Valid OpenPGP 
> signature found:')
> 

This warning is gentoo-centric. We probably want to be able to override
the number of days via layout.conf and repos.conf.
-- 
Thanks,
Zac

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to