Katalog CVE

CVE-2026-19734

WysokieCVSS 8.6
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.33%

Percentyl 26 - wyżej niż 26% wszystkich znanych CVE

Streszczenie

Brak autoryzacji i obejście autoryzacji przez klucz kontrolowany przez użytkownika w komponencie zarządzania produktami w Roskus Prospero Flow CRM przed wersją 5.4.7. Uwierzytelnieni użytkownicy dowolnej firmy mogą odczytać pełne wrażliwe dane (cenę, koszt, stan magazynowy, SKU i kod kreskowy) produktu innej firmy oraz przejąć ten produkt, przypisując mu własne company_id, poprzez numeryczny identyfikator produktu, ponieważ ProductUpdateController nie rozszerzał MainController i dlatego nie wymagał sprawdzenia uwierzytelnienia na punkcie końcowym odczytu, a ProductRepository::save() pobierał rekord przez Product::find($data['id']) bez ograniczania zapytania do firmy uwierzytelnionego użytkownika przed nadpisaniem jego company_id.

Ocena ryzyka

Ujawnienie wrażliwych danych biznesowych (ceny, koszty, stany magazynowe) oraz możliwość przejęcia produktów konkurencji może prowadzić do naruszenia poufności i integralności danych oraz strat finansowych.

Rekomendacja

Zaktualizuj Roskus Prospero Flow CRM do wersji 5.4.7 lub nowszej, która zawiera poprawkę. Dodatkowo zweryfikuj, czy wszystkie punkty końcowe wymagają odpowiedniej autoryzacji i czy zapytania do bazy danych są ograniczone do kontekstu firmy użytkownika.

Oryginalny opis (angielski, źródło NVD)

Missing Authorization and Authorization Bypass Through User-Controlled Key in the product management component in Roskus Prospero Flow CRM before 5.4.7 allows authenticated users of any company to read the full sensitive data (price, cost, stock, SKU, and barcode) of another company's product and to hijack that product by reassigning its company_id, via the product's numeric identifier, because `ProductUpdateController` did not extend `MainController` and therefore required no authentication check on the read endpoint, and `ProductRepository::save()` retrieved the record via `Product::find($data['id'])` without constraining the query to the authenticated user's company before overwriting its company_id.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS