CVE-2026-97853 in decimalinfo

Zusammenfassung

von VulDB • 10.10.2026

Eine Schwachstelle mit der Bezeichnung "Memory Allocation with Excessive Size Value" (Speicherzuweisung mit übermäßigem Größenwert) in ericmj decimal ermöglicht einen Denial-of-Service-Angriff (DoS).

Die Funktion `Decimal.round/3` erstellt das vollständige Ergebnis für die angeforderte Anzahl von Dezimalstellen, bevor die Kontextgenauigkeit (standardmäßig 34 Stellen) angewendet wird. Daher steigt der Ressourcenverbrauch mit dem Argument `places`, anstatt mit der Größe des Ergebnisses zu skalieren. Bei positiven Werten für `places` werden vor der Konvertierung in eine Ganzzahl (`integer`) so viele Nullen als Charlist angehängt, wie durch das Argument angegeben sind; bei negativen Werten wird eine Charliste aus `-places` vielen Nullstellen erstellt. Ein einzelner Aufruf wie `Decimal.round(Decimal.new("1.5"), -50_000_000)` alloziert etwa 5,5 GB Speicher, was den verfügbaren Speicher erschöpfen und dazu führen kann, dass die BEAM-VM (Virtual Machine) beendet wird. Ältere Versionen stattdessen durchlaufen eine Schleife einmal pro Dezimalstelle, wodurch die CPU-Auslastung proportional zur Anzahl der Stellen ansteigt.

Jede Anwendung, die ein vom Benutzer bereitgestelltes Argument für die Anzahl der Dezimalstellen oder den Skalierungsfaktor an `Decimal.round/2` oder `Decimal.round/3` übergibt, ohne es zu begrenzen, ist davon betroffen. Die Eingabebegrenzungen, die für CVE-2026-32686 hinzugefügt wurden, decken das Argument `places` nicht ab.

Dieses Problem betrifft decimal: von Version 0.1.0 bis vor 3.1.2.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Zuständig

EEF

Reservieren

09.10.2026

Veröffentlichung

10.10.2026

Moderieren

akzeptiert

Eintrag

VDB-416267

EPSS

0.00000

KEV

nein

Aktivitäten

very low

Quellen

Do you want to use VulDB in your project?

Use the official API to access entries easily!