Skip to main content

Pythonエージェントのリリースノート

リリース日:2024年6月3日

現在サポートしている言語バージョン:Python 3.8 - 3.12

修正された不具合:

  • 無効なマルチパートフォームにおけるデータの境界の処理時に、不必要に大量の例外がログに出力されていました。(PYT-3118)

  • エージェントのセッションIDが設定されていない場合、エージェントの検出結果がContrastサーバに正しく送信されていませんでした。(PYT-3339)

  • Numbaで関数をJITコンパイルすると、エージェントのインストゥルメンテーションでValueErrorが発生していました。(PYT-3342)

リリース日: 2024年5月30日

現在サポートしている言語バージョン:Python 3.8 - 3.12

新機能と改善点:

  • ローカル設定によるSyslogへの攻撃イベントのレポートに対応しました。Contrast Webインターフェイスからの設定への対応は、近日中に行う予定です。

  • 最も一般的な伝播操作であるスライスのパフォーマンスを改善しました。

  • スタックトレース生成のパフォーマンスを大幅に向上させました。

  • zippのバージョンを3.18.1から3.18.2に上げました。

  • contrast-agentパッケージにオプションの.[debug]変数を追加しました。現時点では、このオプションには、パフォーマンスの問題をデバッグするための実験的なトレースツールが含まれています。

修正された不具合:

  • クラス属性に格納されている関数にエージェントがインストゥルメンテーションされると、例外が発生していました。(PYT-3321)

リリース日: 2024年5月20日

現在サポートしている言語バージョン:Python 3.8 - 3.12

新機能と改善点:

  • agent-libを最新バージョンに更新しました。

  • ルート探索とルート観測をリファクタリングして、ルート探索をバックグラウンドスレッドに移行する準備をしました。

  • エージェントの直接の依存関係を静的ファイルに移行しました。

  • Protectを利用していない場合に、アプリケーションの機密データをマスクするアクティビティが発生しないようにしました。

  • アプリケーションにContrastエージェントを組み込んでいる場合に、ルートがマッピングされていないと想定されるレスポンスコードのルート観測は無視されるようになりました。

  • Python 3.8のサポートが2024年10月で終了するため、非推奨の警告を追加しました。

  • ルートが検出されたフレームワークが報告されるようになりました。

修正された不具合:

  • 一部の文字列サブクラスの初期化の検査時に、エージェントによってRecursionErrorが発生する可能性がありました。(PYT-3295)

  • enumfields.from_db_valueの呼び出しに対して、エージェントによる検査で不要な待機時間とCPU使用率が発生していました。(PYT-3321)

  • ライブラリリーダーが配布を処理する際に、名前を全て小文字に変換していました。(PYT-3326)

リリース日: 2024年5月7日

現在サポートしている言語バージョン:Python 3.8 - 3.12

新機能と改善点:

  • データフローのイベント履歴をリストではなくグラフとして保存するようにしました。

  • ProtectルールからPERMITモードを削除しました(使用していないため)。

  • import_patchのパフォーマンスを改善しました。

修正された不具合:

  • 特定の予期しない型の処理において、Contrastへのデータ送信時に文字列を小文字に変換できなかった問題を修正しました。(PYT-3282)

リリース日: 2024年4月25日

現在サポートしている言語バージョン:Python 3.8 - 3.12

新機能と改善点:

  • PythonエージェントとContrastサーバ間の起動時の通信を変更しました。その結果、EOPをご利用のお客様はEOP 3.11.2以降、Pythonエージェント8.0.0以降が必要になります。EOPのバージョンが3.11.2より古い場合、エージェントの依存関係を7.xに固定してください。例:pip install -U 'contrast-agent<8'

  • エージェント起動時に500エラーが返された場合の処理を追加しました。

  • デフォルトでfunchookを無効にしました。

修正された不具合:

  • Contrast Protectで攻撃が検知された時に、探査検出のイベントが重複してContrastに送信されていました。(PYT-3255)

  • 特定の予期しない型の処理時に、書き換え処理によってContrast Assessでデータフローが伝達されないことがありました。(PYT-3248)

  • str以外のオブジェクトがSQLiシンクに渡されると、Contrast Protectで内部例外が正しくスローされていませんでした。(PYT-3228)

リリース日:2024年4月9日

現在サポートしている言語バージョン:Python 3.8 - 3.12

新機能と改善点:

  • contrast-python-runにコマンドが渡されなかった場合のエラーメッセージを改善しました。

  • リライタを最適化しました。

  • ライブラリの検出を最初のリクエストから起動時に移動して、応答待ち時間を改善しました。

修正された不具合:

  • パスにUnicode文字が含まれるリクエストをエージェントが受信した場合に、レポートを中断する例外が発生していました。(PYT-3134)

  • 無効なUTF-8文字が含まれるリクエストをエージェントが受信した場合に、レポートを中断する例外が発生していました。(PYT-3135)

  • Cythonを使用するFalconアプリにエージェントが組み込まれた場合に、一部のリクエストプロパティがソースとして追跡されていませんでした。(PYT-3218)

  • execコールとevalコールの検査時に、異なるコンパイラフラグが使用されていたため、名前が未定義になっていました。(PYT-3250)

リリース日:2024年3月20日

現在サポートしている言語バージョン:Python 3.8 - 3.12

修正された不具合:

  • FastAPIアプリでStaticFilesエンドポイントを解析する際、エージェントがルート情報を正しく記録していませんでした。(PYT-2917)

  • Gunicornをgeventまたはeventletで使用すると、ContrastランナーのインストゥルメンテーションでRecursionErrorが発生していました。(PYT-3212)

