Ali Firas discovered that zlib incorrectly handled certain non-blocking write operations. An attacker could possibly use this issue to trigger a heap buffer overflow, resulting in a denial of service or arbitrary code execution.
zlib 1.3.1.2 through 1.3.2 Heap Buffer Overflow via gzvacate
A flaw was found in ml-metadata. The statically-linked gRPC stack in ml-metadata is outdated, making it vulnerable to known HTTP/2 denial of service (DoS) issues. An in-cluster attacker, with network access to the MLMD pod, could exploit these vulnerabilities by sending specially crafted HTTP/2 requests. This could lead to a denial of service by crashing the MLMD pod, disrupting all pipeline runs in the affected namespace.
Finding The statically-linked gRPC stack is pinned to v1.46.3 (2022) in the Bazel WORKSPACE file, predating multiple HTTP/2 DoS CVEs that are directly reachable on the network listener:
WORKSPACE:116-117 comgithubgrpcgrpc → gRPC 1.46.3 WORKSPACE:129-130 comgoogleprotobuf → protobuf 3.21.12 WORKSPACE:173-176 zlib → 1.3 The MLMD server is a network-facing gRPC listener (FIND-001: no auth), so gRPC-layer DoS CVEs are directly reachable from any pod that can open a TCP connection to :8080.
The Bazel WORKSPACE pins are content-addressed (sha256), so the issue is staleness, not mutability. Renovate is present (.github/renovate.json) but evidently not covering Bazel httparchive entries.
File: WORKSPACE:116-117,129-130,173-176 Repository: red-hat-data-services/ml-metadata Framework: ASVS V14.2.1; OWASP K8s K07 Vulnerable Components; OpenSSF Scorecard Vulnerabilities CWE: CWE-1395 / CWE-1104 CVSS v3.1: 7.5 (High) AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H (inherits gRPC HTTP/2 DoS vectors)
RHOAI Mitigation The DSPO-deployed NetworkPolicy restricts who can reach MLMD port 8080 to only KFP v2 driver pods and DSP components. This limits the attack surface but does not eliminate it — a compromise of a KFP driver pod or DSP component could exploit these CVEs to crash the MLMD pod and disrupt all pipeline runs in the namespace.
Impact An in-cluster attacker who can reach the MLMD pod (within the NetworkPolicy allowlist) can crash or resource-exhaust the MLMD pod via known gRPC/HTTP2 frame-handling bugs, disrupting all pipeline runs in the namespace.
Context ml-metadata is planned for removal from the product (several months out). The stale dependency risk remains active until removal is complete.
Remediation Bump WORKSPACE pins: gRPC >= 1.62, protobuf >= 25.x, zlib >= 1.3.1. Extend Renovate configuration to cover Bazel httparchive entries.
Last updated 1 September 2026
On Tuesday 2026-02-17 22:21, Simon Josefsson wrote: Sam James <sam () gentoo org> writes: ZLB-01-001 WP2: Heap Buffer Overflow via Legacy gzprintf Implementation (High) That vulnerability seems to require that zlib was built with -DNOvsnprintf -DNOsnprintf, targetting a system lacking 'snprintf'.
Does anyone know of a real-world environment using that configuration? Does Borland C++ 1.01 for DOS count?
On 1/6/26 09:31, Alan Coopersmith wrote: I didn't see any mention of this in https://github.com/madler/zlib so I filed https://github.com/madler/zlib/issues/1142 .
Note once again, this is in a utility in the contrib directory, not the main zlib library itself. (And 1.3.1.2 is not an actual release, but a git tag being used for other purposes - see https://github.com/madler/zlib/discussions/1128 .) The bug has been closed now that untgz has been removed from the zlib contrib directory so that people stop harassing the zlib maintainers about code they don't maintain:
https://github.com/madler/zlib/commit/1a40058a92d525aa49a6eac698cfde500fc9b92f
-- -Alan Coopersmith- alan.coopersmith () oracle com Oracle Solaris Engineering - https://blogs.oracle.com/solaris
zlib versions up to and including 1.3.1.2 contain a global buffer overflow in the untgz utility. The TGZfname() function copies an attacker-supplied archive name from argv[] into a fixed-size 1024-byte static global buffer using an unbounded strcpy() call without length validation. Supplying an archive name longer than 1024 bytes results in an out-of-bounds write that can lead to memory corruption, denial of service, and potentially code execution depending on compiler, build flags, architecture, and memory layout. The overflow occurs prior to any archive parsing or validation.
zlib versions up to and including 1.3.1.2 include a global buffer overflow in the untgz utility located under contrib/untgz. The vulnerability is limited to the standalone demonstration utility and does not affect the core zlib compression library. The flaw occurs when a user executes the untgz command with an excessively long archive name supplied via the command line, leading to an out-of-bounds write in a fixed-size global buffer.
I'm trying to implement some sort of container image scanning to our CI pipelines. Trivy seems perfect, but it's very sensitive. One of our images is coming up with a critical for zlib that doesn't sound that critical, and which I assume is coming up because it's using a base image based on Debian Bookworm (it's an official Microsoft container registry image, so not something I can update). Docker Scout and AWS Inspector don't show any criticals, and only 1 high vs the 15 Trivy found.
Does anyone else use Trivy, and do you have these issues? I don't really want to put this in the pipeline and then have everyone ignore the results because of false positives. Should I just go with sending our SBOM to Inspector or something?
gzip integer overflow
Last updated 13 November 2024
A security vulnerability was found in zlib. The flaw triggered a heap-based buffer in inflate in the inflate.c function via a large gzip header extra field. This flaw is only applicable in the call inflateGetHeader.
zlib before 1.2.12 allows memory corruption when deflating (i.e., when compressing) if the input has many distant matches.
zlib before 1.2.12 allows memory corruption when deflating (i.e., when compressing) if the input has many distant matches.
AMD. A buffer overflow issue was addressed with improved memory handling.
An upgrade to zlib 1.2.11 to fix a number of low severity CVEs that were present in zlib 1.2.8.
An upgrade to zlib 1.2.11 to fix a number of low severity CVEs that were present in zlib 1.2.8.
An old inffast.c optimization turns out to not be optimal anymore with modern compilers, and furthermore was not compliant with the C standard, for which decrementing a pointer before its allocated memory is undefined.
External References:
https://wiki.mozilla.org/images/0/09/Zlib-report.pdf https://docs.google.com/document/d/10i1KZS5so8xDqH2rplRa2xet0tyTvvJlLbQQmZIUIKE/edit#heading=h.t13tvnx4loq7
Upstream patch:
https://github.com/madler/zlib/commit/9aaec95e82117c1cb0f9624264c3618fc380cecb
CVE assignment:
http://seclists.org/oss-sec/2016/q4/602
An upgrade to zlib 1.2.11 to fix a number of low severity CVEs that were present in zlib 1.2.8.
This release corrects several security vulnerabilities in componentsshipped as part of the Red Hat Network Satellite Server Solaris client. Ina typical operating environment, these components are not used by theSatellite Server in a vulnerable manner. These security updates will reducerisk should these components be used by other applications.Several flaws in Zlib were discovered. An attacker could create acarefully-crafted compressed stream that would cause an application tocrash if the stream was opened by a user. (CVE-2005-2096, CVE-2005-1849)A buffer overflow was discovered in the OpenSSL SSLgetsharedciphers()utility function. An attacker could send a list of ciphers to anapplication that used this function and overrun a buffer (CVE-2006-3738).A flaw in the SSLv2 client code was discovered. If a client applicationused OpenSSL to create an SSLv2 connection to a malicious server, thatserver could cause the client to crash. (CVE-2006-4343)An attack on OpenSSL PKCS #1 v1.5 signatures was discovered. Where an RSAkey with exponent 3 was used an attacker could, potentially, forge a PKCS#1 v1.5 signature that would be incorrectly verified by implementationsthat do not check for excess data in the RSA exponentiation result of thesignature. This issue affected applications that use OpenSSL to verifyX.509 certificates as well as other uses of PKCS #1 v1.5. (CVE-2006-4339)OpenSSL contained a software work-around for a bug in SSL handling inMicrosoft Internet Explorer version 3.0.2. It is enabled in most serversthat use OpenSSL to provide support for SSL and TLS. This work-around wasvulnerable to a man-in-the-middle attack which allowed a remote user toforce an SSL connection to use SSL 2.0, rather than a stronger protocol,such as SSL 3.0 or TLS 1.0. (CVE-2005-2969)During OpenSSL parsing of certain invalid ASN.1 structures, an errorcondition was mishandled. This could result in an infinite loop whichconsumed system memory (CVE-2006-2937).Certain public key types could take disproportionate amounts of time toprocess in OpenSSL, leading to a denial of service. (CVE-2006-2940)A flaw was discovered in the Python repr() function's handling ofUTF-32/UCS-4 strings. If an application used the repr() function onuntrusted data, this could lead to a denial of service or, possibly, allowthe execution of arbitrary code with the privileges of the applicationusing the flawed function. (CVE-2006-4980)A flaw was discovered in the strxfrm() function of Python's locale module.Strings generated by this function were not properly NULL-terminated. Thiscould, potentially, cause disclosure of data stored in the memory of anapplication using this function. (CVE-2007-2052)Multiple integer overflow flaws were discovered in Python's imageop module.If an application used the imageop module to process untrusted images, itcould cause the application to crash, enter an infinite loop, or, possibly,execute arbitrary code with the privileges of the Python interpreter.(CVE-2007-4965)A stack-based buffer overflow was discovered in the Python interpreter,which could allow a local user to gain privileges by running a script witha long name from the current working directory. (CVE-2006-1542)Users of Red Hat Network Satellite Server should upgrade to these updatedpackages, which contain backported patches to correct these issues.
inftrees.h in zlib 1.2.2 allows remote attackers to cause a denial of service (application crash) via an invalid file that causes a large dynamic tree to be produced.
zlib 1.2 and later versions allows remote attackers to cause a denial of service (crash) via a crafted compressed stream with an incomplete code description of a length greater than 1, which leads to a buffer overflow, as demonstrated using a crafted PNG file.
The error handling in the (1) inflate and (2) inflateBack functions in ZLib compression library 1.2.x allows local users to cause a denial of service (application crash).
Buffer overflow in the gzprintf function in zlib 1.1.4, when zlib is compiled without vsnprintf or when long inputs are truncated using vsnprintf, allows attackers to cause a denial of service or possibly execute arbitrary code.
The decompression algorithm in zlib 1.1.3 and earlier, as used in many different utilities and packages, causes inflateEnd to release certain memory more than once (a "double free"), which may allow local and remote attackers to execute arbitrary code via a block of malformed compression data.