Hi Ximin,

> It might be safer to subclass QHash into a deterministic QDetHash or 
> something. This would allow one to use QHash both non-deterministically (to 
> protect against DoS attacks) and deterministically in the same program, 
> depending on the use-case.
>
> For example, the rust compiler internally uses a deterministic hash table but 
> offers a non-deterimistic version in its standard library, see 
> https://github.com/rust-lang/rust/issues/34902 for details.
This is the perfect for upstream bug, a debian patch would be tool
large, and nor really robust.

> You are setting seed = 0 in a header file. If this is a public header file, 
> then anyone that #includes it would lose protection against those attacks, 
> not just pyrcc.
My understanding was that rcc.h is a private header, which is only
included by the python module pyrcc which is also private, and can be
used only within PyQt.
The only alternative I can implement is changing the shell wrapper
(pyrcc5) that calls python3, the QT_HASH_SEED variable can be set in
this wrapper, so it is clear than only pyrcc can be affected.

For sure any upstream solution is better then a debian patch.


--
Federico

_______________________________________________
Python-modules-team mailing list
Python-modules-team@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/python-modules-team

Reply via email to