リリース日:2024年3月14日

現在サポートしている言語バージョン:Python 3.8 - 3.12

修正された不具合:

  • Flaskで404エラー(not found)になるリクエストが解析されると、Assessで新しいルートが誤って報告されていた問題を修正しました。(PYT-3209)

リリース日:2024年3月8日

現在サポートしている言語バージョン:Python 3.8 - 3.12

修正された不具合:

  • アプリケーションで相対的なLocationレスポンスヘッダが提供された場合に、値が誤って絶対位置に変換されていた問題を修正しました。(PYT-3208)

リリース日:2024年2月22日

現在サポートしている言語バージョン:Python 3.8 - 3.12

新機能と改善点:

  • Django 4.2.xと5.xのサポートを追加しました。

  • SQLインジェクションのインフィルタ解析でagent-libを使用するようにしました。

  • agent-operator-imagesを更新するリリースステップを追加しました。

  • Flask 3.xのサポートを追加しました。

  • パイプラインでのテレメトリを停止しました。

  • 結合テストの環境変数を設定した状態で単体テストが成功するようにしました。

  • 全てのdependabotの設定をdependabot.ymlに移動しました。

  • structlogユーティリティのヘッダを最適化しました。

  • コマンドインジェクションのインフィルタでagent-libを使用するようにしました。

  • requests.Sessionを使用して、 ReportingClientからのHTTP接続を再利用するようにしました。

  • Django 5.0のescapeseqのサポートを検証しました。

  • agent.logger.pathに不足していた親ディレクトリを全て作成しました。

修正された不具合:

  • HTML以外のレスポンスボディの解析時に、Contrast Assessで例外が適切に処理されていませんでした。(PYT-2870)

  • ポリシーベースの書き換えとパッチポリシー間の相互作用が適切ではない場合がありました。 (PYT-3064)

  • プロキシサーバを使用するように設定している場合に、プロキシのURLスキームが対象サーバと一致しないと、エージェントでネットワーク設定が正常に使用されていませんでした。(PYT-3189)

リリース日:2024年1月23日

現在サポートしている言語バージョン:Python 3.8 - 3.12

新機能と改善点:

  • EOLとなったフレームワーク(Django 1、 Django 2、Pyramid 1.10より前、Flask 1.0より前、Falcon 2.0より前)のサポートを終了しました。

  • Python 3.7のサポートを終了しました。

  • pytest実行後にlibcontrastログが自動的に削除されるようになりました。

  • 各モジュールのメタデータの取得にimportlib.metadataを使用するようにしました。

  • サポートしていないOpenAIのdependabotチェックにフラグが立たないようignoreオプションを追加しました。

  • 一部のContrast TeamserverのURLを更新しました。

修正された不具合:

  • リクエストの負荷が高い状態でトラックされた文字列を期限切れにすると、エージェントからKeyErrorがログに出力されることがありました。(PYT-3057)

  • CWD(現在の作業ディレクトリ)の仮想環境でエージェントを実行した場合に、Contrast Webインターフェイスに表示されるスタックトレース名が正しくトリミングされていませんでした。(PYT-3125)

  • DjangoアプリケーションでDBに基づくセッションを使用してユーザを取得すると、 Assessで「安全ではないコード実行」の脆弱性が検出される可能性がありました。(PYT-3165)

リリース日:2024年1月9日

現在サポートしている言語バージョン:Python 3.8 - 3.12

新機能と改善点:

  • vendoringしたimportlib-metadataを更新しました。

  • structlogを最新バージョンに更新しました。

  • test_fstring.py test_self_documenting_fstring_formatを最新のスタイルに更新しました。

  • ローダーの環境変数を安定化しました。

  • Dependabotでflask-sqlalchemyの要件を3.1に更新しました。

  • api.certificate設定の統合テストを追加しました。

  • SQLAlchemy 2.0のサポートを更新/追加しました。

リリース日:2024年1月2日

現在サポートしている言語バージョン:Python 3.8 - 3.12

新機能と改善点:

  • アプリケーション更新時のライブラリマニフェストの報告を停止するようにしました。

  • 以下のサポートを終了しました:

    • Bottle 0.12より前のバージョン

    • FastAPI 0.71.xより前のバージョン

    • Falcon 3.0より前のバージョン

    • Django 3.2より前のバージョン

  • importlib.metadataから関連するコードを移植しました。

  • ライブラリリーダーの解析にimportlib.metadataを利用するようにしました。

  • AssessとProtectを同時に実行できるようにしました。

  • structlogの依存関係を更新しました。

  • Werkzeugを3.0に更新しました。

  • モックのcallオブジェクトで、インデックスを作成する代わりにargs属性とkwargs属性を使用するように変更しました。

  • Dependabotでカバレッジ要件を==7.2.*から==7.3.*に更新しました。

  • Blackを最新バージョンに更新しました。

  • typing-extensionsの依存関係を最新バージョンに更新しました。

  • python3.7用にマークを付けていたコードを削除しました。

アーカイブ

リリース日:2023年11月30日

現在サポートしている言語バージョン:Python 3.8 - 3.12

新機能と改善点:

  • 言語バージョン3.7のサポートを終了しました。

  • mysql-connectorを最新バージョンに更新しました。

リリース日: 2023年11月29日

現在サポートしている言語バージョン:Python 3.7 - 3.12

新機能と改善点:

  • 言語バージョン3.12をサポートするようになりました。

  • 有効な設定および設定のソースを報告するようにしました。

  • 共通設定にagent.logger.stdoutのサポートを追加しました。

  • sys.monitoringのINSTRUCTIONレベルのイベントを有効にしました。

  • エージェントログのパスがSTDOUTに設定されている場合に、有効な設定をディスクに記録しようとすると例外がスローされていた問題を解決しました。

