CVE-2026-52684 (GCVE-0-2026-52684)

Vulnerability from cvelistv5 – Published: 2026-07-23 07:49 – Updated: 2026-07-23 14:00
VLAI
Title
Prefetch Feature Allows Persistent Ghost Domain Cache Poisoning Attack
Summary
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.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator (v2.0.3)
CWE
  • Time-of-check Time-of-use (TOCTOU) Race Condition
Assigner
OX
References
Impacted products
Vendor Product Version
PowerDNS Recursor Affected: 0.0.0 , < 5.5.0 (semver)
Create a notification for this product.
Date Public
2026-07-19 22:00
Credits
Taofei Guo, Peking University. Qi Wang and JianJun Chen and Haixin Duan, Tsinghua University.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-52684",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-07-23T14:00:08.322568Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-07-23T14:00:17.742Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "collectionURL": "https://repo.powerdns.com/",
          "defaultStatus": "unaffected",
          "modules": [
            "Packet cache",
            "Record cache"
          ],
          "packageName": "pdns-recursor",
          "product": "Recursor",
          "programFiles": [
            "rec-packetcache.cc",
            "recursor_cache.cc"
          ],
          "repo": "https://github.com/PowerDNS/pdns",
          "vendor": "PowerDNS",
          "versions": [
            {
              "lessThan": "5.5.0",
              "status": "affected",
              "version": "0.0.0",
              "versionType": "semver"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "Taofei Guo, Peking University. Qi Wang and JianJun Chen and Haixin Duan, Tsinghua University."
        }
      ],
      "datePublic": "2026-07-19T22:00:00.000Z",
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eIf the auth responds \u003cem\u003every\u003c/em\u003e 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 \u003cem\u003eare\u003c/em\u003e 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.\u003c/p\u003e"
            }
          ],
          "value": "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."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "attackComplexity": "HIGH",
            "attackVector": "NETWORK",
            "availabilityImpact": "NONE",
            "baseScore": 3.7,
            "baseSeverity": "LOW",
            "confidentialityImpact": "NONE",
            "integrityImpact": "LOW",
            "privilegesRequired": "NONE",
            "scope": "UNCHANGED",
            "userInteraction": "NONE",
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N",
            "version": "3.1"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "description": "Time-of-check Time-of-use (TOCTOU) Race Condition",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-07-23T07:49:04.336Z",
        "orgId": "8ce71d90-2354-404b-a86e-bec2cc4e6981",
        "shortName": "OX"
      },
      "references": [
        {
          "url": "https://github.com/PowerDNS/pdns/pull/17748"
        }
      ],
      "source": {
        "discovery": "UNKNOWN"
      },
      "title": "Prefetch Feature Allows Persistent Ghost Domain Cache Poisoning Attack",
      "x_generator": {
        "engine": "Vulnogram 1.0.4"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "8ce71d90-2354-404b-a86e-bec2cc4e6981",
    "assignerShortName": "OX",
    "cveId": "CVE-2026-52684",
    "datePublished": "2026-07-23T07:49:04.336Z",
    "dateReserved": "2026-06-08T08:05:31.707Z",
    "dateUpdated": "2026-07-23T14:00:17.742Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-52684",
      "date": "2026-07-23",
      "epss": "0.00225",
      "percentile": "0.13279"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-52684\",\"sourceIdentifier\":\"security@open-xchange.com\",\"published\":\"2026-07-23T09:16:26.843\",\"lastModified\":\"2026-07-23T15:48:25.133\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"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.\"}],\"affected\":[{\"source\":\"security@open-xchange.com\",\"affectedData\":[{\"vendor\":\"PowerDNS\",\"product\":\"Recursor\",\"defaultStatus\":\"unaffected\",\"collectionURL\":\"https://repo.powerdns.com/\",\"packageName\":\"pdns-recursor\",\"modules\":[\"Packet cache\",\"Record cache\"],\"programFiles\":[\"rec-packetcache.cc\",\"recursor_cache.cc\"],\"repo\":\"https://github.com/PowerDNS/pdns\",\"versions\":[{\"version\":\"0.0.0\",\"lessThan\":\"5.5.0\",\"versionType\":\"semver\",\"status\":\"affected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"security@open-xchange.com\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N\",\"baseScore\":3.7,\"baseSeverity\":\"LOW\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"HIGH\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"LOW\",\"availabilityImpact\":\"NONE\"},\"exploitabilityScore\":2.2,\"impactScore\":1.4}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2026-07-23T14:00:08.322568Z\",\"id\":\"CVE-2026-52684\",\"options\":[{\"exploitation\":\"none\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"partial\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"references\":[{\"url\":\"https://github.com/PowerDNS/pdns/pull/17748\",\"source\":\"security@open-xchange.com\"}]}}",
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-52684\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-07-23T14:00:08.322568Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-07-23T14:00:14.680Z\"}}], \"cna\": {\"title\": \"Prefetch Feature Allows Persistent Ghost Domain Cache Poisoning Attack\", \"source\": {\"discovery\": \"UNKNOWN\"}, \"credits\": [{\"lang\": \"en\", \"type\": \"finder\", \"value\": \"Taofei Guo, Peking University. Qi Wang and JianJun Chen and Haixin Duan, Tsinghua University.\"}], \"metrics\": [{\"format\": \"CVSS\", \"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 3.7, \"attackVector\": \"NETWORK\", \"baseSeverity\": \"LOW\", \"vectorString\": \"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N\", \"integrityImpact\": \"LOW\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"HIGH\", \"availabilityImpact\": \"NONE\", \"privilegesRequired\": \"NONE\", \"confidentialityImpact\": \"NONE\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"GENERAL\"}]}], \"affected\": [{\"repo\": \"https://github.com/PowerDNS/pdns\", \"vendor\": \"PowerDNS\", \"modules\": [\"Packet cache\", \"Record cache\"], \"product\": \"Recursor\", \"versions\": [{\"status\": \"affected\", \"version\": \"0.0.0\", \"lessThan\": \"5.5.0\", \"versionType\": \"semver\"}], \"packageName\": \"pdns-recursor\", \"programFiles\": [\"rec-packetcache.cc\", \"recursor_cache.cc\"], \"collectionURL\": \"https://repo.powerdns.com/\", \"defaultStatus\": \"unaffected\"}], \"datePublic\": \"2026-07-19T22:00:00.000Z\", \"references\": [{\"url\": \"https://github.com/PowerDNS/pdns/pull/17748\"}], \"x_generator\": {\"engine\": \"Vulnogram 1.0.4\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"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.\", \"supportingMedia\": [{\"type\": \"text/html\", \"value\": \"\u003cp\u003eIf the auth responds \u003cem\u003every\u003c/em\u003e 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 \u003cem\u003eare\u003c/em\u003e 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.\u003c/p\u003e\", \"base64\": false}]}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"description\": \"Time-of-check Time-of-use (TOCTOU) Race Condition\"}]}], \"providerMetadata\": {\"orgId\": \"8ce71d90-2354-404b-a86e-bec2cc4e6981\", \"shortName\": \"OX\", \"dateUpdated\": \"2026-07-23T07:49:04.336Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2026-52684\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-07-23T14:00:17.742Z\", \"dateReserved\": \"2026-06-08T08:05:31.707Z\", \"assignerOrgId\": \"8ce71d90-2354-404b-a86e-bec2cc4e6981\", \"datePublished\": \"2026-07-23T07:49:04.336Z\", \"assignerShortName\": \"OX\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…