YesWiki w wersjach przed 4.6.6 zawiera krytyczną podatność w komponencie CalcField.php, umożliwiającą zdalne wykonanie kodu PHP (RCE) oraz atak odmowy usługi przez ReDoS. Podatność jest szczególnie groźna ze względu na brak uwierzytelnienia wymaganego do jej wykorzystania.
▸ Pokaż oryginał (EN)
YesWiki is a wiki system written in PHP. Prior to version 4.6.6, an unsafe execution vulnerability exists in the Bazar form field calculator (CalcField.php) of YesWiki. The application attempts to sanitize user-defined mathematical formulas using a complex recursive regular expression before passing them to the PHP eval() function. This implementation is inherently flawed: it is vulnerable to Regular Expression Denial of Service (ReDoS / Stack Overflow) which can crash the server, and it creates a high-risk architecture where any logic bypass directly results in arbitrary PHP code execution. Version 4.6.6 patches the issue.
Aplikacja próbuje oczyszczać zdefiniowane przez użytkownika formuły matematyczne za pomocą złożonego rekurencyjnego wyrażenia regularnego, a następnie przekazuje je do funkcji PHP eval(). Zastosowane wyrażenie regularne jest podatne na ReDoS (Regular Expression Denial of Service), co może prowadzić do przepełnienia stosu i awarii serwera. Jednocześnie architektura oparta na eval() oznacza, że każde ominięcie logiki sanityzacji skutkuje bezpośrednim wykonaniem dowolnego kodu PHP przez atakującego.
Atakujący bez uwierzytelnienia może zdalnie wykonać dowolny kod PHP na serwerze (RCE) lub doprowadzić do jego niedostępności poprzez atak ReDoS powodujący awarię procesu.
Należy zaktualizować YesWiki do wersji 4.6.6, która zawiera patch eliminujący podatność. Patch dostępny jest w repozytorium GitHub projektu (commit dd2bd8fb099de0d21504bda8a810693b3fcb8e52) oraz jako oficjalne wydanie v4.6.6.
YesWiki we wszystkich wersjach przed 4.6.6
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H