リリース日: 2023年11月21日

現在サポートしている言語バージョン:Python 3.7 - 3.11

新機能と改善点:

  • ハードコードされたキーリストからSCHEMAを外すよう更新しました。

修正された不具合:

  • 手動によるミドルウェアの設定を使用してDjangoアプリケーションにエージェントを組み込んだ場合、ルートが自動検出されていませんでした。(PYT-3085)

リリース日: 2023年11月17日

現在サポートしている言語バージョン:Python 3.7 - 3.11

修正された不具合:

  • DjangoアプリケーションでのAssess実行時に、 エージェントがURLスキームを信頼性のないデータのソースとして誤ってマークしていました。 (PYT-3082)

リリース日: 2023年10月18日

現在サポートしている言語バージョン:Python 3.7 - 3.11

修正された不具合:

  • FastAPIでの正常な静的リソースへのアクセス時に、エージェントがパストラバーサルを報告していました。(PYT-3021)

  • Assessモードでリクエストの解析時に、エージェントでメモリリークが発生していました。(PYT-3050)

リリース日: 2023年10月11日

現在サポートしている言語バージョン:Python 3.7 - 3.11

新機能と改善点:

  • スレッドIDを取得するのに最新規格を使用するようログ機能を更新し、JSON以外のレスポンスでContrastサーバからのログメッセージを改善しました。

修正された不具合:

  • Contrastランナーを使用してGenshiを使用する際に、テンプレートに%があるとエージェントで例外が発生していました。(PYT-3005)

  • 既知の安全なパーサでlxml.etree.fromstringが呼び出された場合に、AssessでXML外部実体参照(XXE)の脆弱性が誤って報告されていました。(PYT-3013)

リリース日: 2023年9月7日

現在サポートしている言語バージョン:Python 3.7 - 3.11

新機能と改善点:

  • 非推奨の攻撃タイミング機能をContrast Protectから削除しました。

  • ApplicationProxyクラスをfunction_wrappersと入れ替えました。

  • リクエストデータのURLの正規化を仕様に基づいて更新しました。

  • Contrastランナーの詳細なヘルプメッセージを作成しました。

  • pathlibに伝播ポリシーを追加しました。

  • 接続開始プロセスの完了後に有効な設定をログに記録するようにしました。

  • 失敗したランタイム接続の結果のログを生成するようにしました。

修正された不具合:

  • 古いバージョンのFastAPIフレームワークテストに対してanyioのバージョンを固定するよう修正しました。(PYT-3001)

  • CacheControlsRuleの例外があっても、キャッシュ防止制御の脆弱性が報告されていた問題を修正しました。(PYT-2997)

  • ユニットテストで「Directory not empty」の警告が出ていた問題を修正しました。(PYT-2996)

リリース日: 2023年8月14日

現在サポートしている言語バージョン:Python 3.7 - 3.11

新機能と改善点:

  • Contrastランナーをリリースしました。Pythonアプリケーションを検査するための新しいコマンドラインインターフェイスです。

  • deprecated_middlewareモジュールと関連する全てのコードを削除しました。

  • ランナーにリライタを登録した直後から、ポリシーベースの変換が適用されるようになりました。

  • funchookが有効になっていない環境で、文字列フックが早い段階で適用されるようになりました。

  • ruamel-yamlの依存関係を最新バージョンに更新しました。

  • requestsライブラリにssrfトリガーポリシーを追加しました。

  • 特定のミドルウェアのクラスが使用されている場合の非推奨の警告を追加しました。

  • 最新のFastAPI(0.96.*)のサポートを追加しました。

  • ミドルウェアに自動でエージェント組み込みを行うことを無効にする、agent.python.enable_automatic_middleware configurationオプションを追加しました。

  • M1/ARMアーキテクチャで、エラーを発することなくインストールできるようになりました。

  • posixpathのポリシーベースの変換(隠し設定オプションを含む)を削除し、伝播ポリシーを追加しました。

  • typing-extensionsの依存関係を最新バージョンに更新しました。

  • ミドルウェアAIOHTTP、Bottle、Falcon(ASGI)、Falcon (WSGI)、FastAPI、Flask、Pyramid、Quartにエージェントを自動で組み込めるようになりました。

  • JSONポリシーのcontrast.agent.policy.loader および未使用のコードを削除しました。

  • TRACEのログ取得を無くしました。

  • builtinsモジュールの伝播ポリシーを更新しました。

  • genericpathモジュールに伝播ポリシーを追加しました。

  • _codecsモジュールの伝播ポリシーを追加/更新しました。

  • contrast.__init__を更新して、pkg_resourcesを直接使えるようにしました。

  • Django用ミドルウェア(ASGIとWSGI)、Falcon用ミドルウェア(ASGIとWSGI)、Pyramid用ミドルウェアを削除しました。

  • Contrast Protectのレスポンスを上書きしていた機能を削除しました。

修正された不具合:

  • Contrast Protectで、HTTPフォームデータからの攻撃が報告される際に、ソースが誤ってクエリ文字列としてリストされる問題を解決しました。(PYT-2974)

  • vulnpyのパイプラインを修正しました。(PYT-2955)

  • app.run()に対してQuartのエージェントの自動組み込みを修正しました。(PYT-2929)

  • app.run()を使用するサーバで起動されるFlaskアプリケーションに、エージェントが自動で組み込まれるよう修正しました。(PYT-2918)

  • 「AttributeError: BoundLogger object has no attribute trace」を修正しました。(PYT-2790)

