Alibaba Cloud Security Center #42 CVE-2022-1292:openssl openssl improper neutralization of special elements used in an os command

Alibaba Cloud Security Center から High Risk として”CVE-2022-1292:openssl openssl improper neutralization of special elements used in an os command (‘os command injection’)” の対処を求められており、Security Score が “-3″減点されています。  この脆弱性を解消していく話です。

この脆弱性が Security Center から警告されたのは2026年1月です。今日は10月なので約9か月前です。

 1月の時点で実質的に問題がないことがわかっていたので放置していたのですが、ここ最近で”実質的に問題がない”のレベル感が変わってきたため対処することにしました。

私が1月に”実質的に問題がない”と判断した理由は、今回の脆弱性の原因となる libssl1.1を外部に表出している Apache や他サービスでは利用していないためでした。 脆弱性があるライブラリはシステム上に存在するけど、ファイルとして置かれているだけで外部に見えていない、内部的にもサービス、daemonからもLoadしていない、だから優先度は低いという。  

でも今はそれが弱点として使われてしまう、複数の小・中の脆弱性を組み合わせて、さらに人間だと難しいタイミングや膨大な試行錯誤も短時間で行えたりします。 簡単にいえばこれまでの常識、ここまでやっておけば大丈夫だろう、が崩れつつあるという感触をもっています。

まず、この libssl1.1 がどこで使われているかは “apt-cache”コマンドで確認可能です。 

bash
# apt-cache rdepends libssl1.1
libssl1.1
Reverse Depends:
  crda
  ntp
  mysql-server-5.7
  libzip4
  libpython3.8-minimal

crda,ntp,mysql-server-5.7,libzip4,libpython3.8-minimal でlibssl1.1が利用されいることを確認できます。 mysqlは一時期、仮想マシン上で動作させていたものが使わないまま残っているものです。

他のPKGも今利用している Ubuntu 22.04 の前のバージョンで使われていたものが残骸として残っているものです。これらはすべて削除していきます。

PKGUbuntu 22.04 での扱いと現状必要性
libpython3.8-minimalUbuntu 22.04 の標準 Python は 3.10 です。Python 3.8 は1世代前の古いバージョンです。現在の標準(3.10)が動いているため、3.8 系統のライブラリは不要です。
ntpUbuntu 20.04 以降、時刻同期は標準の systemd-timesyncd や chrony に置き換わっており、ntp パッケージは非推奨・未更新です。systemd-timesyncd が裏で動いているため、古い ntp は不要です。
crda無線LAN(Wi-Fi)の規制領域データを扱う古いツールです。現在(Kernel 4.15以降)は Linux カーネル自体が直接処理するため不要になっています。クラウド(ECS)の仮想マシンにはWi-Fi自体が存在しないため完全に不要です。
libzip4C言語用の古い zip 処理ライブラリです。Ubuntu 22.04 では libzip4 (バージョン1.7.3以降) が標準で libssl3 を使うように刷新されています。旧バージョンの残骸です。もしWordPress等でzip処理が必要な場合も、最新の libzip4 または php-zip が libssl3 経由で動作します。

libssl1.1をきれいにします。

bash
パージする
# sudo apt purge libssl1.1

確認する
# apt-cache rdepends libssl1.1
<libssl1.1>

最後に Alibaba Cloud Security Center で脆弱性が解消されたことを確認して作業は終了です。

Verifyを実行して5分ほど待つと Unhandled Vulnerabilities は No Data となりました。これでOKです。

以上