Subject: hash built-in function in python3 is salted

From: "Fernando M. Maresca (Monitoring Station S.A.)" <[email-masked]>
Date: Wed, 05 Oct 2022 09:51:12 -0300

Package: greylistd
Version: 0.8.8.7
Severity: grave

The hash() function used to hash triplets in python3 has a different
behaviour that the python2 version. 

py3 hash() is salted, so the hash it produces for the same input text differs between runs.

That produces two problems in greylistd:
- multiple entries added to the lists 
- checks produces different keys

To reproduce:
- start greylistd

- greylist clear
- greylist list --white (verify is empty)
- greylist add --white a.com
- greylist list --white (verify a.com is in wl)
- greylist check a.com (should be white)

- restart greylistd
- greylist list --white (verify a.com is in wl)
- greylist check a.com (returns grey, should be white)

Thank you.

-- System Information:
Distributor ID:	Devuan
Description:	Devuan GNU/Linux 3 (beowulf)
Release:	3
Codename:	beowulf
Architecture: x86_64

Kernel: Linux 5.10.0-0.bpo.7-amd64 (SMP w/12 CPU cores)
Locale: LANG=es_AR.UTF-8, LC_CTYPE=es_AR.UTF-8 (charmap=UTF-8), LANGUAGE=es_AR:es (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)
LSM: AppArmor: enabled

Versions of packages greylistd depends on:
ii  adduser                3.118
ii  debconf [debconf-2.0]  1.5.71+deb10u1
ii  python                 2.7.16-1

Versions of packages greylistd recommends:
ii  exim4  4.92-8+deb10u6

greylistd suggests no packages.

-- debconf-show failed