
口で言うのは簡単だ。コードを見てみろ。
詳細は https://www.wiz.io/blog/ingress-nginx-kubernetes-vulnerabilities で確認できます。
shell.c 内の IP を変更する。make shell.so を実行する。(nginx-ingress-controller は musl-libc ベースのため、確実に動作させるには Alpine で .so をビルドする必要があります)python3 exploit.py を実行してシェルを取得する。25 行目と 26 行目の範囲を変更する必要があるかもしれません。これは pid と fd の範囲を示しています。デフォルト値は速度と成功率のバランスを考慮した値です。 検証環境では、
kpexec -n ingress-nginx ingress-nginx-controller-xxxxxxxxx-xxxxx -it -- bashを実行して root でコンテナに入り、コンテナ内でls -ahl /proc/*/fd/* | grep bodyを実行すると、対象の値を確認できます。