Node.jsエージェントのリリースノート
リリース日: 2024年9月27日
現在サポートしている言語バージョン: 16、18、20、22 LTS
新機能と改善点:
Node.js LTS 22のサポートを追加しました。
Mongooseのクエリパラメータの無害化と検証を追加しました。(NODE-3565)
core.messages
のイベント数を増やしました。(NODE-3627)
リリース日: 2024年9月26日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
npmのAuditエージェントの
readme
ファイルを更新し、正確なものにしました。(NODE-3548)
修正された不具合:
監査機能と不要な依存関係を修正しました。(NODE-3601)
リリース日: 2024年9月16日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
Node.jsエージェントは、Contrastの通信に
CONTRAST__API__TOKEN
の使用をサポートするようになりました。CONTRAST__API__URL
、CONTRAST__API__API_KEY
、CONTRAST__API__SERVICE_KEY
、CONTRAST__API__USER_NAME
の代わりに使用できます。(NODE-3522)注記
Contrastサーバからのダウンロード可能なエージェント設定ファイルにはトークンはまだ追加されません。
Contrast Assessのスタックトレースの設定オプションに新しい列挙値(SINK)を追加しました。(NODE-3591)
リリース日: 2024年8月27日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
このリリースでは、Node 22 LTSをプレビュー版としてサポートします。
この機能は、まだ正式にはサポートされていません。
crypto.createCipher
のサポートを追加しました。(NODE-3533)FS_METHODS に
fs.glob
とfs.globSync
を追加しました。(NODE-3541)
修正された不具合:
Fastifyのルートカバレッジのリファクタリングを行い、dep-hooksのESM版におけるバグの影響を受けないようにしました。(NODE-3563)
rewrite-is-deadzoned.js
を修正しました。(NODE-3572)CSP(Content-Security-Policy)ルールを最新の要件に合わせて更新しました。(NODE-3582)
semver v7.6において、バージョン範囲の比較が正しく行われず、予期せぬ結果を引き起こす可能性があった問題を修正しました。(NODE-3585)
リリース日: 2024年8月15日
現在サポートしている言語バージョン:16、18、20 LTS
修正された不具合:
@fastify/static@7
で報告されたパストラバーサルの過検知を修正しました。(NODE-3549)Axiosパッケージのバージョンを上げ、CVE-2024-39338に対応しました。(NODE-3567)
リリース日: 2024年8月1日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
Node.js v5にデッドゾーンサポートのフェーズ1を実装しました。(NODE-3360)
デッドゾーンは、エージェントが特定のモジュールや関数のインストゥルメンテーションをスキップできるようにするメカニズムです。
node -r
プリロードフラグが適切に使用されていない場合に、ログを出力するようにしました。(NODE-3481)
修正された不具合:
プリフライトリクエストのメッセージにおける重複の問題を修正しました。(NODE-3476)
疎通されていないルートをエージェントが報告していなかった問題を修正しました。(NODE-3548)
テレメトリの報告に関する問題を修正しました。(NODE-3554)
リリース日: 2024年7月30日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
bcryptモジュールにプログラムによるデッドゾーンを使用するようにエージェントを更新しました。(NODE-3424)
リリース日: 2024年7月18日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
本リリースで、Contrastエージェントをnpmに公開する際の新しいプロセスが導入されました。新しいプロセスでは、アーティファクトには
<next>
タグを付けてnpmにリリースされます。<next>
タグを採用することで、npm install @contrast/agent@next
というコマンドを明示的に使用しない限り、次(next)のバージョンのエージェントが自動的にインストールされることがなくなります。次のバージョンのリリースノートが公開された直後に、バージョンのタグは
<latest>
に切り替えられます。この新しいプロセスにより、新機能のプレビューやテストが可能になり、まもなく<latest>
としてタグ付けされるリリースノートを確認することもできます。<next>
タグによってnpmにエージェントを公開するプロセスを改善しました。(NODE-3507)
エージェントは、クラウドリソースID(AWS、Azure、GCP)を抽出して、Contrastに報告するようになりました。(NODE-2932)
この機能は、クラウドプロバイダー上で実行時にリソースIDを収集し、そのIDをログとContrast Webインターフェイスに報告します。
エージェントが、Contrast にクラウドリソースIDを送信するようになりました。(NODE-3493)
エージェントが、GCPのリソースIDを取得するようになりました。(NODE-3503)
修正された不具合:
ログに発生していた
Express.response.push
エラーを修正しました。(NODE-3532)
リリース日: 2024年7月15日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
@contrast/distringuish
のREADMEドキュメントを改善しました。(NODE-3517)報告されるルートのテキストを、より一貫性のある慣用的な表現に変更しました。影響を受けるフレームワークは、Koa、 Hapi、Fastify、Restifyです。
この変更によって、孤立したルートが発生する可能性がありますが、手動で削除するかルートの有効期限機能を使用して削除してください。セッションメタデータやセッションIDを使用している場合、この変更による影響はありません。Expressフレームワークを使用しているお客様は、このリリースの影響を受けません。
Fastifyのルートカバレッジをリファクタリングしました。(NODE-3483)
Koaのネストしたルータのルートカバレッジをサポートするようになりました。(NODE-3484)
ルートカバレッジの統合テストをリファクタリングしました。(NODE-3443)
ルートシグネチャを検査してリファクタリングしました。(NODE - 3444)
アプリケーションがAWSまたはAzure Cloudで実行されている場合、リソース識別子がログに報告されるようになりました。
AWSおよびAzureのリソース識別子を取得するようエージェントが設定されている場合に、リソース識別子が取得されるようになりました。 (NODE-3491、NODE-3492)
X-Contrast-Reporting-Instance
をContrastに送信される各メッセージに追加しました。(NODE-3502)リソースの識別を無効にするための機能フラグを追加しました。(NODE-3513)
エージェントは、リソース識別子の検出のためにクラウドプロバイダを自動検出するようになりました。(NODE-3518)
修正された不具合:
Contrastに送信されるライブラリの使用状況のリクエストは、HTTPの負荷を軽減するためにバッチ処理されるようになりました。デフォルトのバッチサイズは、100です。 (NODE-3509)
リリース日: 2024年7月8日
現在サポートしている言語バージョン:16、18、20 LTS
修正された不具合:
インポートバインディング名がリライタの組み込み変数名と一致する場合にエラーが発生する問題を修正しました。(NODE-3486)
リリース日: 2024年6月27日
現在サポートしている言語バージョン:16、18、20 LTS
修正された不具合:
bson 1.1.6にて、bsonデッドゾーンのrequire-hookでエラーが発生していた問題を修正しました。(NODE-3479)
リリース日: 2024年6月21日
現在サポートしている言語バージョン:16、18、20 LTS
重要
このリリースでは、HTTP/2が正式にサポートされるようになりました。
新機能と改善点:
Contrast AssessでHTTP/2モジュールに対する反射型クロスサイトスクリプティング(Reflected XSS)を実装しました。
レスポンスを検査するルールをHTTP/2の
spdy
ライブラリに対して実装しました。Windowsの
node-require-hook
を修正しました。
修正された不具合:
HTTP2のレスポンススキャンで、検出できない例外が発生していました。(NODE-3468)
リクエストがブロックされると、メトリックスモジュールが実行されずに、リクエストが設定時間を超えたことを警告するタイムアウトが発生していました。(NODE-3475)
リライタのキャッシュからロードされたMJSファイルが、相対パスファイルの読み込みを中断する場合がありました。(NODE-3485)
pg
のarch-componentのインストゥルメンテーションから、イベントリスナーを減らしました。(NODE-3489)暗号解析(
crypto-analysis
)における、アルゴリズムのチェック時に大文字と小文が区別されていませんでした。(NODE-3495)パスにスペースがあると
npm
検出に失敗していました。(NODE-3497)
リリース日: 2024年8月20日
現在サポートしている言語バージョン:12、14、16、18、20 LTS
修正された不具合:
Axiosパッケージのバージョンを上げ、CVE-2024-39338に対応しました。
リリース日: 2024年6月21日
現在サポートしている言語バージョン:12、14、16、18、20 LTS
修正された不具合:
パスにスペースがあると
npm
検出に失敗していました。(NODE-3497)
リリース日: 2024年6月17日
現在サポートしている言語バージョン:12、14、16、18、20 LTS
修正された不具合:
Contrastサービスと通信するためにエージェントが使用するライブラリ、
@grpc/grpc-js
に関連する新しいCVEに対処しました。(NODE-3487)
リリース日: 2024年6月12日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
Contrast ProtectでHTTP/2モジュールに対する反射型クロスサイトスクリプティング(Reflected XSS)を実装しました。
Restify 8、9、10、11のサポートを追加しました(Contrast AssessおよびContrast Protect)。
モジュールインストール時のエラーは必要に応じて発生させるようにし、
_errors[]
に設定しないようにしました。バリデーションを正しく機能させるために、必要なモジュールに検証ロジックを実装しました。
更新されたCEF(共通イベント形式)ガイドの仕様に合わせて、セキュリティログのエスケープを更新しました。
ルート探索時のフレームワークの報告(ルートカバレッジでの互換性チェック)を実装しました。
修正された不具合:
URLSearchParams.toString()
を修正しました。(NODE-3332)ソースマップのチェーンを追加しました。(NODE-3442)
リリース日:2024年5月31日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
バージョン5でのNode.js 14のサポートを非推奨としました。
既存の
@contrast/common
関数を、よりパフォーマンスが高い、自己文書型の関数に置き換えました。
リリース日: 2024年5月22日
現在サポートしている言語バージョン:16、18、20 LTS
修正された不具合:
Contrastサーバで、存在しないエンドポイントを作成して脆弱性を関連付けていました。(NODE-3457)
リリース日: 2024年5月22日
現在サポートしている言語バージョン:16、18、20 LTS
修正された不具合:
レポータのエラー時にAPIキーがマスクされていませんでした。(NODE-3458)
リリース日: 2024年5月21日
現在サポートしている言語バージョン:16、18、20 LTS
修正された不具合:
イベント作成時に
inspect
を使用すると発生していた問題を修正しました。(NODE-3451)反射型クロスサイトスクリプティング(reflected-xss)
の各シンクでisSafeContentType
をチェックするようにしました。(NODE-3452)
リリース日: 2024年5月21日
現在サポートしている言語バージョン:16、18、20 LTS
修正された不具合:
Expressのルート観測のバグを修正しました。(NODE-3453)
リリース日: 2024年5月20日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
Expressのルートカバレッジで、配列で定義されたミドルウェアが正確に処理されるようになりました。
リリース日: 2024年5月15日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
エージェントが常にContrastサーバに報告するように、有効なエージェント設定の有効化フラグを削除しました。
-c
コマンドラインオプションを使用して設定ファイルの場所を指定しているのが検出された場合に警告を出すようにしました。CLIオプションによるエージェントの設定は、v5のエージェントでは廃止になりました。Restifyのルート探索と観測を実装しました。
プログラムによるデッドゾーンの最初のサポートとして、制限された関数内でエージェントの組込みをオフにできるようにしました。
リリース日: 2024年5月7日
現在サポートしている言語バージョン:16、18、20 LTS
修正された不具合:
受信メッセージのヘッダが正しく処理されていませんでした。(NODE-3396)
Expressのルートカバレッジで、
app.use()
とrouter.use()
で定義されたルートが検出されていませんでした。(NODE-3402)TypeError: undefined is not a function at StacktraceFactory.makeFrame
が発生していました。 (NODE-3420)
リリース日: 2024年5月1日
現在サポートしている言語バージョン:12、14、16、18、20 LTS
新機能と改善点:
バージョン4にて、コードイベントのリスナーを登録する
setCodeEventListener()
にtimer.unref()
を追加しました。
リリース日: 2024年4月29日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
バージョン5.xエージェントにおける入力とURLの例外のサポート
Protect用のCLIリライタオプションの提供
修正された不具合:
Expressのルートがパスの配列で登録されている場合に、ルートカバレッジのエラーが発生していました。(NODE-3380)
バージョン5のエージェントで、アーカイブされたアプリケーションが正しく処理されていませんでした。(NODE-3384)
Fastifyのルートカバレッジが正しく報告されていませんでした。 (NODE-3403)
ログに匿名クラスのエラーが書き込まれていませんでした。 (NODE-3406)
リリース日:2024年4月17日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
リライタをCLIコマンドとして実行して、コンテナイメージの作成時にソースコードを変換できるようになりました。これにより、起動時のメモリ消費量が抑えられ、アプリケーションの起動速度を上げることができます。
リリース日:2024年4月16日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
リライタにESMローダーのフックを実装しました。
リライタのデッドゾーンを追加しました。
リリース日: 2024年3月29日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
string.prototype.split()
のトラッキングを最適化しました。
リリース日: 2024年3月28日
現在サポートしている言語バージョン:12、14、16、18、20 LTS
新機能と改善点:
Contrastサービスに関連付けられたCVE-2024-24786を解決しました(バージョン2.28.34に更新)。
リリース日: 2024年3月26日
現在サポートしている言語バージョン:16、18、20 LTS
修正された不具合:
リライタキャッシュのバグを修正し、バージョン5.4.0を非推奨としました。(NODE-3367)
リリース日: 2024年3月25日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
バージョン5.xのエージェントで初めてアプリケーションコードのリライタキャッシュに対応しました。
リリース日:2024年3月20日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
AssessとProtectにフレームワークhapi 21のサポートを追加しました。
アプリケーション更新時のライブラリマニフェストの報告を停止するようにしました。
ESMフックをコンポーネント化し、通常の構成/インストールパターンに従うようにしました。
最新のNodeバージョン用にエージェントのREADMEを更新しました。
修正された不具合:
ライブラリ解析で「Cannot find module 'file:/...'」エラーを修正しました。(NODE-3358)
リリース日:2024年3月6日
現在サポートしている言語バージョン:16、18、20 LTS
修正された不具合:
JSON.parse
で、キャプチャしたキー/値のインデックスが不正な場合に例外をスローしていた問題を修正しました。(NODE-3344)
リリース日:2024年3月5日
現在サポートしている言語バージョン:16、18、20 LTS
修正された不具合:
URL解析プロパゲータで
parseQueryString
フラグに対応していなかった問題を修正しました。(NODE-3340)string.replace
で一部の特殊文字の置換が適切に処理されていなかった問題を修正しました。(NODE-3341)エージェント起動時のドット(.)エントリポイント構文が機能しなくなった問題を修正しました。(NODE-3343)
リリース日:2024年2月16日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
depsの
parent-package-json
を置き換えました。
修正された不具合:
一部の設定フィールドに関して、ログ出力時に情報がマスクされていなかった問題を修正しました。(NODE-3339)
リリース日:2024年2月13日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
NODE_OPTIONSの
--loader
に対して、ロガー(logger)のcleanEnv
を更新しました。
修正された不具合:
全てのUIエンドポイントへのHTTP通信で、プロキシ設定を考慮するよう修正しました。(NODE-3338)
リリース日:2024年2月8日
現在サポートしている言語バージョン:16、18、20 LTS
修正された不具合:
res.send
が呼び出された時に反射型クロスサイトスクリプティング(Reflected XSS)が報告されない問題を修正しました。 (NODE-3334)
リリース日:2024年2月6日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
runner-tap
のユーザビリティを修正しました。
リリース日:2024年2月2日
現在サポートしている言語バージョン:16、18、20 LTS
修正された不具合:
サーバ名やアプリケーション名を英語以外の言語で設定するとエラーが発生する問題を修正しました。 (NODE-3333)
リリース日:2024年2月2日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
重複するESM初期化の負荷を最小限に抑えました。
Axiosクライアントを更新しました。
修正された不具合:
Juice Shop 16が新エージェントで動作しない問題を修正しました。(NODE-3323)
リリース日:2024年1月29日
現在サポートしている言語バージョン:16、18、20 LTS
修正された不具合:
新しいエージェント(v5)のESMローダー機能の不具合を修正しました。(NODE-3320)
リリース日:2024年1月23日
現在サポートしている言語バージョン:16、18、20 LTS
新機能と改善点:
Contrastサービス(SpeedRacer)の削除
エージェントを設定するためのコマンドラインオプションの削除。Python、Ruby、Goエージェントに合わせて、YAMLと環境変数のみをサポート 。
Contrast AssessとContrast Protectの同時実行をサポート
再起動なしでProtectルールのモードを切り替えできる機能
なお、モード(Assess、Protect、両方)の切り替えを有効にするには、アプリケーション/エージェントの再起動が必要
Contrast Protect実行時のライブラリの使用状況(ECU/ELU)に関する報告(本番環境でのライブラリの報告)
Contrastサーバへの有効な設定の報告
devDependencies
をnpmに公開しない - CVE検出の過検知の減少pinoを使用した構造化ログ
アプリケーションを再起動せずにContrast Webアプリケーションからエージェントのログレベルを変更する機能
各リクエストに対するDEBUGレベルでのログ要求待ち時間(ns)
重複排除のために正規化されたURIを使用したルート観測/カバレッジ
SWCを使用した起動時のリライタの高速化
SuperTest APIテストフレームワーク(npm: supertest)のサポート
Frisby APIテストフレームワーク(npm: frisby)のサポート
String.prototype.matchAll()
のプロパゲータのサポートルートを疎通しなくても観測されたルートをアプリケーションの起動時にContrast Webインターフェイスに報告
ESMアプリケーションに対応、以下を使用するエージェントのロード/実行をサポート:
node --loader @contrast/agent app.mjs
(Node.js 16LTSの場合)node --import @contrast/agent app.mjs
(Node.js 18.9.0、20.9.0以降のLTS)node --require @contrast/agent app.js
(ESMを使用しない全てのバージョン)
新しい
--import
ディレクティブは、Node.js 18.9.0、20.9.0以降(LTS)で実行されている全てのアプリケーション(ESMとCJSの両方)でサポートnode --import @contrast/agent app.js
詳細についてはnpmを参照
リリース日:2024年1月30日
現在サポートしている言語バージョン:12、14、16、18、20 LTS
新機能と改善点:
Axiosを更新しました。
ビルド関連を微調整しました。
リリース日:2024年1月5日
現在サポートしている言語バージョン:12、14、16、18、20 LTS
新機能と改善点:
npmエラー時のログ記録を改善しました。
ファイル内のコピーライトテキストを新しい年に合わせて更新しました。
修正された不具合:
Expressのroute-coverageユーティリティで、stackプロパティが不足している場合に例外がスローされていた問題を修正しました。(NODE-3301)
リリース日:2024年4月16日
現在サポートしている言語バージョン:14、16、18、20 LTS
重要
Contrast Protectのみのエージェントは、リリース5.20.6で非推奨となりました。
新機能と改善点:
Kubernetesエージェントオペレータに関するパイプラインジョブを更新しました。
@contrast/protect-agent
は非推奨となりました。READMEにv4セクションを追加しました。
修正された不具合:
全てのUIエンドポイントへのHTTP通信で、プロキシ設定を考慮するよう修正しました。(NODE-3338)
テストベンチ(NodeTestBenches)のDockerfileを更新しました。(NODE-3350)