リリース日: 2023年8月4日

現在サポートしている言語バージョン:Python 3.7 - 3.11

新機能と改善点:

  • OpenAI APIのプロンプトインジェクションをトリガーするポリシーを実装しました。

リリース日: 2023年7月26日

現在サポートしている言語バージョン:Python 3.7 - 3.11

新機能と改善点:

  • 証明書エラーを無視するためのapi.certificate.ignore_cert_errors設定オプションを追加しました。

リリース日: 2023年7月26日

現在サポートしている言語バージョン:Python 3.7 - 3.11

新機能と改善点:

  • Python 3.7のサポートに対して非推奨の警告を追加しました。

  • バージョン管理のためのsetuptools-scmの利用を再検討しました。

リリース日: 2023年6月27日

現在サポートしている言語バージョン:Python 3.7 - 3.11

修正された不具合:

  • _evaluate_body_jsonに文字列以外が渡されるとエージェントがクラッシュする。 (PYT-2930)

リリース日: 2023年5月31日

現在サポートしている言語バージョン:Python 3.7 - 3.11

修正された不具合:

  • テレメトリが有効で接続に失敗した場合、エージェントがメインアプリケーションスレッドをブロックしてしまう。(PYT-2872)

リリース日: 2023年5月25日

現在サポートしている言語バージョン:Python 3.7 - 3.11

新機能と改善点:

  • 一部の特殊なケースにおけるエラーを回避するためにエージェントの解析機能を更新しました。

リリース日: 2023年5月16日

現在サポートしている言語バージョン:Python 3.7 - 3.11

新機能と改善点:

  • ContrastのURLの末尾にスラッシュが設定されている場合、取り除かれるようになりました。

Release date: May 15, 2023

Language versions currently supported: Python 3.7 - 3.11

Bug fixes:

  • When using the rewriter with an instrumented application that uses Pandas, an exception occurs. (PYT-2856)

Release date: May 11, 2023

Language versions currently supported: Python 3.7 - 3.11

Bug fixes:

  • When the ASGI scope contained a client value of None, the agent raised an exception during source tracking. (PYT-2853)

Release date: May 9, 2023

Language versions currently supported: Python 3.7 - 3.11

New and improved:

  • Updated PyPI deploy action.

  • Moved agent initialization out of runner and back into middleware.

  • Add integration test for Assess dataflow using runner with uwsgi.

  • Bump typing-extensions dependency to the latest version.

  • Bump ruamel-yaml dependency to the latest version.

  • Bump isort dependency to the latest version.

  • Bump structlog dependency to latest version.

  • Moved all packages in contrast.extern to new contrast_vendor package.

  • Removed flask-specific middleware.

  • Automatic middleware hooks now set and log the detected framework.

  • Removed fastAPI-specific middleware.

  • Added policy for urllib.parse propagators and sanitizers.

Bug fixes:

  • When the ASGI scope contained a client value of None, the agent raised an exception. (PYT-2850)

  • When running in Protect mode, the agent incorrectly identified normal header values as attacks. (PYT-2834)

  • When processing an HTTP 1.1 chunked response, the agent prevents the entire response from being sent to the client. (PYT-2822)

  • When analyzing certain objects with custom __bool__ implementations, the agent raised an exception. (PYT-2757)

  • When performing Assess analysis, the agent occasionally failed to correctly determine if an unknown object was iterable. (PYT-2756)

Release date: April 25, 2023

Language versions currently supported: Python 3.7 - 3.11

Bug fixes:

  • When processing certain JSON request bodies, Contrast Protect did not correctly adjust input types before performing analysis. (PYT-2824)

  • When analyzing mysql-connector installations missing a C extension, Contrast Assess failed to instrument the entire library. (PYT-2820)

[en] Release date: April 21, 2023

[en] Language versions currently supported: Python 3.7 - 3.11

[en] Bug fixes:

  • [en] Fixed issue when using the agent in a Python 3.7 environment that does not have typing-extensions installed, the agent logger raises an exception. (PYT-2814)

Release date: April 11, 2023

Language versions currently supported: Python 3.7 - 3.11

New and improved:

  • Removed all bottle-specific logic from BottleMiddleware.

  • Updated RuntimeError in setup.py to include a workaround for aarch/arm systems.

  • Removed quart-specific middleware.

  • Added a lock for agent state initialization.

  • Added support for the latest FastAPI (0.93.*).

  • Changed the AgentLib log level.

  • Integrated the Protect Library.

Bug fixes:

  • Fixed AttributeError: Constant object had no elts attribute. (PYT-2740)

  • Fixed UnicodeDecodeError: utf-8 codec could not decode byte 0xff in position 0: invalid start byte. (PYT-2725)

  • Fixed TypeError: module, class, method, function, traceback, frame, or code object was expected, got partial. (PYT-2664)

  • Fixed SystemError: <built-in function in_scope> returned a result with an error set. (PYT-2659)

  • Fixed flaky pipeline step for server activity. No more flaky failures in flask-agent-direct-teamserver-response. (PYT-2651)

Release date: March 30, 2023

Language versions currently supported: Python 3.7 - 3.11

Bug fixes:

  • When trying to identify the current platform on startup, the agent raised an exception. (PYT-2777)

Release date: March 20, 2023

Language versions currently supported: Python 3.7 - 3.11

Bug fixes:

  • When instrumenting Bottle and Falcon applications, middlewares closer to the application than ContrastMiddleware were bypassed. (PYT-2727)

Release date: March 15, 2023

Language versions currently supported: Python 3.7 - 3.11

