Biblioteka Dynamic Linq (wersje 1.0.7.10–1.2.25) umożliwia atakującym zdalne wykonanie dowolnego kodu i poleceń systemowych poprzez przekazanie niezaufanych danych wejściowych do metod takich jak Where, Select czy OrderBy. Podatność uzyskała ocenę CVSS 9.8 (Critical), co czyni ją poważnym zagrożeniem dla aplikacji korzystających z dynamicznego budowania zapytań LINQ.
▸ Pokaż oryginał (EN)
Dynamic Linq 1.0.7.10 through 1.2.25 before 1.3.0 allows attackers to execute arbitrary code and commands when untrusted input to methods including Where, Select, OrderBy is parsed.
Biblioteka Dynamic LINQ pozwala na parsowanie wyrażeń LINQ przekazywanych jako ciągi znaków w czasie wykonania aplikacji. Gdy niezaufane dane wejściowe (np. od użytkownika) są przekazywane bezpośrednio do metod takich jak Where, Select lub OrderBy bez odpowiedniej walidacji, biblioteka parsuje je i wykonuje jako kod. Atakujący może spreparować złośliwe wyrażenie, które po sparsowaniu doprowadzi do wykonania arbitralnego kodu lub poleceń systemowych w kontekście aplikacji.
Atakujący niewymagający uwierzytelnienia może zdalnie wykonać dowolny kod lub polecenia systemowe na serwerze, co prowadzi do pełnego przejęcia kontroli nad aplikacją i potencjalnie całym systemem, a także do naruszenia poufności, integralności i dostępności danych.
Należy zaktualizować bibliotekę Dynamic Linq do wersji 1.3.0 lub nowszej. Dodatkowo należy unikać przekazywania niezaufanych danych wejściowych bezpośrednio do metod parsujących wyrażenia LINQ (Where, Select, OrderBy) bez uprzedniej walidacji i sanityzacji danych.
Dynamic Linq (System.Linq.Dynamic.Core) w wersjach od 1.0.7.10 do 1.2.25 (przed wersją 1.3.0)
Podatność została opisana przez badaczy z NCC Group i opublikowana 13 czerwca 2023 r. na blogu research.nccgroup.com pod nazwą 'Dynamic LINQ Injection Remote Code Execution Vulnerability'.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HDynamic Linq Linq
APPDynamic-Linq1.0.7.10 – 1.2.25