
Node.js は、JavaScript でサーバー機能を実装するために使用されるオープンソースのランタイム環境です。
Node.js 内の特定のソフトウェアパッケージには、デシリアライゼーションを扱う脆弱な関数が含まれており、クライアントが特別に細工された Cookie を提供すると、不正なコマンドを実行してしまいます。
この脆弱性は再現されており、リバースシェルを起動できる可能性があります。これは、クライアントのリクエスト内の Cookie から読み取られるサニタイズされていない入力データが原因で発生します。クライアントは Cookie を編集し、bash コマンドを含む安全でないペイロードを注入してサーバーに送信すると、サーバーはそのコマンドを盲目的に実行します。これにより、不正なユーザーがデータベースやマシン全体にアクセスできる可能性があります。
この種の脆弱性の倫理的影響は、バックエンドサーバーのデータベース内でアクセスされる可能性のあるデータにあります。データによっては、ユーザーのセキュリティに悪影響を及ぼし、企業の信頼性や評判に影響を与える可能性があります。そのため、他の攻撃者よりも先に脆弱性を発見することが重要です。これらの脆弱性を特定するには、Snyk、Burp Suite、その他の有料オプションなど、さまざまなツールが利用可能です。
この脆弱性を緩和する最善の方法は、適切な入力サニタイゼーションを実施し、node.js 内の脆弱な unserialise 関数の使用をすべて中止することです。この脆弱な関数の代替として、JSON.parse が推奨されます。