Версии GRID::Machine для Perl до 0.127 позволяют выполнять произвольный код посредством небезопасной десериализации.
GRID::Machine обеспечивает удаленные вызовы процедур (RPC) через SSH для Perl. Клиент подключается к удаленным хостам для выполнения на них кода. Скомпрометированный или вредоносный удаленный хост может выполнить произвольный код обратно на клиенте посредством небезопасной десериализации в протоколе RPC.
read_operation() в lib/GRID/Machine/Message.pm десериализует значения с удаленной стороны с помощью eval()
$arg .= '$VAR1';
my $val = eval "нет строгого; $arg"; #строка 40-41
$arg — это необработанные байты из канала протокола.
Скомпрометированный удаленный хост может встроить произвольный Perl в ответ в формате Dumper: $VAR1 = do { system("..."); }; Это выполняется на клиенте автоматически при каждом вызове RPC, поскольку возвращаемые значения остаются правильными. Эта функциональность разработана специально, но требования доверия к удаленному хосту не задокументированы в дистрибутиве.
Показать оригинальное описание (EN)
GRID::Machine versions through 0.127 for Perl allows arbitrary code execution via unsafe deserialization. GRID::Machine provides Remote Procedure Calls (RPC) over SSH for Perl. The client connects to remote hosts to execute code on them. A compromised or malicious remote host can execute arbitrary code back on the client through unsafe deserialization in the RPC protocol. read_operation() in lib/GRID/Machine/Message.pm deserialises values from the remote side using eval() $arg .= '$VAR1'; my $val = eval "no strict; $arg"; # line 40-41 $arg is raw bytes from the protocol pipe. A compromised remote host can embed arbitrary perl in the Dumper-formatted response: $VAR1 = do { system("..."); }; This executes on the client silently on every RPC call, as the return values remain correct. This functionality is by design but the trust requirement for the remote host is not documented in the distribution.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Casiano Grid\
cpe:2.3:a:casiano:grid\:\:machine:*:*:*:*:*:perl:*:*
|
— |
<= 0.127
|