このycombinator スレッドは、次のように述べています
env X='() { (a)=>\' sh -c "echo date"
最初のトークンをドロップしてから結果を実行し、出力をドロップされたトークンに送信できます。その部分に魔法がかかっているのはわかりますが() { (a)=>\'
、これはなかなか探すのが大変なので、どなたか内部の仕組みを説明していただけると助かります。
リンクされた重複の可能性のある質問では、変数は次を使用して環境変数にエクスポートされます。
env X="() { :;} ;
これは実際には同じではありません
env X='{ (a)=>\'
これは、私が仕組みを理解しようとしている部分です。では、(a)
との=>\'
部分は何をするのでしょうか。明らかに、非常に似たようなことを行っていますが、この脆弱性に対する最初のパッチを回避したという点で異なります。chepner のコメントを参照してください。