Apache ZooKeeper: Reverse-DNS fallback enables hostname verification bypass in ZooKeeper ZKTrustManager
Hostname verification in Apache ZooKeeper ZKTrustManager falls back to reverse DNS (PTR) when IP SAN validation fails, allowing attackers who control or spoof PTR records to impersonate ZooKeeper servers or clients with a valid certificate for the PTR name. It's important to note that attacker must present a certificate which is trusted by ZKTrustManager which makes the attack vector harder to exploit. Users are recommended to upgrade to version 3.8.6 or 3.9.5, which fixes this issue by introducing a new configuration option to disable reverse DNS lookup in client and quorum protocols.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-24281
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 18:39 UTC · Revision 1
Source evidence
Apache ZooKeeper: Reverse-DNS fallback enables hostname verification bypass in ZooKeeper ZKTrustManager
core-osv · Original sourcePublished 7 Mar 2026, 08:50 UTC
Hostname verification in Apache ZooKeeper ZKTrustManager falls back to reverse DNS (PTR) when IP SAN validation fails, allowing attackers who control or spoof PTR records to impersonate ZooKeeper servers or clients with a valid certificate for the PTR name. It's important to note that attacker must present a certificate which is trusted by ZKTrustManager which makes the attack vector harder to exploit. Users are recommended to upgrade to version 3.8.6 or 3.9.5, which fixes this issue by introducing a new configuration option to disable reverse DNS lookup in client and quorum protocols.
osv:CVE-2026-24281
Complete source record
{
"id": "5a3f3af698ffe47953fd6cd355cee68605814d7e333608ce367e213e2b22d869",
"url": "https://osv.dev/vulnerability/CVE-2026-24281",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Apache ZooKeeper: Reverse-DNS fallback enables hostname verification bypass in ZooKeeper ZKTrustManager",
"summary": "Hostname verification in Apache ZooKeeper ZKTrustManager falls back to reverse DNS (PTR) when IP SAN validation fails, allowing attackers who control or spoof PTR records to impersonate ZooKeeper servers or clients with a valid certificate for the PTR name. It's important to note that attacker must present a certificate which is trusted by ZKTrustManager which makes the attack vector harder to exploit. Users are recommended to upgrade to version 3.8.6 or 3.9.5, which fixes this issue by introducing a new configuration option to disable reverse DNS lookup in client and quorum protocols.",
"evidence": "osv:CVE-2026-24281",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-24281",
"aliases": [
"BIT-zookeeper-2026-24281",
"CVE-2026-24281",
"GHSA-7xrh-hqfc-g7qr"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/apache/zookeeper",
"type": "GIT",
"events": [
{
"introduced": "97c181a40d6dd6ccb2fdad7fcdbd1fd74ab0b6c8"
},
{
"fixed": "6df26081269769c160c8c3a24929c60c91cd19c3"
},
{
"introduced": "1674a5e97f43bc38e9bf56b04f83a7ae34d68249"
},
{
"fixed": "293c895a8d966a3ecb92872be4a1daf87d725da2"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:apache:zookeeper:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "3.8.0"
},
{
"fixed": "3.8.6"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:apache:zookeeper:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "3.9.0"
},
{
"fixed": "3.9.5"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"release-3.9.4-2",
"release-3.9.4",
"release-3.9.4-1",
"release-3.9.4-0",
"release-3.9.3-2",
"release-3.9.3",
"release-3.9.3-1",
"release-3.9.3-0",
"release-3.9.2-0",
"release-3.9.2",
"release-3.9.1-0",
"release-3.9.1",
"release-3.9.0-1",
"release-3.9.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-24281.json"
}
}
],
"modified": "2026-10-28T02:30:38.189756199Z",
"provider": "osv",
"references": [
"https://repo.maven.apache.org/maven2",
"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-24281.json",
"https://access.redhat.com/errata/RHSA-2026:10184",
"https://access.redhat.com/errata/RHSA-2026:14272",
"https://access.redhat.com/errata/RHSA-2026:14276",
"https://access.redhat.com/errata/RHSA-2026:34608",
"https://access.redhat.com/errata/RHSA-2026:8509",
"https://access.redhat.com/security/cve/CVE-2026-24281",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/24xxx/CVE-2026-24281.json",
"https://lists.apache.org/thread/088ddsbrzhd5lxzbqf5n24yg0mwh9jt2",
"https://nvd.nist.gov/vuln/detail/CVE-2026-24281",
"https://bugzilla.redhat.com/show_bug.cgi?id=2445449"
],
"provider_metadata": {
"cwe_ids": [
"CWE-295",
"CWE-350"
],
"cna_assigner": "apache",
"unresolved_ranges": [
{
"extracted_events": [
{
"range": [
{
"introduced": "3.9.0"
},
{
"last_affected": "3.9.4"
},
{
"introduced": "3.8.0"
},
{
"last_affected": "3.8.5"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
}
]
}
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/24xxx/CVE-2026-24281.json"
}
},
"related_cves": [
{
"value": "CVE-2026-24281",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 505776,
"published_at": "2026-03-07T08:50:32.525+00:00"
}