{"id":"CVE-2026-52684","aliases":["DEBIAN-CVE-2026-52684","EUVD-2026-47932","GHSA-j58f-rgm2-v2p8","UBUNTU-CVE-2026-52684"],"status":"published","title":"Prefetch Feature Allows Persistent Ghost Domain Cache Poisoning Attack","description":"If the auth responds very slowly and the records expire in between, the capping of TTLs is not enforced for lack of data. This does not happen on regular resolve as then then the \nchild records are used immediately if not expired and thus valid, or the\n records are expired, and in that case not used.  So this case \ncan only happen if almost expired records are used to refresh the \nauthoritative NS records.","severity":{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"low","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00225,"percentile":0.13292,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"published":"2026-07-23T07:49:04Z","modified":"2026-10-25T10:00:34Z","affected":[{"source":"osv","ecosystem":"Debian:12","package":"pdns-recursor","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.8.4-1","4.8.6-1","4.8.7-1","4.8.8-1","4.8.8-1+deb12u1","4.9.0-1","4.9.0-2","4.9.1-1","4.9.1-2","4.9.1-3","4.9.1-4","4.9.2-1","4.9.2-2","4.9.3-1","4.9.4-1","4.9.5-1","5.0.5-1","5.0.7-1","5.0.7-2","5.0.9-1","5.1.3-1","5.1.3-2","5.2.0-1","5.2.0-2","5.2.0-3","5.2.0-4","5.2.0-5","5.2.1-1","5.2.2-1","5.2.2-2","5.2.4-1","5.2.4-2","5.2.5-1","5.3.0-1","5.3.0-2","5.3.0-3","5.3.0-4","5.3.0-5","5.3.1-1","5.3.3-1","5.3.4-1","5.3.4-2","5.3.5-1","5.4.0-1","5.4.1-1","5.4.1-2","5.4.2-1","5.4.2-2","5.4.3-1","5.4.4-1","5.4.5-1","5.4.6-1","5.4.6-2","5.4.8-1"]},{"source":"osv","ecosystem":"Debian:13","package":"pdns-recursor","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.2.11-0+deb13u1","5.2.12-0+deb13u1","5.2.13-0+deb13u1","5.2.4-2","5.2.4-2+deb13u1","5.2.5-1","5.2.6-0+deb13u1","5.2.7-0+deb13u1","5.2.8-0+deb13u1","5.2.9-0+deb13u1","5.3.0-1","5.3.0-2","5.3.0-3","5.3.0-4","5.3.0-5","5.3.1-1","5.3.3-1","5.3.4-1","5.3.4-2","5.3.5-1","5.4.0-1","5.4.1-1","5.4.1-2","5.4.2-1","5.4.2-2","5.4.3-1","5.4.4-1","5.4.5-1","5.4.6-1","5.4.6-2","5.4.8-1"]},{"source":"osv","ecosystem":"Debian:14","package":"pdns-recursor","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.2.4-2","5.2.5-1","5.3.0-1","5.3.0-2","5.3.0-3","5.3.0-4","5.3.0-5","5.3.1-1","5.3.3-1","5.3.4-1","5.3.4-2","5.3.5-1","5.4.0-1","5.4.1-1","5.4.1-2","5.4.2-1","5.4.2-2","5.4.3-1","5.4.4-1","5.4.5-1","5.4.6-1","5.4.6-2","5.4.8-1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"pdns-recursor","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.7.3-1","4.0.0~alpha1-1","4.0.0~alpha1-2","4.0.0~alpha2-2","4.0.0~alpha2-2ubuntu0.1","4.0.0~alpha2-2ubuntu0.1+esm1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"pdns-recursor","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.0.6-1","4.0.6-1build1","4.0.7-1","4.1.1-1","4.1.1-1build1","4.1.1-2","4.1.1-2ubuntu0.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"pdns-recursor","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.2.0-6","4.2.1-1","4.2.1-1build1","4.2.1-1build2","4.2.1-1ubuntu0.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:22.04:LTS","package":"pdns-recursor","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.4.2-3","4.6.0-1ubuntu1","4.6.0-1ubuntu1+esm1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"pdns-recursor","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.9.0-2","4.9.1-4","4.9.2-1","4.9.2-1build1","4.9.2-2","4.9.3-1","4.9.3-1build2","4.9.3-1build3"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"pdns-recursor","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.3.5-1","5.4.3-1","5.4.5-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"pdns-recursor","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.2.4-2build2","5.3.1-1","5.3.3-1","5.3.4-1","5.3.4-1build1","5.3.4-2","5.3.5-1"]}],"products":[{"vendor":"powerdns","product":"recursor"}],"references":[{"url":"https://github.com/PowerDNS/pdns/pull/17748","tags":["report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-52684"},{"url":"https://github.com/advisories/GHSA-j58f-rgm2-v2p8"},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-52684","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-52684","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-52684","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-52684","title":"Prefetch Feature Allows Persistent Ghost Domain Cache Poisoning Attack","description":"If the auth responds very slowly and the records expire in between, the capping of TTLs is not enforced for lack of data. This does not happen on regular resolve as then then the \nchild records are used immediately if not expired and thus valid, or the\n records are expired, and in that case not used.  So this case \ncan only happen if almost expired records are used to refresh the \nauthoritative NS records.","status":"published","published":"2026-07-23T07:49:04.336Z","modified":"2026-07-23T14:00:17.742Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"low","assessor":"cna"}],"updated_at":"2026-11-02T13:40:57.334596Z"}],"euvd":[{"id":"EUVD-2026-47932","description":"If the auth responds very slowly and the records expire in between, the capping of TTLs is not enforced for lack of data. This does not happen on regular resolve as then then the \nchild records are used immediately if not expired and thus valid, or the\n records are expired, and in that case not used.  So this case \ncan only happen if almost expired records are used to refresh the \nauthoritative NS records.","status":"published","published":"2026-07-23T07:49:04Z","modified":"2026-07-23T14:00:17Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"low"}],"updated_at":"2026-11-02T18:19:44.021778Z"}],"ghsa":[{"id":"GHSA-j58f-rgm2-v2p8","title":"If the auth responds very slowly and the records expire in between, the capping of TTLs is not...","description":"If the auth responds very slowly and the records expire in between, the capping of TTLs is not enforced for lack of data. This does not happen on regular resolve as then then the \nchild records are used immediately if not expired and thus valid, or the\n records are expired, and in that case not used.  So this case \ncan only happen if almost expired records are used to refresh the \nauthoritative NS records.","status":"published","published":"2026-07-23T09:32:01Z","modified":"2026-07-23T09:32:07Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"low"}],"updated_at":"2026-11-02T15:09:41.313083Z"}],"nvd":[{"id":"CVE-2026-52684","description":"If the auth responds very slowly and the records expire in between, the capping of TTLs is not enforced for lack of data. This does not happen on regular resolve as then then the \nchild records are used immediately if not expired and thus valid, or the\n records are expired, and in that case not used.  So this case \ncan only happen if almost expired records are used to refresh the \nauthoritative NS records.","status":"published","published":"2026-07-23T09:16:26.843Z","modified":"2026-10-24T13:10:00.147Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"low","assessor":"secondary"}],"updated_at":"2026-11-02T14:12:32.473901Z"}],"osv":[{"id":"DEBIAN-CVE-2026-52684","description":"If the auth responds very slowly and the records expire in between, the capping of TTLs is not enforced for lack of data. This does not happen on regular resolve as then then the  child records are used immediately if not expired and thus valid, or the  records are expired, and in that case not used.  So this case  can only happen if almost expired records are used to refresh the  authoritative NS records.","status":"published","published":"2026-07-23T09:16:26.843Z","modified":"2026-10-25T10:00:34.577302046Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"low"}],"updated_at":"2026-11-02T15:45:56.877408Z"},{"id":"UBUNTU-CVE-2026-52684","description":"If the auth responds very slowly and the records expire in between, the capping of TTLs is not enforced for lack of data. This does not happen on regular resolve as then then the child records are used immediately if not expired and thus valid, or the  records are expired, and in that case not used.  So this case can only happen if almost expired records are used to refresh the authoritative NS records.","status":"published","published":"2026-07-23T09:16:00Z","modified":"2026-10-17T12:58:33.997645144Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"low"}],"updated_at":"2026-11-02T16:56:33.391918Z"}]}}