New and improved:

  • Upgraded externed wrapt from 1.14.1 to 1.15.0.

  • Upgraded agent-lib to 0.5.2

  • Added propagation policy for posixpath (os.path)

  • Bump pinned version of contrast-agent-lib to v0.4.0

  • Updated copywrite message

  • Removed the bypass option for messages

  • Updated flask-sqlalchemy to 3.0.*

  • Added support for Quart 0.18 / Werkzeug 2.2

  • When app server exits, Telemetry will send any messages in queue

  • Deprecated SR

  • Added support for Python 3.11

Bug fixes:

  • AttributeError: 'Settings' object has no attribute 'last_update_service'. (PYT-2563)

  • AttributeError: 'NoneType' object has no attribute 'disabled_assess_rules'. (PYT-2559)

  • AttributeError: 'NoneType' object has no attribute 'reportable_format'. (PYT-2552)

Release date: March 15, 2023

Language versions currently supported: Python 3.7 - 3.10

No updates

Release date: March 13, 2023

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • When the regex split result contains None, an exception occurs in the propagator. (PYT-2644)

  • When unicode-escape is used as encoding, LookupError occurs in path-traversal sink. (PYT-2553)

Release date: March 9, 2023

Language versions currently supported: Python 3.7 - 3.10

New and improved:

  • Bump contrast-agent-lib version to 0.5.2.

Release date: March 1, 2023

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • When too many assess regex propagation events occurred in a single request, the agent continued to propagate regardless of assess.max_propagation_events. (PYT-2676)

Release date: February 15, 2023

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • When evaluating the protect deserialization rule for pickled data, the agent easily found false positives. (PYT-2646)

Release date: January 23, 2023

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • When performing Django's safe_join on a PosixPath object, the agent raised a TypeError. (PYT-2592)

Release date: January 18, 2023

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • When the Contrast Service was too slow to start on server startup, the Agent failed to instrument the application. (PYT-2582)

Release date: January 11, 2023

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • When the agent failed to connect to the Contrast Service, it raised an AttributeError when handling the first request to the application. (PYT-2574)

Release date: January 6, 2023

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • When untrusted data was safely passed to subprocess functions using shell=False, the agent incorrectly reported a command injection vulnerability. (PYT-2557)

Release date: November 17, 2022

Language versions currently supported: Python 3.7 - 3.10

New and improved:

  • Added support for URL exclusions when communicating directly with Contrast.

  • Added configuration support for input exclusions directly from Contrast.

  • Integrated AgentLib Request End for contrast_c::check_cmd_injection_query

  • Upgraded externed typing extensions to latest version.

Bug fixes:

  • When ASGI websocket endpoints are used with the agent enabled, the app crashes. (PYT-2517)

Release date: October 31, 2022

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • When starting the Contrast Service without a path, the Agent defaults to STDOUT rather than the default file path. (PYT-2505)

  • Reduced frequency of server activity messages. (PYT-2484)

Release date: October 19, 2022

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • When attempting to rewrite the target of an append, the agent incorrectly passes self rather than the original Attribute. (PYT-2496)

Release date: October 18, 2022

Language versions currently supported: Python 3.7 - 3.10

New and improved:

  • Added support for FastAPI 0.85. (PYT-2456)

  • Implemented PII masking in the agent. (PYT-2462)

  • Added a CONTRAST__AGENT__PYTHON__REWRITE option that disables rewriting. (PYT-2485)

Release date: October 3, 2022

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • When running the agent, getting specifications in rewriter throws AttributeError. (PYT-2480)

Release date: September 28, 2022

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • When running the agent, rewriter cannot find specifications path. (PYT-2476)

Release date: September 21, 2022

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • Fixed issue for when an agent receives a websocket request and a KeyError was returned. (PYT-2470)

Release date: September 20, 2022

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • Fixed issue where an application instrumented with the agent in an environment without lxml installed crashed. (PYT-2464)

Release date: September 1, 2022

Language versions currently supported: Python 3.7 - 3.10

New and improved:

  • Falcon ASGI support is now available in Python agent 5.14.0.

  • Added support for Django 4.

Bug fixes:

  • When attempting to rewrite code for instrumentation, certain code patterns result in infinite loops, resulting in application crashes. (PYT-2444)

Release date: July 11, 2022

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • When agent.service.logger was configured to log to an unwritable path, the Contrast Service wrote DEBUG logs to stdout regardless of the configured log level.

Release date: June 21, 2022

Language versions currently supported: Python 3.7 - 3.10

Release date: June 13, 2022

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • When sampling settings are translated from Contrast, a String vs Enum mismatch causes them to be improperly applied. (PYT-2286)

  • When sqli protect rule isn't enabled, a NoneType error is logged (Telemetry-reported Error). (PYT-2311)

Release date: June 7, 2022

Language versions currently supported: Python 3.7 - 3.10

Release date: May 30, 2022

Language versions currently supported: Python 3.7 - 3.10

Release date: May 27, 2022

Language versions currently supported: Python 3.7 - 3.10

Release date: May 25, 2022

Language versions currently supported: Python 3.7 - 3.10

New and improved:

  • Telemetry exceptions - production issues from live customer environments will be reported to our servers to help remediate bugs.

Release date: April 14, 2022

Language versions currently supported: Python 3.7 - 3.10

New and improved:

  • Expanded FastAPI support to version 0.75.*.

Bug fixes:

  • When assess configuration specifies sampling.baseline, the agent incorrectly analyzes fewer baseline requests than expected. (PYT-2238)

Release date: April 11, 2022

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • When an assess-instrumented function throws any exception, the agent logs it at ERROR level even when recoverable. (PYT-2234)

