CVE-2026-77831
NiskieCVSS 2.1Streszczenie
W bibliotece ash_paper_trail (projekt ash-project) występuje podatność polegająca na nieefektywnej złożoności algorytmicznej. Użytkownik, który może przesłać duży atrybut tablicowy do akcji tworzenia lub aktualizacji śledzonej przez paper_trail, może spowodować odmowę usługi poprzez nadmierne zużycie CPU i pamięci. Wynika to z sześciennego skalowania operacji porównywania list w pełnym trybie diff.
Ocena ryzyka
Atakujący może przeciążyć serwer, powodując niedostępność usługi. Podatność dotyczy wersji od 0.1.1 do 0.7.0.
Rekomendacja
Zaktualizuj ash_paper_trail do wersji 0.7.0 lub nowszej, która zawiera poprawkę. Ogranicz maksymalny rozmiar przesyłanych tablic.
Inne podatności w ash_paper_trail
Zobacz wszystkie- CVE-2026-77970Średnie
W bibliotece ash_paper_trail (projekt ash-project) występuje podatność polegająca na przechowywaniu wrażliwych informacji w postaci jawnego tekstu. Atakujący z dostępem do wygenerowanego zasobu wersji może odzyskać wrażliwe wartości zagnieżdżone w zasobach osadzonych, uniach lub listach. Mechanizmy sensitive_attributes :redact i :ignore działają tylko na atrybutach najwyższego poziomu, nie zagłębiając się w struktury zagnieżdżone.
- CVE-2026-75847Średnie
W bibliotece ash_paper_trail (projekt ash-project) występuje podatność polegająca na przechowywaniu wrażliwych informacji w postaci jawnego tekstu. Atakujący z dostępem do wygenerowanego zasobu wersji może odzyskać tekst jawny atrybutów oznaczonych jako sensitive?. Wartości te są przechowywane w mapie zmian, która jest publiczna i nieoznaczona jako wrażliwa, przez co są zwracane przez domyślną akcję odczytu oraz wyświetlane w logach i komunikatach błędów.
Oryginalny opis (angielski, źródło NVD)
Inefficient Algorithmic Complexity vulnerability in ash-project ash_paper_trail allows a user who can submit a large array attribute to a paper-trailed create or update action to cause a denial of service through excessive CPU and memory use. With full-diff change tracking, AshPaperTrail.ChangeBuilders.FullDiff.ListChange pairs each prior array element against the new list by rebuilding the remaining-elements accumulator with acc ++ [tuple] on every step, copying the growing list each time, so the pairing scales cubically in the array length. Nothing bounds the length and the value comes straight from action input, so one request carrying a large accepted {:array, _} attribute forces tens of seconds of CPU and multi-gigabyte allocations. This issue affects ash_paper_trail: from 0.1.1 before 0.7.0.

