Skip to content

Conversation

@tabudz
Copy link

@tabudz tabudz commented Feb 28, 2025

Description
This PR fixes a security vulnerability in inflate_table() that was cloned from zlib but did not receive the security patch. The original issue was reported and fixed under madler/zlib@6a04314.
This PR applies the same patch to eliminate the vulnerability.

References
https://nvd.nist.gov/vuln/detail/CVE-2016-9840
madler/zlib@6a04314

inftrees.c was subtracting an offset from a pointer to an array,
in order to provide a pointer that allowed indexing starting at
the offset. This is not compliant with the C standard, for which
the behavior of a pointer decremented before its allocated memory
is undefined. Per the recommendation of a security audit of the
zlib code by Trail of Bits and TrustInSoft, in support of the
Mozilla Foundation, this tiny optimization was removed, in order
to avoid the possibility of undefined behavior.

Signed-off-by: Tan Bui <tanb74653@gmail.com>
@wkozaczuk
Copy link
Collaborator

Hi, I am not familiar with that part of the ZFS code that originates from FreeBSD. Therefore I have no idea if it is logically correct.

What tests have you run to ensure it does not break anything?

Besides the regular unit tests that can be run on ZFS image, we do have some tests/misc-zfs-*cc tests that stress test ZFS. Have you run any of those?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants