Skip to main content

In this article

セキュリティレポートを受け、Fastify Node.jsフレームワークのJSONセキュリティが向上

著者
Node How even quick async functions can block the Event Loop starve tumb

2020年3月10日

0 分で読めます

4月9日、HackerOneの脆弱性報奨金プラットフォームでphraとして知られるFrancesco Soncina氏が、Node.js SecurityワーキンググループにサーバーサイドJavaScriptコードインジェクションの脆弱性を報告しました。この脆弱性は、Node.jsのWebアプリケーションフレームワークであるFastifyで最初に特定され、このセキュリティ問題の影響を受ける対象として報告されました。

オープンソースのFastifyプロジェクトのメンテナーの1人であるMatteo Collina氏は、報告を速やかにトリアージし、概念実証(PoC)のエクスプロイトコードを確認するよう依頼されました。このPoC攻撃では、フレームワークが読み込むJSONスキーマに埋め込まれたJavaScriptコードインジェクションを使い、リバースシェルを起動していました。

最終的に、このセキュリティレポートは比較的影響が小さいと判断されました。Fastify自体には影響しないためです。JSONスキーマはアプリケーションの設定項目としてユーザーが提供するものであり、信頼できる入力として扱われるためです。

それでも、検証済みのCVE脆弱性として登録されるかどうかにかかわらず、このようなセキュリティレポートが重要であることを強調するのは興味深く、また不可欠です。

特にこのケースでは、レポートを通じたセキュリティに関する議論は、Fastifyのメンテナーと脆弱性を開示したセキュリティ研究者との間で続いている議論を中心に展開しました。Collina氏とSoncina氏の協力と決意は、実に印象的です。2人は、JSONのレンダリングロジックに潜むあらゆるセキュリティ上の弱点を洗い出し、今後発生しうるセキュリティ問題に可能な限り耐えられるよう取り組みました。

特に注目すべき点として、このセキュリティ脆弱性レポートを受け、次の改善が行われました。

  1. fast-json-stringifyのJSON解析がより堅牢で安全になりました。これはGitHubのこのプルリクエストに反映され、その後、バージョン1.15.3として正式にリリースされました。

  2. ドキュメントにセキュリティに関する免責事項が追加され、懸念事項とリスク領域が明確に示されました。これにより、ライブラリのユーザーはデータの扱い方を十分に理解できるようになりました。このプルリクエストで導入されました。

このレポートをまとめ、開示に向けて準備するなかで、セキュリティ情報の開示が持つ価値をもっと評価すべきだと気づきました。報告された問題はFastifyにもfast-json-stringifyにも直接的な影響はありませんでしたが、有意義な議論を促しました。何よりも、メンテナーの間でコードに関するセキュリティ上の懸念への意識が高まりました。

最後に

セキュリティ研究者やモジュールのメンテナーの皆さんに、元のレポートに記されたメッセージを紹介して締めくくります。Node.js、JavaScript、オープンソースのエコシステムを安全にするために尽力してくださっている皆さんに、改めて感謝します。

fast-json-stringifyとfastifyのセキュリティレポートが脆弱性なのか、プロジェクトのポリシー上の問題なのかについて、lirantalが議論しているGitHubコメントのスクリーンショット。

続きを読む

Live Stream

修正エージェントをわかりやすく解説:見つけるより直すことが重要な理由

SnykのRemediation Agentが、セキュリティインテリジェンス、破壊可能性分析、検証を活用して、脆弱性をマージ可能なプルリクエストに変える仕組みをご覧ください。

feature insights context
Blog

keyv npm侵害の実態:preinstallマルウェア、信頼された来歴、IDEフック

keyv 6.0.0と関連するnpmリリース10件に、インストール時に実行されるマルウェアが含まれていました。影響を受けるバージョン、ハッシュ、検出手順、安全な修復の順序を解説します。

feature ai ide dark
Blog

Evo Agentic AppSecの初公開:エージェント型の脆弱性修正と悪意あるコードの防御

Snyk初のAgentic AppSec機能をご紹介します。脆弱性を自動修正するRemediation Agentと、危険なパッケージのリリースを未然に防ぐMalicious Code Defenseを解説します。