जमा करें #945051: tdunning t-digest 3.3 Unvalidated NaN Centroid Means Cause Quadratic Blowupजानकारी

शीर्षकtdunning t-digest 3.3 Unvalidated NaN Centroid Means Cause Quadratic Blowup
विवरणWhile digging further into MergingDigest.fromBytes() past the array-bounds issue I already reported, I noticed it also skips the one check every other write path in this class enforces: rejecting NaN means. MergingDigest.add(double, int) throws on NaN, and even the sibling AVLTreeDigest.fromBytes() routes through add() so it inherits that check for free — but MergingDigest.fromBytes() writes straight into the backing arrays and never calls add(), so a digest can be deserialized with an arbitrary number of NaN means baked in. The very next merge of that digest — a single add(x, w) call, exactly what a real aggregator does with each new raw value — hands those NaNs to Sort.quickSort(), whose median-of-three pivot logic silently degrades from O(n log n) to O(n²) once comparisons stop forming a total order.
स्रोत⚠️ https://github.com/tdunning/t-digest/issues/229
उपयोगकर्ता
 Yu_Bao from PayPal Cyber Security Team (UID 100783)
सबमिशन24/08/2026 06:41 PM (2 महीनों पहले)
संयम19/09/2026 07:04 PM (26 days later)
स्थितिप्रतिलिपि
VulDB प्रविष्टि401776 [tdunning t-digest तक 3.3 MergingDigest.fromBytes अधिकार वृद्धि]
अंक0

Want to stay up to date on a daily basis?

Enable the mail alert feature now!