Release date: April 7, 2022

Language versions currently supported: Python 3.7 - 3.10

New and improved:

  • Modified the agent to better support asynchronous functionality added by event.

Release date: April 5, 2022

Language versions currently supported: Python 3.7 - 3.10

New and improved:

  • Introduction of the Assess Sampling feature to facilitate performance tuning.

Bug fixes:

  • When a Django request's path is missing a required "/", the agent does not mark the route as observed. (PYT-2222)

Release date: March 30, 2022

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • When Django creates a redirect response to append a trailing "/" to the URL path, the agent incorrectly finds an unvalidated redirect (PYT-2218)

Release date: March 28, 2022

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • When the agent encounters an issue during assess dataflow tracking, an error level, rather than debug, log message is created, potentially filling log tools. (PYT-2196)

Release date: March 23, 2022

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • When processing a request without a context, a missing None check results in an AttributeError. (PYT-2168)

  • When Protect is disabled either locally or in Contrast, the agent disables it. (PYT-2186)

Release date: March 16, 2022

Language versions currently supported: Python 3.7 - 3.10

Bug fixes:

  • When a Django app serves a jinja template, the agent consumes the response (PYT-2166)

  • When an aiohttp application in Protect mode receives a ContrastServiceException, an error that crashed the app occurs (PYT-2167)

  • When an aiohttp, Fastapi, or Bottle app is onboarded, an incorrect framework name is reported (PYT-2171)

Release date: March 1, 2022

Language versions currently supported: Python 3.7 - 3.10

New and improved:

  • The Python agent now supports FastAPI 0.74.

Release date: February 16, 2022

Language versions currently supported: Python 3.7 - 3.10

New and improved:

  • Added web application framework support for AioHttp.

Release date: February 11, 2022

Language versions currently supported: Python 3.7 - 3.9

New and improved:

  • Support for asynchronous web application framework - AioHTTP.

Release date: February 1, 2022

Language versions currently supported: Python 3.7 - 3.9

Bug fixes:

  • When a protect-instrumented method receives non-UTF-8 encoded bytes, the agent fails to perform protect analysis. (PYT-2028)

Release date: January 13, 2022

Language versions currently supported: Python 3.7 - 3.9

Bug fixes:

  • When an application calls an instrumented method with a keyword-argument named "self", the agent throws an exception. (PYT-1998)

Release date: January 7, 2022

Language versions currently supported: Python 3.7 - 3.9

注記

Python versions 2.7.X, 3.5.X and 3.6.X are no longer supported after the Python agent 4.14.3.

Release date: December 15, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

注記

Python versions 2.7.X, 3.5.X and 3.6.X are no longer supported after the Python agent 4.14.3.

Release date: December 6, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

Bug fixes:

  • When handling many concurrent requests in Protect mode, the agent failed to perform path-traversal postfilter analysis. (PYT-1964)

Release date: November 30, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

注記

As of Python 4.14.1, the agent will be bundled with Contrast Service version 2.27.2.

Release date: November 23, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

New and improved:

  • Expanded web application framework support for Pyramid 2.

  • Telemetry is now enabled in the Python agent in order to gather valuable data about the agent’s functionality. The data is all anonymous, no personal information is collected.

Release date: November 18, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

New and improved:

  • We no longer report vulnerabilities when the value of url_scheme is used in a trigger.

  • The Python agent now supports the web framework FastAPI.

Release date: October 21, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

New and improved:

  • Expanded web server support for uWSGI.

  • Expanded web server support for gUnicorn.

  • Expanded web server support for Uvicorn.

  • Architectural improvements for propagation and associated extension hooks.

Release date: September 16, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

Bug fixes:

  • When the agent was installed in Python 2.7, the latest version of the protobuf dependency caused agent startup failure as it dropped support for older Python versions. (PYT-1757)

Release date: September 1, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

Bug fixes:

  • When a Bottle or Django app received a request with certain encoded chars in the path, the agent raised a UnicodeEncodeError. (PYT-1742)

Release date: August 24, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

New and improved:

  • Implemented event limit specifications to improve performance.

Bug fixes:

  • When the agent tried to detect the application framework, it always picked the default one. (PYT-1707)

Release date: July 29, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

New and improved:

  • Performance improvements from refactoring and other optimizations.

Release date: July 8, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

Bug fixes:

  • When a framework test was executed in an environment in which the agent was installed, then load ordering between the test code and agent code causes an inability to track some objects. (PYT-1574)

Release date: July 1, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

New and improved:

  • Remove specific support of the Pylons framework given its merger with the Pyramid framework.

  • Expand support of the Flask framework to include the new 2.X major version.

Bug fixes:

  • When a vulnerability payload is too large, TeamServer cannot process the finding and rejects it. (PYT-1488)

Release date: May 21, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

New and improved:

  • Added support for built-in sanitization and validation in the Falcon 2.X and Pyramid Web Application Frameworks to improve vulnerability detection when Assess is enabled.

  • The agent now reports all dependencies used by the application, even those without Python files.

  • The agent now supports TRACE level logging to assist with diagnostic investigations.

  • The agent has been refactored to provide performance improvement during vulnerability detection and reporting when Assess is enabled.

  • The agent now supports MarkupSafe 2.0 as used for cross-site scripting (XSS) vulnerability protection when observing data flow when Assess is enabled.

Release date: April 28, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

Bug fixes:

  • When customer uploads large file to instrumented falcon route, agent performs too much analysis, causing request to fail to complete. (PYT-1476)

Release date: April 21, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

