Biblioteka Simple Form dla Ruby on Rails zawiera podatność w funkcji file_method? w pliku lib/simple_form/form_builder.rb, gdzie ciąg znaków dostarczony przez użytkownika jest wywoływany jako wywołanie metody. Podatność umożliwia atakującemu zdalne wykonanie kodu bez żadnego uwierzytelnienia.
▸ Pokaż oryginał (EN)
Plataformatec Simple Form has Incorrect Access Control in file_method? in lib/simple_form/form_builder.rb, because a user-supplied string is invoked as a method call.
Podatność wynika z braku walidacji danych wejściowych (CWE-20) — funkcja file_method? przyjmuje dane kontrolowane przez użytkownika i bezpośrednio wywołuje je jako metodę na obiekcie Ruby. Atakujący może spreparować żądanie HTTP zawierające nazwę dowolnej metody lub payload, który zostanie wykonany po stronie serwera. Mechanizm ten prowadzi do niekontrolowanego wykonania kodu w kontekście aplikacji.
Atakujący nieuwierzytelniony, działający zdalnie, może przejąć pełną kontrolę nad aplikacją — odczytać, zmodyfikować lub usunąć dane, a potencjalnie uzyskać dostęp do systemu operacyjnego serwera (poufność, integralność i dostępność są w pełni zagrożone).
Należy zastosować patche dostępne u producenta zgodnie z referencjami — szczegółowe informacje o poprawionych wersjach znajdują się w oficjalnym advisory Plataformatec (https://github.com/plataformatec/simple_form/security/advisories/GHSA-r74q-gxcg-73hx) oraz w historii commitów repozytorium.
Plataformatec Simple Form — wersje wskazane w referencjach producenta (advisory GHSA-r74q-gxcg-73hx oraz blog Plataformatec)
Producent opublikował dedykowany wpis na blogu oraz security advisory na GitHub opisujące podatność (data publikacji: 2019-09-30).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HPlataformatec Simple Form
APPPlataformatec< 5.0
Powiązane podatności
Plataformatec Devise – race condition w module lockable umożliwia brute force
An issue was discovered in Plataformatec Devise before 4.7.1. It confirms accounts upon receiving a request wi...
Devise gem 2.2.x before 2.2.3, 2.1.x before 2.1.3, 2.0.x before 2.0.5, and 1.5.x before 1.5.4 for Ruby, when u...