CVE-2026-33307
mod_gnutils has stack-based buffer overflow caused by a long client certificate chain
Mod_gnutls is a TLS module for Apache HTTPD based on GnuTLS. In versions prior to 0.12.3 and 0.13.0, code for client certificate verification imported the certificate chain sent by the client into a fixed size gnutls_x509_crt_t x509[] array without checking the number of certificates is less than or equal to the array size. gnutls_x509_crt_t is a typedef for a pointer to an opaque GnuTLS structure created using with gnutls_x509_crt_init() before importing certificate data into it, so no attacker-controlled data was written into the stack buffer, but writing a pointer after the last array element generally triggered a segfault, and could theoretically cause stack corruption otherwise (not observed in practice). Server configurations that do not use client certificates (GnuTLSClientVerify ignore, the default) are not affected. The problem has been fixed in version 0.12.3 by checking the length of the provided certificate chain and rejecting it if it exceeds the buffer length, and in version 0.13.0 by rewriting certificate verification to use gnutls_certificate_verify_peers(), removing the need for the buffer entirely. There is no workaround. Version 0.12.3 provides the minimal fix for users of 0.12.x who do not wish to upgrade to 0.13.0 yet.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
mod_gnutils has stack-based buffer overflow caused by a long client certificate chain
Mod_gnutls is a TLS module for Apache HTTPD based on GnuTLS. In versions prior to 0.12.3 and 0.13.0, code for client certificate verification imported the certificate chain sent by the client into a fixed size gnutls_x509_crt_t x509[] array without checking the number of certificates is less than or equal to the array size. gnutls_x509_crt_t is a typedef for a pointer to an opaque GnuTLS structure created using with gnutls_x509_crt_init() before importing certificate data into it, so no attacker-controlled data was written into the stack buffer, but writing a pointer after the last array element generally triggered a segfault, and could theoretically cause stack corruption otherwise (not observed in practice). Server configurations that do not use client certificates (GnuTLSClientVerify ignore, the default) are not affected. The problem has been fixed in version 0.12.3 by checking the length of the provided certificate chain and rejecting it if it exceeds the buffer length, and in version 0.13.0 by rewriting certificate verification to use gnutls_certificate_verify_peers(), removing the need for the buffer entirely. There is no workaround. Version 0.12.3 provides the minimal fix for users of 0.12.x who do not wish to upgrade to 0.13.0 yet.
- Record
CVE-2026-33307- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-121
- Updated
- 2026-11-02
EUVDEUVD-2026-14692
7.5
Mod_gnutls is a TLS module for Apache HTTPD based on GnuTLS. In versions prior to 0.12.3 and 0.13.0, code for client certificate verification imported the certificate chain sent by the client into a fixed size gnutls_x509_crt_t x509[] array without checking the number of certificates is less than or equal to the array size. gnutls_x509_crt_t is a typedef for a pointer to an opaque GnuTLS structure created using with gnutls_x509_crt_init() before importing certificate data into it, so no attacker-controlled data was written into the stack buffer, but writing a pointer after the last array element generally triggered a segfault, and could theoretically cause stack corruption otherwise (not observed in practice). Server configurations that do not use client certificates (GnuTLSClientVerify ignore, the default) are not affected. The problem has been fixed in version 0.12.3 by checking the length of the provided certificate chain and rejecting it if it exceeds the buffer length, and in version 0.13.0 by rewriting certificate verification to use gnutls_certificate_verify_peers(), removing the need for the buffer entirely. There is no workaround. Version 0.12.3 provides the minimal fix for users of 0.12.x who do not wish to upgrade to 0.13.0 yet.
- Record
EUVD-2026-14692- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
NVD
7.5
Mod_gnutls is a TLS module for Apache HTTPD based on GnuTLS. In versions prior to 0.12.3 and 0.13.0, code for client certificate verification imported the certificate chain sent by the client into a fixed size gnutls_x509_crt_t x509[] array without checking the number of certificates is less than or equal to the array size. gnutls_x509_crt_t is a typedef for a pointer to an opaque GnuTLS structure created using with gnutls_x509_crt_init() before importing certificate data into it, so no attacker-controlled data was written into the stack buffer, but writing a pointer after the last array element generally triggered a segfault, and could theoretically cause stack corruption otherwise (not observed in practice). Server configurations that do not use client certificates (GnuTLSClientVerify ignore, the default) are not affected. The problem has been fixed in version 0.12.3 by checking the length of the provided certificate chain and rejecting it if it exceeds the buffer length, and in version 0.13.0 by rewriting certificate verification to use gnutls_certificate_verify_peers(), removing the need for the buffer entirely. There is no workaround. Version 0.12.3 provides the minimal fix for users of 0.12.x who do not wish to upgrade to 0.13.0 yet.
- Record
CVE-2026-33307- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-121
- Updated
- 2026-11-02
OSV
7.5
mod_gnutils has stack-based buffer overflow caused by a long client certificate chain
Mod_gnutls is a TLS module for Apache HTTPD based on GnuTLS. In versions prior to 0.12.3 and 0.13.0, code for client certificate verification imported the certificate chain sent by the client into a fixed size gnutls_x509_crt_t x509[] array without checking the number of certificates is less than or equal to the array size. gnutls_x509_crt_t is a typedef for a pointer to an opaque GnuTLS structure created using with gnutls_x509_crt_init() before importing certificate data into it, so no attacker-controlled data was written into the stack buffer, but writing a pointer after the last array element generally triggered a segfault, and could theoretically cause stack corruption otherwise (not observed in practice). Server configurations that do not use client certificates (GnuTLSClientVerify ignore, the default) are not affected. The problem has been fixed in version 0.12.3 by checking the length of the provided certificate chain and rejecting it if it exceeds the buffer length, and in version 0.13.0 by rewriting certificate verification to use gnutls_certificate_verify_peers(), removing the need for the buffer entirely. There is no workaround. Version 0.12.3 provides the minimal fix for users of 0.12.x who do not wish to upgrade to 0.13.0 yet.
- Record
CVE-2026-33307- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-121
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-33307
7.5
Mod_gnutls is a TLS module for Apache HTTPD based on GnuTLS. In versions prior to 0.12.3 and 0.13.0, code for client certificate verification imported the certificate chain sent by the client into a fixed size gnutls_x509_crt_t x509[] array without checking the number of certificates is less than or equal to the array size. gnutls_x509_crt_t is a typedef for a pointer to an opaque GnuTLS structure created using with gnutls_x509_crt_init() before importing certificate data into it, so no attacker-controlled data was written into the stack buffer, but writing a pointer after the last array element generally triggered a segfault, and could theoretically cause stack corruption otherwise (not observed in practice). Server configurations that do not use client certificates (GnuTLSClientVerify ignore, the default) are not affected. The problem has been fixed in version 0.12.3 by checking the length of the provided certificate chain and rejecting it if it exceeds the buffer length, and in version 0.13.0 by rewriting certificate verification to use gnutls_certificate_verify_peers(), removing the need for the buffer entirely. There is no workaround. Version 0.12.3 provides the minimal fix for users of 0.12.x who do not wish to upgrade to 0.13.0 yet.
- Record
UBUNTU-CVE-2026-33307- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
mod-gnutlsUbuntu:16.04:LTS |
All versions, plus listed versions 0.6-1.10.7.3-0ubuntu1 |
None known |
mod-gnutlsUbuntu:18.04:LTS |
All versions, plus listed versions 0.8.2-3ubuntu1 |
None known |
mod-gnutlsUbuntu:20.04:LTS |
All versions, plus listed versions 0.8.2-3ubuntu10.9.0-1.1ubuntu1 |
None known |
mod-gnutlsUbuntu:22.04:LTS |
All versions, plus listed versions 0.9.0-1.1ubuntu1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-33307 is a high vulnerability (CVSS 7.5) in Mod Gnutls Project Gnutls, published March 24, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.35%, the 28th percentile. No source names a fixed version.
References
github.com/airtower-luna/mod_gnutls/security/advisories/GHSA-gjpm-55p4-c76r
github.com/airtower-luna/mod_gnutls/commit/bf4f08c49acae528e97885082cdee460f4534dc1
github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33307.json
nvd.nist.gov/vuln/detail/CVE-2026-33307
ubuntu.com/security/CVE-2026-33307
cve.org/CVERecord?id=CVE-2026-33307