Important note:

  • The Python agent now supports the web framework Bottle.

New and improved:

  • Incremental changes were made to reduce memory usage when Assess is enabled.

  • Added Assess support through pathlib.Path objects.

  • Pycassa library is no longer supported by the agent.

  • Added additional Assess support for Command Injection vulnerabilities in os and subprocess modules.

  • Added additional Assess support for marshal and shelve modules.

  • Added additional Assess support for Path Traversal vulnerabilities in os, pathlib, and shutil modules.

  • Added os.path.basename as sanitizer for Path Traversal.

Bug fixes:

  • When propagating through string methods with the KEEP action, Assess fails internally on length - 1 return values. (PYT-1466)

  • When running Assess on some alpine docker containers, the agent fails to instrument string methods, preventing application startup. (PYT-1450)

Release date: March 25, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

New and improved:

  • The agent now propagates through str multiplication.

  • The PyramidMiddleware is now a WSGI-based middleware.

  • User input that is later encoded as Base64 will now have proper dataflow context.

Bug fixes:

  • When attempting to instrument strings in Assess, not enough memory is allocated in some environments. (PYT-1350)

Release date: March 16, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

New and improved:

  • Refactored the patch manager for better instrumentation.

  • The agent will now fully shutdown if told to do so by the service.

  • Improved agent startup time and memory usage when Assess is enabled.

  • The agent now reports its effective instrumentation mode to the service.

  • Upgraded bundled service in the agent to the latest version.

Bug fixes:

  • When casting an object with a __str__ method to a non-str, the agent would lose propagation through the cast propagator. (PYT-1312)

  • When trying to instrument an application using SQLAlchemy, an error would be thrown if MySQLdb had no attribute called Cursor. (PYT-1332)

  • When trying to retrieve properties for an object, exceptions could be thrown if the agent attempted retrieval in an unsafe manner. (PYT-1333)

Release date: February 25, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

New and improved:

  • Refactored the agent's approach for handling objects with attached properties.

  • Updated Django support to prevent over tagging of path values within a request.

  • Upgraded service version bundled within the agent.

  • Updated dataflow action to prevent potentially unsafe propagation of tags.

Bug fixes:

  • When reporting a vulnerability while using legacy Django middleware, the agent would not run its final tasks if a trigger raises an error. (PYT-1257)

  • When trying to track dataflow through an action on a bytes object, the agent could fail. (PYT-1281)

Release date: February 5, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

Bug fixes:

  • When trying to format to lowercase hex, the format propagator would fail. We fixed this edge case. (PYT-1227)

Release date: January 29, 2021

Language versions currently supported: Python 2.7 and 3.5 - 3.9

Important note:

  • Support for Python 2.7 will be deprecated in 2021.

New and improved:

  • Added support for the Assess ReDoS rule.

  • Reduced the calls to retrieving Python loaded modules to improve performance.

  • Improved representation of dataflow with events containing keyword arguments.

Bug fixes:

  • The agent failed to process GET requests when handing user input from requests containing non-UTF-8 strings. Updated string handling to account for this. (PYT-1242)

  • When users uploaded files in a Flask application, the amount of resultant dataflow events in internal web framework code caused significant performance degradation. Given the lack of risk fo exploitation with this method, we expanded ignored methods for Flask, preventing these events and subsequent degradation. (PYT-1247)

Release date: December 17, 2020

Language versions currently supported: Python 2.7 and 3.5 - 3.9

New and improved:

  • Added support for Python 3.9.

  • Agent does not unpack method arguments when passing them into Assess rules.

  • Agent now ignores .so files from loaded modules when patching.

  • Added route coverage support for DjangoRestFramework routers.

  • Added capability of deadzoning methods to improve accuracy.

  • Assess stacktraces can now be configured with assess.stacktraces.

  • Corrected possible string tracker age off KeyError on key deletion.

Release date: November 20, 2020

Language versions currently supported: Python 2.7 and 3.5 - 3.8

Bug fixes:

  • Service and agent were using different environment variable to set the config.path. Updated CONTRAST_CONFIG_PATH value parsing to look for a file and not a directory with the YAML file. (SUP-2257, PYT-1161)

Release date: November 20, 2020

Language versions currently supported: Python 2.7 and 3.5 - 3.8

New and improved:

  • Added additional debug logging on request start and finish.

  • Improved library analysis support to include parsing SOURCES.txt.

  • Updated timing of logging of the environment of an application.

  • Added logging of configuration values on any logger change.

  • Fixed propagation scope leak for generators.

Bug fixes:

  • Agent crashed in a scenario where free() could be called twice because of patching by Gevent.. (PYT-1164)

Release date: November 4, 2020

Language versions currently supported: Python 2.7 and 3.5 - 3.8

New and improved:

  • The agent now reports enhanced library usage on startup and at the end of each request. After a request is received by the agent, we report new files loaded for an installed package.

  • The agent will not report unsupported distribution types for packages.

  • Updated the heartbeat thread to no longer accidentally propagate and cause an error.

Release date: October 28, 2020

Language versions currently supported: Python 2.7 and 3.5 - 3.8

New and improved:

  • Added configurable Django Rest Framework (DRF) response-rendering deadzone to fix timeout errors in DRF applications.

Release date: October 23, 2020

Language versions currently supported: Python 2.7 and 3.5 - 3.8

