お使いのマシンでCVE-2022-34169が修正されているかどうかを確認します。私の知る限り、エクスプロイトはGoogle社員によって発見され、公開されていません。修正方法が判明しているため、実行時に修正が適用されているかを確認する小さなテストルーチンが書かれました。
オプション: これはJDKがインストールされている場合のみ利用可能です。
# Optional: To see if `javac` is available: `sudo updatedb && sudo locate /bin/javac`
javac Bcel.java
6つの警告は無視して構いません。フラグが立てられたコードは、OpenJDKで利用可能なBcelライブラリを含めるために使用されています。Bcelライブラリを自分で含める場合、もう少し複雑になり、バージョンが事前定義されることになりますが、それはこの演習の趣旨とは必ずしも一致しません。
# `cd` into (built) folder where `Bcel.class` is, then:
java Bcel
echo $?
エラーコードで混乱しないでください。これらは逆になっています。修正 https://github.com/openjdk/jdk/commit/41ef2b249073450172e11163a4d05762364b1297?diff=unified#diff-3d2cb29a8f3fca8e2f3421d2898dce63255b850406456533cce91f26dbf8dbe2R217 はエラーコード1でエラーをスローし、セキュリティリスクをキャッチします。修正が存在しない場合、ソースコードはエラーコード0でエラーなく実行されますが、オブジェクト内に要素が多すぎる状態になります!