Pythonエージェントのリリースノート
リリース日: 2024年9月25日
現在サポートしている言語バージョン:Python 3.8 - 3.12
新機能と改善点:
過検知を減らすために「CSPヘッダが安全に設定されていないレスポンス」ルールの解析を改善しました。(PYT-3432)
サンプリングのアルゴリズムを改善し、サンプリング有効時にエージェントによって実行される処理を削減しました。(PYT-3428)
修正された不具合:
「未検証のリダイレクト」ルールにおける過検知を修正しました。(SUP-5791)
Pythonインタープリタが書式設定された文字列を使用して型を強制する場合の内部データフローの問題を修正しました。(PYT-3423)
リリース日: 2024年8月26日
現在サポートしている言語バージョン:Python 3.8 - 3.12
新機能と改善点:
エージェントからFunchookを削除しました。(PYT-3153)
Funchookをコードのインストゥルメントに使用していましたが、MacのハードウェアセキュリティとCPythonコアの変更により、今後の維持が難しくなりました。
アプリケーションインベントリが、v1.1のContrastサーバエンドポイントに報告されるようになりました。この変更には、Contrastバージョン3.11.4以降が必要です。(PYT-3324)
サーバインベントリは、Contrast v3.11.6より前のオンプレミス版では、サーバインベントリのエンドポイントが存在しないため、エラーがログに記録されるようになりました。このエラーは、クラウドリソースがContrastに報告されていないことを示しているだけです。それ以外の場合、エージェントの機能には影響しません。(PYT-3381)
修正された不具合:
エージェントは、起動時に一部のログを
stdout
ではなくstderr
に書き込むようになりました。これは、stdout
に書き込みを行うスクリプトとの干渉を避けるためです。(PYT-3435)無効になったエージェントが、ASGIアプリケーションのリクエストボディからの読み取りをブロックしていた問題を修正しました。(PYT-3437)
リリース日: 2024年8月20日
現在サポートしている言語バージョン:Python 3.8 - 3.12
新機能と改善点:
エージェント設定ファイルに
CONTRAST__API__TOKEN
という設定を新しく追加し、APIトークンを指定できるようにしました。(PYT-3395)
修正された不具合:
エージェントのバッファリングにより、ASGIアプリがレスポンスボディをストリーミングできない問題を修正しました。(PYT-3397)
Flaskのリクエストボディが
get_data
またはget_json
でアクセスされた場合に、エージェントがContrast Assessのデータフローのボディを追跡できない問題を修正しました。 (PYT-3384)PythonのNoSQLインジェクションの脆弱性が検出されたときに、Contrast WebインターフェイスにNode.js用の修正方法が表示されていた問題を修正しました。(PYT-3375)
cformat
文字列にエスケープされた%%の文字が含まれる場合に、エージェントがデータフローの伝播に失敗し、エラーが記録されていた問題を修正しました。(PYT-3256)
リリース日: 2024年7月16日
現在サポートしている言語バージョン:Python 3.8 - 3.12
新機能と改善点:
エージェントは、
syslog
へのレポートをサポートするようになりました。(PYT-3261)エージェントは、AWSとAzureのクラウドリソースIDを抽出してレポートするようになりました。 (PYT-2713)
エージェント設定ファイルの
server.discover_cloud_resource
の設定をfalse
にすることで、これを無効にすることができます。
リリース日: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 attributetrace
」を修正しました。(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 newcontrast_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
insetup.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 noelts
attribute. (PYT-2740)Fixed
UnicodeDecodeError
:utf-8
codec could not decode byte0xff
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.2Added propagation policy for
posixpath
(os.path)Bump pinned version of
contrast-agent-lib
to v0.4.0Updated 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 wroteDEBUG
logs tostdout
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 anAttributeError
. (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
andsubprocess
modules.Added additional Assess support for
marshal
andshelve
modules.Added additional Assess support for Path Traversal vulnerabilities in
os
,pathlib
, andshutil
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 ifMySQLdb
had no attribute calledCursor
. (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
andassess.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
fromSettingsState
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
andwebob
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.