New and improved:

  • Improved NoSQL Injection support for Assess and Protect.

  • NoSQLi now handles MongoDB ObjectID types.

  • Added html.escape as a sanitizer in Assess.

  • Added WARN level logging if the configuration required to connect to the Contrast Service is missing.

  • Added INFO level configuration state logging, including ENV and YAML values.

  • Added YAML validation and, if invalid syntax is detected, WARN level logging indicating such.

  • Added INFO level application identification logging

  • Removed strict compiler flags from extension build.

  • Reduced latency in Django Rest Framework's response handling.

  • Investigated excessive DB_WRITE propagation.

Release date: October 5, 2020

Language versions currently supported: Python 2.7 and 3.5 - 3.8

Bug fixes:

  • Failed to repatch module due to __dict__ changing size while iterating over it. (PYT-1085)

Release date: September 21, 2020

Language versions currently supported: Python 2.7 and 3.5 - 3.8

Bug fixes:

  • Inability to patch held references to older versions of modules prevents instrumentation of referenced, rather than directly invoked, methods, such as in Werkzeug version 0.16.0.

Release date: September 17, 2020

Language versions currently supported: Python 2.7 and 3.5 - 3.8

New and improved:

  • Added support for Assess rules:

    • HttpOnly cookie flag disabled

    • Session cookie has no secure flag

    • Overly long session timeout

    • XPath injection rule

    • Trust boundary violation rules in Django, Flask, Pyramid and Pylons

  • Removed HTTP request methods as a dataflow source.

  • Added support for Assess configurations assess.enable_scan_response and assess.rules.disabled_rules.

Release date: September 1, 2020

Language versions currently supported: Python 2.7 and 3.5 - 3.8

Bug fixes:

  • Unable to instrument applications on OSX using locally built Python versions due to maxprot setting. (PYT-1025)

Release date: August 31, 2020

Language versions currently supported: Python 2.7 and 3.5 - 3.8

Bug fixes:

  • Hardcoded analysis rules were accidentally disabled. (PYT-1027)

Release date: August 25, 2020

Language versions currently supported: Python 2.7 and 3.5 - 3.8

Bug fixes:

  • When the agent was disabled, attempting to start without the Contrast service, resulted in application crash in Flask applications. (PYT-1012)

Release date: August 24, 2020

Language versions currently supported: Python 2.7 and 3.5-3.8

New features and improvements:

  • Instrument compile as part of the Unsafe Code Execution rule.

  • Decouple ServiceClient from SettingsState

  • Use normalized_response_headers in DTM instead of response_headers.

  • Refactored XSS postfilter logic for checking allowed content type.

  • Updated MongoDB update_methods to account for all arguments.

  • Replaced FlowMap Technology Analysis.

  • Verifed that SR handles empty observed route url.

  • Merge all rules apply_rule into one implementation.

  • Do not report handled exceptions in INFO/ERROR logs

  • Upgraded Python agent to use SR 2.11.x.

Bug fixes:

  • Fix and update regex used for protect XXE rule (PYT-94)

  • Fix error in DB write propagator. (PYT-971)

  • Agent fails to identify itself with new SR instance after the original SR instance goes down. (PYT-715)

Language versions currently supported: Python 2.7 and 3.5-3.8

Bug fixes:

  • List pip and pkg_resources as dependencies and/or include as external modules. (PYT-974)

Language versions currently supported: Python 2.7 and 3.5-3.8

Bug fixes:

  • Do not report observed route if signature is missing/empty. (PYT-970)

現在サポートされている言語バージョン: Python 2.7、3.5-3.8

今月リリースされたエージェントのバージョン: 3.0.1, 3.1.0, 3.1.1, 3.1.2, 3.2.0

New features and improvements:

  • Added route coverage support for Django 3.0.

  • Added Falcon 2.0 support.

  • Improved accuracy of library file usage.

  • Improved propagation through regular expressions in Assess.

Important notes:

  • The team made significant internal cleanup to Request representation

修正された不具合:

  • Fixed a bug where regex propagation was throwing an exception under certain conditions.

  • Fixed a bug related to agent handling of very short JSON keys and values.

  • Updated protobuf dependency requirement in response to incompatibility issues with older versions.

  • Fixed an issue where the agent raised an internal exception for applications using certain features of pyasn1.

  • Fixed a bug where Django applications were unable to properly parse the Content-Type header if a charset was explicitly provided.

  • Improved error handling around stack trace construction.

現在サポートされている言語バージョン: Python 2.7、3.5 - 3.8

今月リリースされたエージェントのバージョン: 2.10.0

New features and improvements:

  • Falcon 2.0 is supported and is in beta

  • Upgraded Contrast Service to 2.8.1

現在サポートされている言語バージョン: Python 2.7、3.5 - 3.8

今月リリースされたエージェントのバージョン: 2.10.0

New features and improvements:

  • Added support for Django Rest Framework

  • Added copyright to all agent files

  • Removed the agent's external dependency on the wrapt package

  • Improved INFO level logging for easier tracking of applications with multiple processes

修正された不具合:

  • When running the agent with protobuf-3.6.1 sometimes the application crashed, which has now been resolved with a newer protobuf version.

現在サポートされている言語バージョン: Python 2.7、3.5 - 3.8

過去1ヶ月間にリリースされたエージェントのバージョン: 2.8.1, 2.8.2, 2.8.3, 2.9.0

New features and improvements:

  • Added initial support for Stored XSS rule in Assess for django framework.

  • Added Unvalidated Redirect support for Assess for pyramid and webob objects.

  • Made updates to reduce number of false positives from Reflected XSS rule in Assess.

  • Removed the agent’s external dependency on the six package.

修正された不具合:

  • When running the agent under Python 2.7 on Ubuntu 16.10 some instrumentation failed to apply, which has now been resolved.

  • When applications used str.format in certain edge cases, the agent lost dataflow propagation, which has now been resolved.