You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I used the GitHub search to find a similar issue and didn't find it.
I searched the Prefect documentation for this issue.
I checked that this issue is related to Prefect and not one of its dependencies.
Bug summary
The md5 algorithm is compromised and forbidden in FIPS environments.
The Prefect library explicitly uses hashlib.md5 in multiple locations, which makes it impossible to run Prefect 2.x with strict FIPS enforcement. However, Prefect version 1.x can function in strict FIPS environments.
Dask was using md5 for simple hashing (not security) which is permitted in FIPS environments, but it requires an extra parameter introduced in Python 3.9+; see:
The hash_algo is an input parameter to many of the methods in utilities/hashing.py, but it doesn't seem like there's any method to allow the user to override this with a different hashing algorithm.
Ideally, stop using md5 for hashing; but if required follow the example from Dask. Perhaps a sha512 hash would be a better default?
Pandas opted to use UUID instead for their hashing to get around a similar problem, but I don't think that will work with the object hashing Prefect is doing.
Or make it possible for the end-user to easily configure which default hashing algorithm is used across the utilities/hashing.py methods.
The text was updated successfully, but these errors were encountered:
First check
Bug summary
The md5 algorithm is compromised and forbidden in FIPS environments.
The Prefect library explicitly uses hashlib.md5 in multiple locations, which makes it impossible to run Prefect 2.x with strict FIPS enforcement. However, Prefect version 1.x can function in strict FIPS environments.
Dask was using md5 for simple hashing (not security) which is permitted in FIPS environments, but it requires an extra parameter introduced in Python 3.9+; see:
The
hash_algo
is an input parameter to many of the methods inutilities/hashing.py
, but it doesn't seem like there's any method to allow the user to override this with a different hashing algorithm.Reproduction
Error
Versions
Additional context
Ideally, stop using md5 for hashing; but if required follow the example from Dask. Perhaps a sha512 hash would be a better default?
Pandas opted to use UUID instead for their hashing to get around a similar problem, but I don't think that will work with the object hashing Prefect is doing.
Or make it possible for the end-user to easily configure which
default
hashing algorithm is used across theutilities/hashing.py
methods.The text was updated successfully, but these errors were encountered: