[Bug 2044852] Re: libgcrypt < 1.10.2 returns wrong sha3 hashes for inputs > 4 GiB
Timo Aaltonen
2044852 at bugs.launchpad.net
Fri Dec 8 13:14:56 UTC 2023
Hello Tobias, or anyone else affected,
Accepted libgcrypt20 into jammy-proposed. The package will build now and
be available at
https://launchpad.net/ubuntu/+source/libgcrypt20/1.9.4-3ubuntu3.1 in a
few hours, and then in the -proposed repository.
Please help us by testing this new package. See
https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how
to enable and use -proposed. Your feedback will aid us getting this
update out to other Ubuntu users.
If this package fixes the bug for you, please add a comment to this bug,
mentioning the version of the package you tested, what testing has been
performed on the package and change the tag from verification-needed-
jammy to verification-done-jammy. If it does not fix the bug for you,
please add a comment stating that, and change the tag to verification-
failed-jammy. In either case, without details of your testing we will
not be able to proceed.
Further information regarding the verification process can be found at
https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in
advance for helping!
N.B. The updated package will be released to -updates after the bug(s)
fixed by this package have been verified and the package has been in
-proposed for a minimum of 7 days.
** Changed in: libgcrypt20 (Ubuntu Jammy)
Status: In Progress => Fix Committed
** Tags added: verification-needed verification-needed-jammy
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to libgcrypt20 in Ubuntu.
https://bugs.launchpad.net/bugs/2044852
Title:
libgcrypt < 1.10.2 returns wrong sha3 hashes for inputs > 4 GiB
Status in libgcrypt20 package in Ubuntu:
Fix Released
Status in libgcrypt20 source package in Jammy:
Fix Committed
Status in libgcrypt20 source package in Lunar:
Fix Released
Status in libgcrypt20 source package in Mantic:
Fix Released
Status in libgcrypt20 source package in Noble:
Fix Released
Bug description:
[ Impact ]
SHA3 produces wrong results for inputs bigger than 4 GiB
[ Test Plan ]
Calculate sha3 hash of a big input file and compare with output of
another implementation like OpenSSL.
Expected behavior: same output
Actual behavior: different output
Run reproducer attached below (if your machine can afford to allocate 5G RAM
at once) and see that the patch fixes the assertion error.
[ Where problems could occur ]
People relying on the broken hash might be surprised by the new fixed
result. The impact is hopefully low since SHA3 from libgcrypt is not
too widely used, especially not with this input size.
[ Other Info ]
From upstream bug report:
The SHA3 functions give wrong results for inputs larger than 4GB,
because the originally size_t argument handled as unsigned int in
keccak_write and leads to integer overflows. This does not happen if
the data is fed into the md_write by smaller chunks. More information
and reproducers are available from Clemens in the attached bug.
The fix that should solve the problem (use of the size_t) is available
now at gitlab: https://gitlab.com/redhat-crypto/libgcrypt/libgcrypt-
mirror/-/merge_requests/6 Comments welcomed.
I was considering updating the some of the hash tests to capture this
issue, but did not find a simple way to do that yet so I will keep it
on you to decide if you believe some regression test is needed here.
Upstream Bug: https://dev.gnupg.org/T6217
Upstream Fix: https://dev.gnupg.org/rC9c828129b2058c3f36e07634637929a54e8377ee
[ WARNING ]
!!! Warning !!!
hashtest.c reproducer allocates 5GB of RAM, do not run on 32-bit
architectures.
Do not run if you don't have that much RAM free, as it will likely
trigger OOM and may kill your machine.
!!! Warning !!!
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libgcrypt20/+bug/2044852/+subscriptions
More information about the foundations-bugs
mailing list