Google Chromeでwxallowedオプションが必要なのはなぜですか?

Google Chromeでwxallowedオプションが必要なのはなぜですか?

OpenBSDには優れたセキュリティ緩和機能もあります。例: W^X:https://en.wikipedia.org/wiki/W%5EX

ただし、Google Chromeのため、/usr/local FSには「wxallowed」マウントオプションが必要な場合に起動できます。

"wxallowed"は指定されたFSでW^Xを無効にします。

質問:Google Chromeにwxallowedを必要とする品質が非常に低いコードがありますか、それとも複雑なコードがありますか?

前任者。良い例:Firefoxはwxallowedオプションなしでうまく機能するため、W^X緩和を使用します。これはとても良いです。

しかし、別の悪い例:LibreOfficeはwxallowedがなければ起動しません。

答え1

@Kusalanandaが指摘したように、問題のあるポートがたくさんあります。主な問題はJIT(Just-In-Time)コンパイルコードと考えられていますが、誰にとっても話すことはできません。これはプログラムの起動後にコンパイルされるコードです。このコードは実行できるようにどこかに書く必要があります。これにより、コード化されたページも実行できないため、W^Xが中断されます。簡単な回避策は、wxallowedこれが発生するように設定することです。ハードフィックスは、JITおよびW^Xメモリページをサポートするようにコードを書き換えることです(可能な欠点は、コードの生成に加えてJIT + W^Xコードの速度低下を含むユーザーに問題を引き起こす可能性があります)ソフトウェアのパフォーマンスが良いと予想されます)。

誰かがすべてのポートを見て、コードを確認し、コードが書き込み可能なページで実行するのに適しているかどうかに応じて、潜在的に多くの変更を行い、その変更をテストする必要があります。一部のソフトウェアには多くの作業が必要な場合がありますが、他のソフトウェアには変更を実装するのに必要な労働時間(または意志または費用)が不足している場合があります。確認せずにアプリケーションのメモリ混合状態がどれほど悪いかを知る方法がないので、W^X が足りないと「コード品質が悪い」ことを示すことも、そうでない場合もあります。

Firefox では最近 JIT+W^X が発生しました。

関連情報