Javaエージェントのリリースノート
リリース日: 2024年9月12日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
新機能と改善点:
Contrast AssessでGraphQLがサポートされるようになりました。(JAVA-8134)
修正された不具合:
String.replace
、String.replaceAll
、およびMatcher
プロパゲータで、特定のパターンや入力に対してパフォーマンスが低下する問題を修正しました。(JAVA-8301)クロスサイトフォージェリ(CSRF)のルールで、HTTPヘッダ内のトークンを検出するようにしました。(JAVA-8427)
アプリケーションレベルでの例外が適用されない場合がある問題を修正しました。(JAVA-8444)
リリース日: 2024年9月4日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
新機能と改善点:
エージェントは、検出時にデフォルトでクラウドリソース識別子を報告するようになりました。(JAVA-8133)
エージェントは、Contrastとの通信に
CONTRAST__API__TOKEN
の使用をサポートするようになりました。CONTRAST__API__URL
、CONTRAST__API__API_KEY
、CONTRAST__API__SERVICE_KEY
、およびCONTRAST__API__USER_NAME
の代わりに使用できます。(JAVA-8254)注記
Contrastサーバからのダウンロード可能なエージェント設定ファイルにはトークンはまだ追加されません。
Spring Web Services 3.1の変換処理の速度を改善しました。変換処理の対象外となるクラスを拒否リストに追加することで向上しました。(JAVA-8082)
Contrast Protectの追加のパストラバーサル解析を、より高性能な正規表現に移行しました。(JAVA-8145)
安全なヘッダを無視するようにContent-Security-Policy(CSP)ヘッダのルールを更新しました。(JAVA-8365)
廃止となった「安全ではないSSLソケットの作成」ルールを削除しました。(JAVA-8395)
修正された不具合:
ObjectInputStreamクラス以外のデシリアライゼーションで、
java.net.URI
にContrast Protectの「信頼できないデータのデシリアライゼーション」の攻撃としてフラグを立てないようにしました。(JAVA-8268)コードの例外が拒否リストに登録されたメソッドに適用される問題を修正しました。(JAVA-8273)
Contrast ProtectのJNDI インジェクションの解析を強化しました。(JAVA-8344)
Strutsのバージョンを処理できない場合に、CVE-2013-2251によってエラーがログに記録される問題を修正しました。(JAVA-8378)
AggregateFilterにおけるLiferayのパストラバーサルの過検知を修正しました。(JAVA-8383)
Oracle REST Data Servicesが、エージェントを組み込んでデータベースに接続するとクラッシュする問題を修正しました。(JAVA-8398)
Kamon IOに関連する過検知を修正しました。(JAVA-8404)
リリース日: 2024年8月8日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
新機能と改善点:
Spring Web Servicesのサポートを追加しました。(JAVA-7724)
Wildflyバージョン27-32のサポートを追加しました。(JAVA-8251)
スタックベースの拒否リストのパフォーマンスを向上しました。(JAVA-8271)
修正された不具合:
Contrast ProtectのプロセスハードニングにおけるDatadogの過検知を修正しました。(JAVA-8139)
Contrast Assessで、デシリアライズ時の文字列クローンの問題を修正しました。この問題は、Oracle Service Busコンソールを空白にする原因となっていました。(JAVA-8187)
列挙型に関連するSQLインジェクションの過検知を修正しました。(JAVA-8245)
SyslogのタイムスタンプをRFC 3164およびArchSight CEF v25の仕様に合わせるように修正しました。(JAVA-8343)
リリース日: 2024年7月26日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
新機能と改善点:
セキュリティ制御の種類に、新たに正規表現バリデーションのサポートを追加しました。(JAVA-7741)
エージェントの設定の参照のパフォーマンスを改善しました。(JAVA-8226)
Contrast Assessのスコープ設定のパフォーマンスをさらに改善しました。(JAVA-8260)
修正された不具合:
「安全ではないハッシュアルゴリズム(crypto-bad-mac)」における複数の過検知を修正しました。(JAVA-7429)
Contrast Protectで攻撃をブロックする際に、Vert.xアプリのリクエストが完了しない問題を修正しました。(JAVA-7739)
Undertowでの安全でないCookieの過検知を修正しました。(JAVA-8190)
SpringのPropertyResolverに、Contrast ProtectのJNDIデッドゾーンを追加しました。(JAVA-8228)
QueryDSLにおけるHQLインジェクションの過検知を修正しました。(JAVA-8239)
Tomcatの
checkHandlesTypes
メソッドでContrastクラスを検査する際の問題を修正しました。(JAVA-8285)無効なNettyポリシーを修正し、ポリシーのチェックを追加しました。(JAVA-8210 )
リリース日: 2024年7月12日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
新機能と改善点:
Contrast Assessでのコンテキスト更新時のパフォーマンスを最適化しました。(JAVA-7698)
Contrast Assessでの入力値のダグ付けを最適化しました。(JAVA-8130)
修正された不具合:
Contrast Protectのコンテキストのクリア時に発生していたCPUパフォーマンスの問題を修正しました。(JAVA-7663)
HttpResponse
のキャプチャ時のパフォーマンスの低下を修正しました。(JAVA-8201)URLの例外に関する余分なメモリの割り当てを削除しました。(JAVA-7908)
JNDIインジェクションの過検知が、URIの
getHost
で発生していた問題を修正しました。(JAVA-7968)ネストしたJSPおよび非JSPサーブレットにおいて、検知漏れとなる可能性がある問題を修正しました。(JAVA-8129)
Spring WebFluxのパストラバーサルの過検知を修正しました。(JAVA-8137)
リリース日: 2024年6月14日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
修正された不具合:
Felixライブラリのコード検索で、一部のURIに対して不適切なアーティファクト名が生成されていました。(JAVA-8126)
WebSphereのJSP機能におけるパストラバーサルの過検知を修正しました。(JAVA-8141)
Springのログインジェクションの過検知を修正しました。(JAVA-8143)
クロスサイトスクリプティング(XSS)での過検知の可能性を修正しました。(JAVA-8157)
リリース日: 2024年6月7日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
新機能と改善点:
gRPCのサンプリング機能の対応を改善しました。(JAVA-7593)
修正された不具合:
Spring Boot 3.2のUber JARのデプロイによって、ルート観測が欠落する可能性がある問題を修正しました。(JAVA-8116)
Open JDK21とDynatraceエージェントによって、クラッシュの原因となる問題に対処しました。 (JAVA-8159)
Contrast Protectで検知漏れを引き起こす可能性があるスレッドの問題を修正しました。(JAVA-8163)
リリース日: 2024年5月20日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
修正された不具合:
サンプリング機能のスレッドセーフを改善しました。(JAVA-8125)
機能を有効にせず追加のフィルタのルートが検出される問題を修正しました。(JAVA-8142)
リリース日: 2024年5月16日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
新機能と改善点:
Payara 5とPayara 6のサポートを追加しました。(JAVA-7989)
メモリ消費を改善するために、
HttpRequest
のクローンを作成しないようにしました。(JAVA-8107)
修正された不具合:
WebSphere 9.0のクラスローダーのデッドロックを修正しました。(JAVA-7895)
特定のSpring Bootアプリケーションでレスポンスヘッダが無視される問題を修正しました。(JAVA-7878)
Dynatrace OneAgentでJVMのクラッシュとなる問題を修正しました。(JAVA-7990)
リリース日: 2024年4月30日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
修正された不具合:
エージェント設定ファイルでAssessが明示的に有効になっていない場合のルートカバレッジの問題を修正しました。(JAVA-7984)
アプリケーションの起動に失敗する
ClassCastException
を修正しました。(JAVA-7985)「クロスサイトスクリプティング(XSS)」と「HttpOnly属性がないセッションCookie」の過検知を修正しました。(JAVA-7849、JAVA-7942)
リリース日: 2024年4月26日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
新機能と改善点:
gRPC 1.6.x、1.5.x、1.4.xのサポートを追加しました。(JAVA-7885)
Glassfish 5および6のサポートを追加しました。(JAVA-7721)
修正された不具合:
JMSのメッセージサンプリングを修正しました。(JAVA-7889)
ハートビートのログメッセージのステータスをERRORからWARNに変更しました。(JAVA-7966)
Protectルールで
ReflectionとProcessImpl
を使用した場合にバイバスされる可能性のある問題を修正しました。(JAVA-7504)DefaultTagRangesCreator
のNullPointerException
を修正しました。(JAVA-7771)Struts 2のSpringプラグインのリフレクションエラーのログを概要レベルで記録していた問題を修正しました。(JAVA-7776)
NetflixのZuulルーティングサービス使用時の「信頼できないデータのデシリアライゼーション」の過検知を修正しました。(JAVA-7784)
Spring OpenAPIドキュメント(springdoc-openapi)ページでのクロスサイトスクリプティング(XSS)の過検知を修正しました。(JAVA-7785)
エージェントのログの設定で、ログのパスにディレクトリを指定しなかった場合に例外がスローされる問題を修正しました。(JAVA-7808)
jarファイル取得時に
ClassCastException
が発生する可能性を修正しました。(JAVA-7860)-Dcontrast.server.version
が設定されている場合に、無効なキャッシュや古いキャッシュ階層が再利用されていた問題を修正しました。(JAVA-7891)ブリッジメソッド(synthetic bridge)の二重インストゥルメンテーションを修正しました。(JAVA-7947)
リリース日:2024年4月8日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
修正された不具合:
DataDogのデッドゾーンが、想定通りに反映されていなかった問題を修正しました。(JAVA-7798)
リリース日:2024年4月2日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
修正された不具合:
SpringアプリケーションのContrast AssessおよびContrast Protectで、検知漏れを起こす可能性があったディープインスペクションの問題を修正しました。(JAVA-7861)
Javaエージェントのバージョン6.3.0および6.3.1では、Tomcat、JBoss、Glassfish、またはApache Felix(OSGi)アプリケーションサーバ上のSpringの脆弱性(XSSやSQLインジェクションなど)が、Contrast AssessとContrast Protectで検出されない可能性があります。できるだけ早くエージェントをアップグレードする必要があります。
リリース日:2024年3月14日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
修正された不具合:
エージェントで、
JarURLConnection
に代わるWebSphere独自のプロトコルを考慮するようにしました。 (JAVA-7604)機密データのマスキングで
Java.lang.NullPointerException
が発生する問題を修正しました。(JAVA-7791)不要なSpringのルートが検出される問題を修正しました。(JAVA-7669)
まれに発生する、アクセスできないログパスでのクラッシュを修正しました。(JAVA-7607)
一部のJVM/サーバの組み合わせで、
java.lang.LinkageError
が発生する問題を修正しました。(JAVA-7782)
リリース日:2024年3月11日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
新機能と改善点:
重複するイベントを避けるためにプロパゲーションを最適化しました。(JAVA-7525)
Assessの入力トラッキングを最適化しました。(JAVA-7599、JAVA-7600、JAVA-7601)
リクエストのサンプリングが有効な場合のAssessの解析を最適化しました。(JAVA-7615、JAVA-7703)
初期化の速度を向上させるために、Assessルールが無効かどうかをキャッシュするようにしました。(JAVA-7617)
単一のイベントが存在する場合のプロパゲータイベントの保存を最適化しました。(JAVA-7696)
修正された不具合:
サーブレットおよびJSPの転送機能によって、ルート観測が欠落し、脆弱性が誤って割り当てられる問題を修正しました。(JAVA-7079)
この変更により、エージェントは、1つのリクエスト中にどのルートが実行され、どのルートに問題の脆弱性が含まれているかをより正確に判断できるようになりました。サーブレットおよびJSPの転送およびリダイレクト機能を使用するユーザは、検出・観測されるルートの数が増加しますが、脆弱性の場所がより正確になり、アプリケーション全体のデータフローをより正確に把握できるようになります。
古いパッケージオプションが使用されている場合のQuarkusライブラリの検出に関する問題を修正しました。(JAVA-7465)
インクルードされたJSPに値を渡す際のJSPのクロスサイトスクリプティング(XSS)の検知漏れを修正しました。(JAVA-7572)
WebSphereのプロファイル構成を使用してアプリケーション名を設定する際の問題を修正しました。(JAVA-7659)
Spring Boot 3.2以降でのライブラリ検出の問題を修正しました。(JAVA-7662)
Kafkaでトピックを構成する際のSQLインジェクション(SQLi)の過検知を修正しました。(JAVA-7664)
Assessのクロスサイトスクリプティング(XSS)ルールで、Freemarkerの自動エスケープ機能を考慮するように修正しました。(JAVA-7677)
onbeforetoggle
使用時のクロスサイトスクリプティング(XSS)の検知漏れを修正しました。(JAVA-7684)Spring/Nettyのログインジェクションの過検知を修正 しました。(JAVA-7701)
JavaエージェントがApache Axis 1.xクラスに対して無効なバイトコードを生成する問題を修正しました。(JAVA-7702)
Nettyでのパストラバーサル(Protect)の過検知を修正しました。(JAVA-7706)
複数アプリケーションのデプロイにおける脆弱性の重複排除を改善しました。(JAVA-7726)
ジェネリクスが使用される場合のScala Playのルートカバレッジを修正しました。(JAVA-7731)
リリース日:2024年2月7日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
修正された不具合:
インベントリ中にホストがNULLであることによるNullPointerExceptionを修正しました。(JAVA-7603)
Apacheクライアントのトインストゥルメンテーション中に発生したNULLリクエストによるNullPointerExceptionを修正しました。(JAVA-7626)
Springアプリケーションのルート観測が失敗する原因となっていたNullPointerExceptionを修正しました。(JAVA-7612)
リリース日:2024年1月12日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
新機能と改善点:
WebLogic 14のサポートを追加しました。(JAVA-7470)
ThreadLocal
の使用におけるAssessインストルメンテーションを最適化しました。(JAVA-6673)Assessプロパゲータの例外処理を最適化しました。(JAVA-7517)
修正された不具合:
リクエストスコープを指定したSpring Beanおよびプロキシを設定したSpring Beanを使用する場合のStrutsのルートカバレッジを修正しました。(JAVA-7406)
エージェントのスナップショット作成を簡素化しました。(JAVA-7460)
脆弱性イベントの詳細に、一部のクラスで、オブジェクトの文字列を表すのにオブジェクトIDハッシュを使用するようになりました。この変更により、パフォーマンスと精度が向上します。
.war
ファイル拡張子を含めることにより、「安全でないファイルのアップロード」のルールを改善しました。(JAVA-7549)
リリース日: 2023年12月14日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
修正された不具合:
プロパゲータのインストゥルメンテーションを最適化しました。(JAVA-6669)
WebSphereのJSPトランスレータに関する過検知を修正しました。(JAVA-7538)
Dynatrace使用時に発生する冗長なイベントの問題を修正しました。(JAVA-6911)
カスタムサニタイザー内の不正な追跡データを修正しました。(JAVA-7494)
古いバージョンのASMを使用している場合のフレームワークのクラッシュを解決しました。(JAVA-7508)
エージェントが、ボックス化されたプリミティブの
toString
を追跡しないようにしました。(JAVA-7510)org.apache.catalina.connector.RequestFacade.getContextPath
がソースの1部として使用されている場合に発生していた過検知を修正しました。(JAVA-7524)
リリース日: 2023年12月5日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
新機能と改善点:
他社のJavaエージェントの存在を認識する機能を追加しました。(JAVA-7442)
修正された不具合:
Log4Jが存在する場合に、Quarkusでクラスのロードが正しく行われていなかった問題を修正しました。(JAVA-7309)
JMSサポートにおけるメモリリークを修正しました。(JAVA-7453)
Protectのパストラバーサルの検出を改善しました。(JAVA-7483)
エージェントのシャットダウンが完了する前にログ出力が停止する問題を修正しました。(JAVA-7512)
リリース日: 2023年11月6日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20、21
新機能と改善点:
Java 21のサポートを追加しました。(JAVA-7333)
contrast.sampling.response_frequency
の設定を削除しました。(JAVA-7313)デフォルトでは、サンプリングが有効であるかどうかに関係なく、エージェントはURLごとに25番目のレスポンスごとにサンプリングします。
Assessの「正規表現によるDoS(ReDoS)」ルールの精度を改善しました。(JAVA-6544)
CVE-2023-34040の検出精度を向上させました。(JAVA-7422)
同じサーバ上で同じ名前の複数のアプリケーションが検出された場合に、警告をログに出力するようになりました。(JAVA-7363)
リリース日: 2023年10月26日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20
新機能と改善点:
HTTP以外のアプリケーションのソースでサンプリング機能が可能になりました。(JAVA-7213)
脆弱性イベントのスナップショットのキャプチャを調整可能にしました。(JAVA-7218)
修正された不具合:
DESede暗号アルゴリズムとECBおよびCBCモードが安全ではないと考えられているようになったため、それらに対応しました。(JAVA-7362)
リリース日: 2023年10月3日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20
新機能と改善点:
従来のサンプリング設定である、
contrast.sampling
はサポートされなくなりました。(JAVA-7225)代わりに、以下のサンプリング設定を使用してください。
assess.sampling.enable
assess.sampling.baseline
assess.sampling.request_frequency
assess.sampling.window_ms
contrast.sampling.response_frequency
の設定は非推奨となり、将来的に削除される予定となりました。(JAVA-7284)拡張機能の可観測性プレビューがオンになっている場合に、ルートカバレッジがサポートされるようにエージェントを更新しました。(JAVA-6298)
修正された不具合:
getClass() name
メソッドの使用時に発生していたProtectのELインジェクションの過検知を修正しました。(JAVA-6621)HTTPメソッドの改ざんルールを更新して、追加の修正方法に対応するようにしました。(JAVA-7264)
リリース日: 2023年9月21日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19、20
修正された不具合:
「Zipファイルの上書き」ルールが無効な場合に
IllegalStateException
エラーが発生する問題を修正しました。(JAVA-7258)
リリース日: 2023年9月19日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19 、20
新機能と改善点:
Protectの文字列マッチングアルゴリズムを最適化しました。(JAVA-7237)
修正された不具合:
安全ではないハッシュアルゴリズム(
crypto-bad-mac
)の拒否リストにsun.security.provider.KeyProtector#init
を追加しました。(JAVA-7017)WebSphere Libertyのシステム設定が、キャッシュ防止制御の脆弱性に対して無視されるようになりました。(JAVA-7022)
Contrastで
null
の原因となっていたアーキテクチャコンポーネントを難読化するようにしました。(JAVA-7138)TransformPrimordialTask
中にContrastが失敗する問題を修正しました。(JAVA-7145)レスポンスに
X-Content-Type
ヘッダが設定されていない場合、エージェントが空の文字列を報告するようにしました。(JAVA-7170)
リリース日: 2023年8月23日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19 、20
修正された不具合:
ルート検出とアプリケーション検出の実装方法を変更し、ルートをドロップしていた問題を解決しました。(JAVA-6715)
インベントリが無効な場合、AWSアーキテクチャコンポーネントのレポートが、コンポーネントタイプごとに無効になるようにしました。(JAVA-6927)
Jackson DatabindでデータがURLにデシリアライズされる試みを攻撃と見なさないようにしました。Jackson DatabindがURLをデシリアライズしていても安全です。(JAVA-7010)
Infinispanライブラリからのパストラバーサルの過検知によって、Infinispanメソッドが「疑わしい」のステータスになる問題を修正しました。(JAVA-7042)
ファクトリが生成するクラスの実際の使用に対する脆弱性ではなく、Spring Securityが内部でファクトリに発生させていた
安全ではないハッシュアルゴリズム
(crypto-bad-mac)の脆弱性を報告していた問題を修正しました。(JAVA-7095)SSRF(サーバサイドリクエストフォージェリ)チェックが、広範な正規表現の全てのタグ範囲ではなく、信頼できないタグ範囲に適用されるように変更しました。(JAVA-7097)
パストラバーサルの過検知が報告されないようにGrailsのビューレンダラーを変更しました。(JAVA-7108)
リリース日: 2023年8月2日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19
修正された不具合:
一部のサーブレットクラスで二重にエージェントの計測が発生する問題の修正(JAVA-7003)を元に戻しました。(JAVA-7049)
リリース日: 2023年8月2日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19
修正された不具合:
一部のサーブレットクラスで二重にエージェントの計測が発生する問題を修正しました。(JAVA-7003)
入力トレースをより正確に比較するために、コマンドインジェクションのセマンティック解析の検出を
cmd-injection
ルールから新しいルールCmdAwareProtectRule
へ移しました。この新しいルールは、cmd-injection
ルールも有効になっている場合に有効になります。(JAVA-7037)設定ファイルでSQLのセマンティック解析のプロパティのデフォルト値を
false
に変更しました。(JAVA-7029)JNAのNativeLibraryのロード時に発生した過検知を修正しました。(JAVA-7004)
ObservableSinkType
を更新し、シンクタイプを追加しました。(JAVA-6997)IllegalCharsetNameException
エラーが発生する問題を修正しました。(JAVA-7005)脆弱性の報告を正確にするため、制御するエージェントのリストにInstanaパッケージを追加しました。(JAVA-6971)
ClassCastException
エラーを引き起こしていたMultiPartCapturingInputStream
のコードを削除しました。(JAVA-6774)Glowrootで
invalid class
の例外が発生する問題を修正しました。(JAVA-7002)非標準の
Unmarshaller
がシステムのクラスローダーの外部でロードされた場合に発生するXML外部エンティティ処理(XXE)の過検知を修正しました。(JAVA-7024)
リリース日: 2023年7月19日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19
新機能と改善点:
Spring WebFlux 5および6のサポートを追加しました。(JAVA-6294)
修正された不具合:
ヘッダ名と値がNULLの場合に、エージェントはNullPointerExceptionsを生成しなくなりました。(JAVA-6714)
アプリケーションでDenodo JDBCドライバを使用している場合に、エージェントがSQLインジェクションの過検知を報告していました。(JAVA-6921)
エージェントがリクエストを処理中に、ErrorステータスまたはErrorのサブクラスが発生すると、クライアントがシャットダウンしていました。(JAVA-6928)
エージェントがクラスファイルを発見できない場合、「Common ancestor discovery failed」をスローしていました。 (JAVA-6938).
リリース日: 2023年7月12日
現在サポートしている言語バージョン:Java 8、9、10、11、12、13、14、15、16、17、18、19
修正された不具合:
URLの例外で、信頼できないデータのデシリアライゼーションが適切にサポートされるようになりました。(JAVA-6913)
Nettyでパストラバーサル攻撃用の安全なデッドゾーンを作成しました。(JAVA-6912)
PathResourceResolverの過検知に対するデッドゾーンを作成しました。 (JAVA-6923)
エージェントのJVMの起動時間が無効であった問題を修正しました。(JAVA-6935)
リリース日: 2023年6月29日
現在サポートしている言語バージョン: Java 8、9、10、11、12、13、14、15、16、17、18、19
修正された不具合:
「安全でないファイルのアップロード(Protectルール)」にて、攻撃が「ブロック済」のステータスでない場合に、「疑わしい」の代わりに「探査検出」のステータスで報告されていました。(JAVA-6900)
エージェントバージョン5.1.1で、リクエスト/レスポンスのバッファに関連するメモリ不足状態を引き起こしていました。(JAVA-6919)
リリース日: 2023年6月22日
現在サポートしている言語バージョン: Java 8、9、10、11、12、13、14、15、16、17、18、19
修正された不具合:
Spring BootでJerseyを使うアプリケーションのルート検出が、サーバへの最初のリクエストまで実行されていませんでしたが、アプリケーションの作成時に実行されるようになりました。(JAVA-6717)
リクエストメソッドとレスポンスメソッドのバッファリングが正しく割り当てられていませんでした。(JAVA-6772)
エージェントがテスト環境でないにもかかわらず、RMQのためにDTMを割り当てていました。(JAVA-6785)
ハイフンを含む暗号化アルゴリズム名を受け付けるように、Crypto Bad Macルールを変更しました。(JAVA-6822)
エージェントの一部のログを、警告として一度出力したものを、その後はデバッグのステータスで出力するように変更しました。これにより、INFOレベルでの過剰なログ出力を防ぐことができます。(JAVA-6882)
リリース日: 2023年5月30日
現在サポートしている言語バージョン: Java 8、9、10、11、12、13、14、15、16、17、18、19
新機能と改善点:
Wildfly 23 - 27のサポートを追加しました。
修正された不具合:
デシリアライザでデータが無害化された時に、エージェントが過検知を報告していた。(JAVA-6605)
エージェントのシャットダウン時に、
HTTPClient
インスタンスのシャットダウンに失敗する。(JAVA-6701)CGLib
のルートがJerseyアプリから除外されない。(JAVA-6716)RedissonSessionManager.buildClient
で誤検出が発生し、RedissonSessionManagerを使用するアプリの起動に影響する問題。(JAVA-6737)Unsupported class file major version 65
の例外エラーが発生する問題。(JAVA-6760)SpringWebFluxIT
の実行時に例外エラーが発生する問題。(JAVA-6781)CodeEventContext#getObjTypeがCodeEventContext#getObjの型と一致しない問題。(JAVA-6784)
Release date: May 15, 2023
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
Bug fixes:
Fixed an issue that caused a Path Traversal false positive with
ClassLoader.getResource\*
methods when accessing WAR resources in GlassFish. (JAVA-6496)Improved performance when matching the PIDS-SQLI-2002 pattern. (JAVA-6602)
Fixed an issue where GroupedMetrics were filling log files with invalid tag warnings. (JAVA-6663)
Release date: April 27, 2023
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
New and improved:
Improved URL normalization (JAVA-6291)
improved deduplication of route names from CGlib/Spring AOP that are dynamically generated. (JAVA-6514)
Bug fixes:
Fixed an issue where an XXE false-positive result occurred because XML parsers were considered insecure when a no-op EntityResolver was provided .(JAVA-2755)
Fixed an issue where a path traversal false-negative result occurred for JDK resource lookups. (JAVA-6237)
Fixed a
java.lang.IllegalStateException
error that occurred when the connection pool shut down. (JAVA-6363)Fixed an
Index 6 out of bounds for length 0
issue which generated ajava.lang.ArrayIndexOutOfBoundsException
error. (JAVA-6416)Fixed a SQLi false-positive result by splitting the PIDS-SQLI-401 regex pattern into two: PIDS-SQLI-401C and PIDS-SQLI-401D. (JAVA-6461)
The agent didn't recognize HTTP version 1,9 which generated a
java.lang.IllegalArgumentException
error. (JAVA-6510)Fixed an issue where an agent was logging application passwords in clear text. (JAVA-6513)
Release date: March 29, 2023
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
New and improved:
Non-http sources for Kafka. (JAVA-5235)
Spring Boot 3 Support & Spring 6. (JAVA-6089)
Untangled circular dependency between ProtectManager, InstrumentationAwareRaspRule, and Dispatchers. (JAVA-245)
Hardcoded Password Improvement. (JAVA-5440)
Deadzone Liquidbase MD5 usage method. (JAVA-6012)
JarAnalyzer Uses Bugged ZipInputStream. (JAVA-6351)
Consolidate exceptions in fluent Reflect API. (JAVA-6411)
Bug fixes:
Fixed issue where
ExternalDirectoryLibraryFinder
logged errors instead of debug. (JAVA-5327)Fixed
java.lang.NullPointerException: Cannot invoke java.util.Set.add\(Object\)
because of the return value of java.util.Map.get\(Object\). (JAVA-6120)Fixed JAVA-AGENT-59 -
java.util.ConcurrentModificationException
issue. (JAVA-6145)Fixed Adaptive Optimisation dead zones method triggering vulnerabilities. (JAVA-6151)
The instrumentation code was not null-safe when dispatchers return values. (JAVA-6210)
Fixed a
java.util.NoSuchElementException
issue. (JAVA-6232)Missing policies for OWASP's ESAPI library. (JAVA-6260)
Path traversal false negative for JDK resource lookups. (JAVA-6237)
Fixed a
java.lang.ClassNotFoundException: com.contrastsecurity.agent.plugins.frameworks.j2ee.e$$Lambda$1849/0x000000002000f520
issue. (JAVA-6284)Agent scans agent jar. (JAVA-6289)
Fixed a
java.lang.NullPointerException
issue. (JAVA-6290)Fixed
java.lang.IllegalArgumentException: URLDecoder: Incomplete trailing escape \(%\)
pattern. (JAVA-6357)Fixed a
java.util.ConcurrentModificationException
issue. (JAVA-6360)FP when tainted data flows through
ObjectInputStream#readObject
. (JAVA-6369)Fixed Spring Boot Route Discovery not working for WAR deployed in Tomcat. (JAVA-6372)
Flawed determination of application path for Spring Boot apps. (JAVA-6375)
Fixed a
java.lang.IllegalStateException: Expected BEGIN\_OBJECT but was STRING at line 1 column 1 path $
issue. (JAVA-6401)Fixed agent was not validating the API URL from configuration not ending with "/". (JAVA-6431)
Ignore Safe Usages of
getRuntimeMXBean
in ELInjectionRule. (JAVA-6433)
Release date: March 16, 2023
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
New and improved:
Xerces ACCESS\_EXTERNAL\_DTD set to file bypasses Protect filters. (JAVA-2430)
Reduced \( Dedupe \) Route Observation. (JAVA-6282)
Bug fixes:
Java agent did not ignore Dynatrace classes for primordial transformations. (JAVA-6288)
Updated XSS Patterns. (JAVA-6341)
Release date: March 3, 2023
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
New and improved:
Added support for Java 18 and 19. (JAVA-1845)
Added support for Websphere Liberty. (JAVA-5362)
Added support for Quarkus RestEasy. (JAVA-5555)
Improved Asses data flow policies for Jackson. (JAVA-5725)
Added support for vulnerability submissions for ephemeral JVMs (JAVA-5880)
Removed support for the
contrast.useconfig
property to prevent unwanted behavior.(JAVA-5894)Improved handling of issues with proxy dispatchers and stack overflows. (JAVA-6057)
Changed logging level of the log message,
App marked as unwanted on the server, it may have been archived
, to INFO. (JAVA-6241)Removed PIDS-XSS-251 (JAVA-6307)
Bug fixes:
Fixed an issue that caused this exception error:
java.lang.IllegalStateException: onRequestEnd must never be called before onRequestStart.
(JAVA-6164)Fixed an issue that caused Contrast to report an Eclipse JAXBUmarshaller false positive. (JAVA-6176)
Fixed an issue that caused this exception error:
java.util.ConcurrentModificationException.
(JAVA-6184)Fixed an issue that caused Spring Boot Json node to return an empty iterator. (JAVA-6224)
Fixed an isue that caused Contrast to report a SQL Injection false negative for a SQL UNION operation. (JAVA-6238)
Fixed an issue where route discover was blocking application deployments. (JAVA-6263)
Removed an override of the requiresSavingInContext method in CmdInjectionProtectRule. (JAVA-6264)
Release date: February 15, 2023
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Added support for configuration of instrumentation exclusions. (JAVA-6098)
Added Dynatrace support to package exceptions. (JAVA-6103)
Decreased the number of shutdown threads so that shutdown only uses as many threads as necessary. (JAVA-6217)
Bug fixes:
Fixed an issue with duplicate log messages for
J2EEHttpResponse
. (JAVA-5280)Removed an unnecessary precondition check for
ELParsingEvent
. (JAVA-5479)Legacies properties that included profile in the name was causing agent crashes. (JAVA-6114)
Log42 was throwing SecurityExceptions when Security Manager was enabled. (JAVA-6152)
Fixed an issue with handling evens when parent ID and object ID were the same. (JAVA-5633)
Fixed a race condition with dynamic servlet registration. (JAVA-5939)
Agents were trying to recall HTTP methods when an application was deployed to a Glassfish server to which the agent was attached. (JAVA-5939)
Fixed a JDBC Class Verify error that occurred with instrumentation of optimized classes. Instrumentation of these classes is now supported. (JAVA-5951).
Prometheus dead zone did not work if Prometheus agent was already loaded. (JAVA-5969)
Fixed an issue that caused this exception error:
com.contrastsecurity.thirdparty.org.objectweb.asm.MethodTooLargeException: Method too large: org/apache/jsp/main\_jsp.\_jspService \(Ljavax/servlet/http/HttpServletRequest;Lja...
(JAVA-6013)Fixed an issue that caused this exception error:
javalang.NullPointerException.
(JAVA-6014)Crypto-Bad-Mac findings from AppDynamics are now suppressed. (JAVA-6027)
Fixed an issue that caused this exception error:
java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load \[org/grail..
. (JAVA-6049)Fixed an issue that caused this exception error:
java.lang.NullPointerException: Cannot invoke "java.security.CodeSource.getLocation\(\)" because the return value of "com.contrasts...
(JAVA-6166)Fixed an issue that caused this exception error:
java.lang.IllegalArgumentException: string parameter cannot be empty
. (JAVA-6101)Fixed an issue that caused this exception error:
java.lang.NullPointerException
.(JAVA-6106)Fixed an instrumentation issue so that Contrast calls
ContrastELInjectionDispatcher.onParseExpression
. This change ensures that the agent successfully blocks all ELExpressions
. (JAVA-6107)Fixed an issue that caused this exception error:
com.contrastsecurity.thirdparty.org.objectweb.asm.MethodTooLargeException: Method too large: org/apache/jsp/main\_jsp.\_jspService \(Ljavax/servlet/http/HttpServletRequest;Lja...
(JAVA-6108)Fixed an issue where double slashes were used in endpoint URIs. s (JAVA-6118)
Reduced the performance impact caused by fetching Netty classes with
onChannelRead
. (JAVA-6108)Fixed reporting of false positives on DataDog and CgroupReader. (JAVA-6135)
Fixed an issue that caused an exception when parsing a valid file path. (JAVA-6149)
Fixed an issue that caused this exception error:
java.lang.IllegalArgumentException: string parameter cannot be empty.
(JAVA-6150)Fixed an issue that caused this exception error:
java.nio.charset.IllegalCharsetNameException: UTF-8; action="urn:receiveDocumentResponse"
. (JAVA-6169)Fixed an issue that caused this exception error:
java.lang.NullPointerException: Null sensitiveDataReplaced
. (JAVA-6175)Fixed an issue that caused this exception error:
java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
. (JAVA-6179)Fixed an issue that caused this exception error:
java.lang.IllegalArgumentException.
(JAVA-6186)Fixed an issue where the agent did not set the document type for
UserInputDTM
. (JAVA-6227)
Release date: January 31, 2023
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
Bug fixes:
Fixed multiple internal bugs.
Release date: January 31, 2023
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Added support for Tomcat 10. (Java-6075)
Bug fixes:
Fixed the performance impact of fetching Netty classes with
onChannelRead
. (Java -6131)
Release date: January 20, 2023
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
Bug fixes:
Contrast was not reporting vulnerabilities (and their observed routes) that have
header-map
sources. (JAVA-6111)
Release date: January 18, 2023
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Path traversal semantic analysis from other agent's code no longer trigger false positive events. (JAVA-5959)
Significantly Improved performance for code exclusions. (JAVA-5962)
Improved compatibility with Instana APM agent (JAVA-5962)
Bug fixes:
Fixed an issue where the agent didn't ignore proxies for different JREs and reported a
java.lang.VerifyError: Bad local variable type on JDK 17
error. (JAVA-5857)When instrumenting WildFly, the agent no longer throws an exception for every request when an Undertow supporter is enabled. (JAVA-5864)
Agent was interfering with the
AbstractRolloverStrategy
transformation forlog4j 2.17.x
files. (JAVA-5890)Fixed a null pointer exception for
ScalaPlaySupporter
. (JAVA-5994)Fixed an issue with Java 19 and ASM instrumentation that caused a
java.lang.IllegalArgumentException: Unsupported class file major version 63
error. (JAVA-5998)Protect was unnecessarily creating sessions in J2EE, JavaEE, and JakartaEE apps. (JAVA-6036)
OSGiFriendlyClassWriter
reported common ancestry failures as errors. (JAVA-6061)
Archive
Release date: December 15, 2022
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Added support for Assess RestEasy framework. (JAVA-5369)
The agent now protects against a vulnerability where it was possible to obtain a reference to
Class.getClassLoader()
orModule.getClassLoader()
by callingfindVirtual
to obtain aMethodHandle
and then invoke it. (JAVA-5906)
Bug fixes:
Fixed an issue where a previous WebSphere TLS Poisoning fix no longer worked with the latest IBM JRE. (JAVA-5891)
The agent was incorrectly reporting CGLIB and other classes as observed classes. (JAVA-5904)
Fixed a gap in Input Validator support. (JAVA-5910)
Fixed a false positive report for Prometheus Path Traversal. (AVA-5958)
Observed route reporting was failing when Assess was enable from only the Contrast web interface. (JAVA-5966)
Release date: November 30, 2022
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Removed the deprecated
property contrast.assess.threshold.period
settingRemoved the deprecated
contrast.timeout
settingUpdated the agent to handle map of HTTP Headers for
reflected-xss
false positivesAdded the
ClassLoader Manipulation
rule to block malicious attempts to use thejava.lang.invoke
API to invoke theClass.getClassLoader()
andModule.getClassLoader()
methods.Protect is optimised to skip rules that are disabled by an immutable configuration.
Bug fixes:
The agent was transforming classes, unnecessarily, which introduced risks. This issue is now fixed. (JAVA-5538)
Java agent was enabling route coverage when Contrast Assess was disabled. (JAVA-5610)
The agent crashed when current working directory could not be listed. (JAVA-5720)
ApplicationArchitecture
was leaking memory and never removed its ArchitectureComponents component (JAVA-5763)The agent was not sending the agent version and language in the
User-Agent
header. (JAVA-5768)Delayed Grizzly application discovery causes false negatives. (JAVA-5816
Fixed
java.lang.NullPointerException: Null sensitiveDataReplaced
.(JAVA-5847)HardcodedKeyRule and HardcodedPasswordRule instrumentation was being skipped. Instrumentation now works correctly (JAVA-5855)
Path traversal semantic analysis was not logging results as expected. It is now correctly reported as SUSPICIOUS or BLOCKED .(JAVA-5883)
Release date: November 14, 2022
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Added the ability to identify whether or not opaque URIs in lookups are safe and if they are from the same origin as the provider.
Removed the beta label from JNDI Injection Rule.
CVE-2022-41852 - JXPath RCE.
Bug fixes:
WildFly route coverage no longer includes the context path in observed routes. (JAVA-5688)
Fixed issue where unshared scoping causes multiple requests to occur. (JAVA-5690)
Fixed issue where Protect
DisablingDispatcherDecorator
fails to handle exceptions with ProtectManager. (JAVA-5703)Fixed a
java.lang.NullPointerException: Null sensitiveDataReplaced
issue. (JAVA-5777)Fixed issue where a Path Traversal false positive appeared for DataDog accessing cgroups. (JAVA-5813)
Fixed issue where new log4j version caused a problem in agent 4.7.0. (JAVA-5819)
Release date: November 4, 2022
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
Bug fixes:
Fixed an issue where the Java agent was logging a vulnerability for itself when rolling log files. (JAVA-5806)
Release date: October 27, 2022
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Added the ability to retry the PhoneHome behaviour for the agent until a retry timeout is met.
Added support for non-http sources for JMS 2.0
Added support for http4k 4.x in Assess
Updated the Apache Commons Text library to address a vulnerability
Added support for regex exclusion for JMS message queue services in Assess
Add protection against CVE-45046 to JNDI Rule in Protect
Updated
log4j
to v2.17.1 or laterUpdated Apache CXF application to use JAX-RS
ContainerRequestFilter
Bug fixes:
Fixed a
PrivilegedActionException
incom.contrastsecurity.agent.type.Type
(JAVA-5771)Fixed a
java.lang.NullPointerException
(JAVA-5729)Log4j2 CveShield was failing due to shading of agent obfuscation (JAVA-5724)
Improved slower startup performance with latest agent (JAVA-5715)
RESTEasy JAX-RS route coverage now includes context path in the observed route URI (JAVA-5689)
CSRF false positive was occurring with JSF protected pages (JAVA-5609)
Cloning was failing when you used custom sanitizers (JAVA-5571)
,Release date: October 27, 2022
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
New and improved:
Added protection against CVE-45046 to JNDI Rule in Protect.
Release date: October 18, 2022
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Added support in the YAML configuration file to configure retry actions when the agent's initial connection to Contrast times out.
Bug fixes:
Wildfly 14 and later was unable to deploy an enterprise archive (EAR) file with Enterprise Java Beans (EJB). (JAVA-5634)
The
ContextPassingTest
occasionally failed due to build changes. (JAVA-5587)The Java agent did not limit log size in all conditions. (JAVA-5578)
An issue existed when creating a target directory in
contrast-maven-plugin
. (JAVA-5531)
Release date: September 28, 2022
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
Bug fixes:
Protect logging was too verbose due to a failure when parsing request bodies (JAVA-5575)
Asynchronous
WebSphereApp
event caused a race condition (JAVA-5563)Route coverage was executing when disabled (JAVA-5487)
Agent handling of failure with YAML configuration file parsing was unclear (JAVA-5445)
Release date: September 9, 2022
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
Bug fixes:
JNDIInjectionProtectRule defaulted to Monitor instead of Off. (JAVA-5529)
A
Class Loader Manipulation
event from thedescribe
method for Apache BeanUtils v1.x no longer reports a false positive result. (JAVA-5453)
New and improved:
SpringBootDispatcher
callsEnvironmentPrepared
only once.Added ECIES encryption to the Insecure Encryption Algorithm rule so it is seen as safe.
Removed the ReDoS rule for Contrast Protect.
Release date: September 9, 2022
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
Bug fixes:
Removed unnecessary calls to app object
hashCode
methods. (JAVA-5521)
Release date: September 1, 2022
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Support for JDK HTTP Server - HTTP Modeling
Enhanced support for JNDI injection rule
EventHelper calls hashCode() on objects
WebSphere doesn't on pipelines
Classification metadata for skipped tests defined and implemented
Fixed behavior of
String.contains
with an empty stringConverted Protect XML patterns to JSON and removed associated XML loading code
Bug fixes:
Avoid adding
DiscoveredRoute
if no URL patterns (JAVA-5451)Annotate Log4j2 plugins with
@DontObfuscate
(JAVA-5435)Agent creates redundant applications leading to heap exhaustion (JAVA-5433)
Failed to parse JDBC URL while profiling database (JAVA-5430)
DefaultObjectSnapshotFactory
callstoString()
on objects (AVA-5422)
Release date: August 30, 2022
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
Bug fixes:
Analyze log action incorrectly identifies Contrast request type (JAVA-5455)
Assess performance regression discovered in version 4.1.0.24 (JAVA-5438)
Release date: August 30, 2022
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
Bug fixes:
Agent creates redundant applications leading to heap exhaustion (JAVA-5433)
Release date: August 17, 2022
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Support Assess http4k 4.x response body detection - various response body vulnerabilities.
Denylist
IGNORED
andANALYZED_IGNORED
classes for http4k 4.x
Bug fixes:
Jersey route coverage inconsistent between standalone and multi-app. (JAVA-5388)
Input Exclusion for input type
BODY
does not work for deserialization. (JAVA-5342)Analyze Websphere Liberty support on jdk 8. (JAVA-5353)
Release date: August 3, 2022
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Support http4k 4.x route coverage.
Support Assess http4k 4.x response header detection - various header vulnerabilities.
Support Assess http4k 4.x GET request and form Submission - XSS, HTTP header injection vulnerabilities.
stderr ContrastProperty
now available.
Bug fixes:
File backups max not limited to 100. (JAVA-5333)
Protect can incorrectly match the empty string with other strings triggering an attack. (JAVA-5331)
ClassLoader Manipulation - FP. (JAVA-5319)
BreadCrumbs limit can grow beyond the limit. (JAVA-5315)
NullPointerException possibility in ArchitectureComponent. (JAVA-5314)
Providing an empty hostname to the syslogger disables it. (JAVA-5285)
Release date: July 20, 2022
Language versions currently supported: Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Glassfish deployments no longer require
standalone_app_name
for features like Route Coverage. The agent will automatically detect the application on startup instead of first request without additional configuration.Netty deployments no longer require
standalone_app_name
for features like Route Coverage. The agent will automatically detect the application on startup instead of first request without additional configuration.Grizzly deployments no longer require
standalone_app_name
for features like Route Coverage. The agent will automatically detect the application on startup instead of first request without additional configuration.Dropping support for Java 6 and 7.
Add counters for semantic
PathTraversal
andCmdInjection
analysis.Realtime Reporting: Implement Failure Handling for Recoverable Network and HTTP Errors.
Bug fixes:
ContrastSpringArchitectureDispatcher can produce NPE on undefined URI scheme. (JAVA-5293)
CXF Path-traversal FP on AbstractHTTPDestination. (JAVA-5286)
Providing an invalid host name to the syslogger causes the app to crash. (JAVA-5270)
Release date: July 8, 2022
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Improved OWASP Benchmark testing.
Release date: July 6, 2022
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Discover Struts 2 routes without standalone app name.
Discover Struts 1 routes without standalone app name.
Discover Jersey routes without standalone app name.
Add Spring Boot 2.4, 2.5, 2.6, 2.7 test.
Bug fixes:
Protect misses numeric SQL Injection containing JDBC escape chars.
Breadcrumbs size should be bounded.
Protect XXE Bypass on WebGoat.
Release date: June 29, 2022
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Adjusted environment variables for telemetry opt-out.
Bug fixes:
Netty - onSourceEventDetected throws Unsupported when non-array buffer is used. (JAVA-5215)
Grizzly NPE reported by Contrast on Glassfish 4 applications. (JAVA-5172)
Denylist Apache CXF CglibProxyHelper. (JAVA-5167)
Preload Contrast agent classes for temperamental WebSphere on IBM z/Linux. (JAVA-5085)
Needless
toString
calls on customer domain objects. (JAVA-4790)
Release date: June 9, 2022
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Telemetry is now enabled by default.
WildFly, JBoss and Tomcat applications are now eagerly identified when the application/server is created.
Bug fixes:
Agent stops working when getting a 404 response. (SUP-3560)
Agent tries to startup despite failure of
classInjection.inject
. (JAVA-5152)Insecure hash algorithm findings in Datadog. (SUP-3729)
ApplicationClassEventListener
is prone to deadlocks. (JAVA-5095)ClassCircularityError found on Jetty 7. (JAVA-5146)
Release date: May 25, 2022
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved
Improved performance to Elastic APM
Bug fixes:
Assess tag functionality is inconsistent across different environments. (SUP-3775)
Java agent uses a vulnerable version of
jsoup
library. (SUP-3789)False positive path traversal:
java.base/java.io.File.createTempFile
(SUP-3589)Agent fails to transform AWS ScanRequest class. (SUP-3667)
Release date: May 11, 2022
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Improved support for multi-app route coverage and discovery on Websphere traditional.
You can now use the config property to get the agent version in
AgentVersionClassificationTestWatcher
.
Bug fixes:
The OGNL injection rule can report the same attack as being Probed and either Blocked/Exploited. (SUP-3731)
One request yields multiple calls to URI activity and
ContrastHttpServletDispatcher#onFirstRequestHandlerInvoked
. (JAVA-5009)Protect ignores exclusions for URIs when excluded for all Protect rules. (SUP-3660)
Java agent fails to start if server does not exist on Contrast server. (SUP-3703, 3587)
Release date: April 27, 2022
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Improved application identity support on WebLogic.
Improved application identity support on Jetty.
Resin server servlet support on Assess.
JarAnalyzer
should handle buffer growth more efficiently.
Bug fixes:
VerifyError
for log enhancer. (JAVA-5014)JndiInjectionReporter
incorrectly truncates stack trace. (JAVA-4993)Header names are not properly modeled as case-insensitive. (JAVA-2186)
Release date: April 13, 2022
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Improved accuracy of the Protect padding Oracle rule.
No
standalone_app_name
is required for route coverage for Spring Boot executable JARs.Improved memory utilization when analyzing customer webapp libraries for Protect.
Bug fixes:
XSS Keyword/Pattern causing false positives for Protect. (SUP-3275)
Release date: April 7, 2022
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
New and improved:
Adds a new Protect rule, Class Loader Manipulation, that provides additional hardening against exploits like Spring4Shell and others. The new rule guards against attacker attempts to gain access to and manipulate a class loader. Manipulating a class loader is a common way that attackers exploit the reflection code in expression language injection and mass assignment vulnerabilities to escalate to remote code exploitation.
Improves the accuracy of the Protect Cross-Site Scripting (XSS) rule.
Improves the accuracy of the Assess Log Injection rule so that it also detects this vulnerability when untrusted data enters log statements through logger formatter parameters (in addition to untrusted data in the formatting string itself).
Improves the robustness of our exercised route reporting in applications with large numbers of applications and exercised routes.
Bug fixes:
When running the Contrast agent alongside the Datadog agent, Contrast Protect reports a path traversal attack in Datadog’s
datadog.common.container.ContainerInfo
class. This false positive has been fixed.
Release date: March 30, 2022
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
Bug fixes:
False positive path traversal:
java.base/java.io.File.createTempFile(String, String)
(JAVA-4868)False positive path traversal: Spring Web MVC (JAVA-4777)
Async request handling triggers arbitrary server side forward. (JAVA-4392)
Release date: January 19, 2022
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
New and improved:
Support for route coverage on Spring Boot 2.5 and 2.6.
Support for Kotlin tagging/encoding utilities, Spring XSS and co-routine APIs.
Support for library discovery for Scala Akka HTTP 10.2.X.
Bug fixes:
AdaptiveOptimizationManagerTest
has an unnecessary 1 minute delay. (JAVA-4383)Defining an abstract method causes
java.lang.ClassFormatError
. (JAVA-4325)PercentCodec
does not decode multibyte characters properly . (JAVA-4307)XXE false negative: XML parsers are considered secure even if
XInclude
is enabled. (JAVA-4233)
Release date: January 5, 2022
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
New and improved:
Support for Scala 2.13, Scala Play JSON Parsing Utilities and String Utilities.
Support for Kotlin tagging/encoding utilities, Spring XSS and co-routine APIs.
Protect CVE shield for Log4j CVE-2021-44228
Bug fixes:
Policy classes removed but policy remains in XML. (JAVA-4311)
Netty support instruments Spring WebFlux client requests/responses as sources of untrusted data causing false positives and performance degradation. (JAVA-4285)
Caching
ContrastPolicy
causesArrayIndexOutOfBoundsException
. (JAVA-4262)GET Request bodies can be used to bypass Protect. (JAVA-4226)
PropagatorAdaptiveOptimizerImpl.getCallerHistory
, andAdaptiveOptimizationManager.isSourceIdentityAllowed
are not thread safe. (JAVA-4207, JAVA-4206)JAXB Unmarshalling is missing for DOM nodes. (JAVA-4200)
XXE false positive: XML parsers considered insecure when
XMLConstants.ACCESS_EXTERNAL_DTD
disabled. (JAVA-2691)False negative for source
javax.servlet.http.Part.getHeaderNames()
on Websphere. (JAVA-2437)
Release date: February 2, 2022
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
New and improved:
Additional support for Assess Scala: Akka HTTP 10.2.x redirect/forward - unvalidated redirect, arbitrary server side forwards vulnerabilities, GET request and form submission for XSS, HTTP header injection vulnerabilities.
The Contrast Java agent now fully supports server-side Kotlin applications.
Added a configurable limit for request body capture size (default
Integer.MAX
).Added denylist
IGNORED
andANALYZED_IGNORED
classes for Scala 2.13 language/SDK.Added XXE test case for XML parsers secured by enabling
XMLConstants.FEATURE_SECURE_PROCESSING
.
Bug fixes:
Protect path traversal false positive in Infinispan CPU detection. (JAVA-4406)
Prevent OOM from large request bodies collected for
ApplicationActivityDTM
. (JAVA-4321)Servlet route coverage fails on embedded Tomcat. (JAVA-4313)
DataFlowEventHistory
may overflow affecting adaptive optimization. (JAVA-4208)Adaptive Optimization is not specific in deadzoning. (JAVA-4194)
Release date: March 2, 2022
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
重要
Beginning with this release, the Contrast agent now supports Java 17.
New and improved:
The
java.sql module/package
is no longer required for the Java agent.Added support for Assess Kotlin: 1.5 Dynamic Database Sources - Stored XSS and 1.5 Reflection Injection
Added enhanced support for GlassFish JSP.
Bug fixes:
Untrusted deserialization attacks wrongly include Contrast code in stack trace (JAVA-4599)
WebSphere OSGI classloading behavior results in
NoClassDefFoundError
. (JAVA-4591)Semantic path traversal fails to catch
Paths.get
usage on J8. (JAVA-4459)Protect unsafe file upload false positive from test JAR. (JAVA-4455)
JarAnalyzer reads bytes for ZipEntry even if not required. (JAVA-4453)
XXE false-negative: TransformerFactory parser considered secure with only
ACCESS_EXTERNAL_STYLESHEET
disabled. (JAVA-4340)XXE false-positive: Axiom StAX parser with secondary controls (StAXParserConfiguration.STANDALONE) enabled. (JAVA-4339)
Potential leaks in hierarchy scanners. (JAVA-4300)
Netty
EmptyByteBuf
false positive. (JAVA-4204)Field name not set for triggered events in Apache CXF. (JAVA-524)
Release date: March 16, 2022
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
重要
With this release, the Contrast Java agent is starting to move to a new versioning system. In some locations you may see this release labeled "3.10.0.25482".
3.X versions support Java 6 and 7. Future 4.X versions will support Java 8+.
See this FAQ for more information.
New and improved:
Added support for Scala-Play log injection
Bug fixes:
Error messaging around Contrast profiles shows incorrect case sensitivity. (JAVA-4859)
Java agent not creating or linking to application when standalone app name is used. (SUP-3587)
JarAnalyzer
loads bytes of entire jar into memory. (JAVA-4813)False negative in
UncheckedRedirectRule
. (JAVA-2742)
Release date: December 14, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
New and improved:
Upgraded CVE-2021-44228 shield to respect shaded packages of Log4j2. Improved reporting of attack events. (JAVA-4301)
Release date: December 14, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
Bug fixes:
Added Protect CVE shield for Log4j CVE-2021-44228 (JAVA-4301)
Release date: December 8, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
New and improved:
Added further support for Kotlin Assess (Beta).
Enhanced support on configuration properties.
Bug fixes:
Spring framework method/actuator displayed as a route signature. (SUP-3001)
Release date: November 24, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
New and improved:
Added support for Kotlin (Beta).
Enhanced support on configuration properties.
Bug fixes:
Creating an application reports a race condition (JAVA-4248)
BeanCreationException error when running with Java agent. (SUP-3302)
Java application doesn't start with Contrast Assess agent, but looks for
all.json
file instead. (SUP-3287)Unable to exercise routes when using Spring Cloud/Zuul (SUP-3185)
When running with multiple profiles for the java agent, it breaks when the contrast.profile is set to anything with uppercase letters. (SUP-3267)
Release date: November 10, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
Bug fixes:
Java agent throws a null pointer exception when sending request containing XXE with Protect. (JAVA-3956)
Protect does not apply path traversal to Headers. (JAVA-3957)
Adaptive optimization causes response delays. (JAVA-2322)
Release date: October 27, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
New and improved:
Added support for kotlin.concurrent APIs.
Added application discovery support for Kotlin 1.5 and Spring 5.
Added support for Assess Scala-Play vulnerabilities: XPath injection, XXE, unvalidated redirect, arbitrary server-side forwards, response header detection.
Added support for Assess Mulesoft 4.3 unvalidated redirect, arbitrary server-side forwards, response header detection.
Bug fixes:
XXE produces false positive
DisallowDocTypeReader
. (JAVA-3732)Potential for invalid request body to be returned when reporting a finding. (JAVA-3561)
Release date: October 13, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
New and improved:
Performance improvement to reduce memory allocation in the agent.
Bug fixes:
Cached Body may be regenerated incorrectly causing finding to contain wrong body. (JAVA-3918)
Agent logs out obfuscated decoy decrypt code. (JAVA-3915)
Unnecessary logging when the Java agent is disabled. (JAVA-3914)
Big request body content might cause
RequestMemoryBuffer
allocation to malfunction. (JAVA-3870)Java Agent instruments JDK jmap CLI Tool. (JAVA-3836)
Oracle ADF Path-traversal false positive. (JAVA-3773)
Oracle ADF XXE false positive. (JAVA-3771)
ConcurrentModificationEx
with Assess CSRF rule. (JAVA-3549)JVMUtils.checkKeyStore
kicks in too late. (JAVA-2368)Attack reporting erroneously HTML encodes request body. (JAVA-1671)
XXE attack reporting fails to render entity. (JAVA-1668)
Propagation events not triggered as expected for javax propagator rules. (JAVA_448)
Release date: September 29, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
New and improved:
Added Assess Rules (SQLi, Cookies, File Upload) for Mulesoft 4.3 beta support.
Investigatedimplementing StAX for Protect XML parsing.
Ensured
HttpUtil.toNormalizedURI
does not trigger vulns.
Bug fixes:
CentOS 8 Java RPM package missing from RPM repository. (JAVA-2422)
Response delays caused by adaptive optimization bug. (JAVA-2322)
Release date: September 15, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
New and improved:
Support Mulesoft 4.3 route observation.
Handle generating/caching strings for findings efficiently.
Bug fixes:
Assert all positive values in
ScopeAssess.decrementScope
. (JAVA-3688)Contrast agent attempts to instrument AppDynamics. (JAVA-3649)
NoClassDefFoundError
instrumenting Liferay built-in CXFEndpointPublisher. (JAVA-3621)Cross-site scripting (XSS) FP writing client-side state to JSF pages. (JAVA-3541)
Protect scanning of request body involves excessive allocation. (JAVA-3106)
Release date: October 5, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
New and improved:
Added Assess beta support for MuleSoft 4.3
Added SAST missing policies for
java.util.Optional
SnapshotFactory now limits snapshot size dynamically.
Thread-unsafe
SimpleDateFormat
may nowbe used by multiple threads
Bug fixes:
Add missing policies for JSON Web Tokens. (JAVA-3593)
WebGoat 7.1 produces
NoClassDefFoundError
. (JAVA-3649)Syslog heartbeat message logged every time config changes. (JAVA-3621)
Rules disabled while application is running still appear in preflight report. (JAVA-3541)
LogLevel cannot be set by server level features. (JAVA-3106)
Release date: August 19, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
New and improved:
Added Application Discovery Support for Mulesoft 4.3.
Enanced support for untrusted forward in Liferay 7.2+.
Bug fixes:
Missing propagators in Spring policies. (Java-3571)
Protect AccessControlException
for NanoXML. (JAVA-3548)Java Assess:
java.lang.NumberFormatException
when uploading a huge file. (JAVA-3545)Java Agent doesn't respect configuration provided via system properties file. (JAVA-2495)
WebGoat 7.1 server type detection. (JAVA-2458)
DB flowmap regression in 3.7.10.17525+ agent. (JAVA-2313)
OOM: Protect rebuilds a masked body for each attack in a single request. (JAVA-1646)
Assess must limit size of
RequestBuffer
. (JAVA-3272)RequestMemoryBuffer
copies all bytes for the request body again. (JAVA-3107)
Release date: August 4, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
New and improved:
Added sensitive data masking support for Liferay namespaced parameters.
Enhanced Liferay 7.2+ LDAP injection and path traversal.
Refactored Hibernate entry points that use functional interfaces.
Extracted rule evaluation metadata from being hardcoded in
SignatureBasedRules
.Improved performance of Liferay Check in
UnvalidatedForwardCheck
.
Bug fixes:
Fix Typo in USE_RUNTIME_CACHE. (Java-3518)
Incorrectly parsed uncommon query string results in incorrect behavior. (JAVA-3305)
Assess must limit size of
RequestBuffer
. (JAVA-3272)RequestMemoryBuffer copies all bytes for the request body again. (JAVA-3107)
Compare agent defined Protect rules with Contrast's supplied rules. (JAVA-2629)
Failure to discover libraries in EAR deployed to WebSphere 8.5 on IBM Java 1.8. (JAVA-2122)
Release date: August 5, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
Bug fixes:
NPE with
ContrastPlugin.isDisabledUri
. (Java-3536)MuleSoft Jetty bad operand on stack. (JAVA-3553)
Incorrectly parsed uncommon query string results in incorrect behavior. (JAVA-3305)
Assess must limit size of
RequestBuffer
. (JAVA-3262)RequestMemoryBuffer
copies all bytes for the request body again. (JAVA-3107)Compare agent defined Protect rules with TS supplied rules. (JAVA-2629)
Fails to discover libraries in EAR Deployed to WebSphere 8.5 on IBM Java 1.8. (JAVA-2122)
Add Sensitive Data Masking Support for Liferay Namespaced Parameters. (JAVA-3007)
Liferay 7.2+ Path Traversal false-positives. (JAVA-2920)
Release date: July 22, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
Bug fixes:
Screener Micro failures due to update to newest artifact. (JAVA-3381)
GitHub runner does not have access to ECR. (JAVA-3379)
Cross-site scripting (XSS) false negative in SpringBoot 1.0+. (JAVA-3362)
Regex Scan Policy Targets the Wrong API. (Java-3358)
Agent acts differently when started with proxy enabled. (JAVA-3268)
UrlExcusions
with all rules off are not applied before capturing request body. (JAVA-3108)Request MemoryBuffer threadlocal never releases any memory allocated. (JAVA-3014)
Umbrella is not discovering an entry point in the Java IO Test. (JAVA-2529)
Release date: July 8, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
Bug fixes:
Umbrella is not discovering and entry point in the Java IO Test. (JAVA-2529)
Release date: June 24, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
New and improved:
Added support for Oracle ADF 12c.
Remove JAXB from Contrast SDK.
Bug fixes:
-Dcontrast.assess.save_results=OnError
not saving vuln data locally when agent is unable to connect to Teamserver. (JAVA-3267)Agent fails to obtain settings from Teamserver after starting with no connectivity. (JAVA-3148)
Correct server detection for JBoss EAP and Wildfly post 19. (JAVA-3110)
Struts 2 route coverage does not function without the spring-struts-plugin. (JAVA-1947)
Release date: June 10, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
New and improved:
Add technology sensor for MyBatis.
Make overly-long session timeout check log messages less noisy on
DEBUG
.Use Final Release of
java-launcher.jar
instead ofSNAPSHOT
version.Added Scan to OWASP benchmark.
Bug fixes:
XXE False Positive when XMLStreamReader is configured to be safe. (JAVA-3118)
Java Agent detects JBoss EAP 7.3 (WildFly 18) as JBoss AS 7.1 (which is JBoss EAP 6.0). (JAVA-2832)
Agent sends invalid internalDate for libraries. (JAVA-272)
WebSphere 8.5.5 yields NoSuchFieldException. (JAVA-86)
Release date: May 27, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15, 16
New and improved:
Added full support for JDK 16.
OpenJDK16 XXE tests with
InaccessibleObjectException
.XXE False Positive when attribute
ACCESS_EXTERNAL_STYLESHEET
is configured to be safe.
Bug fixes:
ContrastNettyDispatcherImpl
usesClassCastException
for control flow. (JAVA-2888)DataMasker
handling of Request Body does not work for multi-part requests. (JAVA-2681)Reflected cross-site scripting (XSS) detection race condition. (JAVA-2619)
Merge of
AppActivity
with concurrent modification causesConcurrentModificationException
. (JAVA-2457)AssessmentContext
use ofWeakHashMap
causes deadlocks. (JAVA-2431)
Release date: May 13, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15
New and improved:
Added support for Trinidad 2.0+ ResponseWriters and HTML escaping utilities tagging/deadzones.
Added Support for Mojarra 2.0+ HtmlResponseWriter and HtmlUtils tagging/deadzones.
ADF File Upload Support for cross-site scripting (XSS) in Assess.
Trinidad JSP Support for cross-site scripting (XSS) and Path Traversal in Assess.
Added support for ADF Business Components (SQLi) in Assess.
Added support for ADF Facelets cross-site scripting (XSS) and Path Traversal in Assess.
Added Static Application Security Testing (SAST) tests for
java.xml
and java.beans.Added Static Application Security Testing (SAST) tests for
java.util
.Added Static Application Security Testing (SAST) tests for
java.lang
.
修正された不具合:
False positive Path Traversal null byte. (JAVA-2768)
Slow primordial transformation time for J11. (JAVA-2761)
Java code formatting is not being applied/checked in acceptance test application project. (JAVA-2716)
Vulnerabilities not sent for Jersey acceptance test app. (JAVA-2645)
ArrayIndexOutOfBounds with PurgeThread on TS. (JAVA-2589)
XXE False Positive when TransformerFactory is configured to be safe. (JAVA-2534)
Umbrella Lambda Entrypoint Signatures are confusing. (JAVA-2526)
Fix team module race condition when adding new developers. (JAVA-2256)
Remove
javax.net.ssl.keyStorePassword
from contrast log. (JAVA-538)
Release date: April 15, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9, 10, 11, 12, 13, 14, 15
New and improved:
Reduced object allocation in input canonicalization of Protect for increased performance and lower memory usage.
Added support for WebLogic's DocumentBuilder XML implementations in Assess.
Changed Protect XSS rule from Probed to Suspicious when in monitoring mode.
修正された不具合:
When using a
PemPrivateKey
in Netty, the agent would report a Hardcoded Key vulnerability. (JAVA-2616)When using Jersey JAX-RS, the agent could get caught in a race condition during route observation. (JAVA-2425)
When using an older version of ESAPI with Protect enabled, the agent could throw a null-pointer exception. We removed the deprecated User Attack Attribution feature to fix this issue. (JAVA-66)
Release date: April 1, 2021
Language versions currently supported: Java 1.6, 1.7, 8, 9 ,10, 11, 12, 13, 14 and 15
New and improved:
Fixed cross-site scripting (XSS) false-positives in Oracle ADF views.
The agent now reports effective instrumentation mode on Application create.
修正された不具合:
When trying to identify ReDos vulnerabilities in Spring, the agent could report a false positive in
UriComponentsBuilder
. (JAVA-2599)When instrumenting AWS DynamoDB with Assess, a null-pointer exception is thrown in
ScanRequest
if a null is passed as a parameter. (JAVA-2525)When the agent tries to instrument Apache Axiom, the Java agent can not confirm whether
XMLInputFactory
supported external entities Apache Axiom API. (JAVA-2499)When Assess is disabled, the agent will still report discovered routes. (JAVA-2494)
When the
CorsFilter
is enabled in Spring, the agent could falsely report a Header Injection vulnerability in Assess. (JAVA-2492)When custom security controls with All Rules are enabled in Contrast, Assess data flow rules do not respect custom-encoded tags. (JAVA-2217)
When trying to deploy the agent to Pivotal Cloud Foundry (now VMWare Tanzu), libraries in external directories are not recognized. (JAVA-2178)
When trying to identify Assess vulnerabilities in Apache Axiom, an external entity injection (XXE) false positive could be reported. (JAVA-2118)
When using ESAPI Validators for files in application code, the agent could report path traversal false positives. (JAVA-967)
When using Websphere, the agent would generate a vulnerability for insecure cookies when not part of an HTTP request. (JAVA-755)
When using
java.io.ObjectInputStream#readObject
, the agent would not report untrusted deserialization vulnerabilities on the deserialization of Base64 encoded objects. (JAVA-719)
Release date: March 18, 2021
Language versions currently supported: Java 1.6 - Java 11, 12, 13, 14 and 15
New and improved:
The Java agent is now compatible with the latest Java 16 release candidate.
修正された不具合:
When attempting to block a ReDos attack with Protect, application settings for the rule from Contrast were ignored. (JAVA-1959)
When Assess is enabled in a Websphere server, sending a SOAP request could report an XXE false positive. (JAVA-2273)
When using Netty, the agent could cause the request cookies to become malformed. (JAVA-2439)
When using Apache, the agent is reporting WebService architecture components with invalid URL values. (JAVA-2449)
Release date: March 4, 2021
Language versions currently supported: Java 1.6 - Java 11, 12, 13, 14 and 15
New and improved:
Downgraded "Failed to Update Immutable Collection" log message from ERROR to DEBUG.
修正された不具合:
When running Protect, rules that only block at the perimeter do not report attacks at the perimeter when in monitoring mode. (JAVA-58)
When trying to scan for Spring Boot libraries on startup, the agent fails if
JBOSS_HOME
is set. (JAVA-2027)When trying to monitor the number of queries executed, the agent could incorrectly report a much higher number of queries. (JAVA-1970)
When running Assess in WebSphere, the agent could falsely report a XXE vulnerability in XLXP2. (JAVA-2387)
When attempting to decode Javascript in Protect, the agent could throw an NullPointerException on a specific input. (JAVA-2456)
Release date: February 18, 2021
Language versions currently supported: Java 1.6 - Java 11, 12, 13, 14 and 15
New and improved:
Updated list of secure encryption algorithms for the insecure encryption algorithm Assess rule.
修正された不具合:
When Websphere is run with the agent in suite B mode, a
java.lang.IllegalArgumentException
is thrown, regardless of whether TLS1.2 is set as a system property. (JAVA-1813)When running a Dropwizard service that doesn't expose anything on the default servlet context, we log repeatedly after failing to obtain servlet context. We updated this to only log once. (JAVA-2272)
When trying to discover architectural components on start up, the agent could accidentally report a negative number. We've defaulted to certain ports based on HTTP scheme. (JAVA-2294)
When using the agent with Assess enabled, the agent could have a memory leak due to keeping all transformed class names. (JAVA-2310)
Release date: February 2, 2021
Language versions currently supported: Java 1.6 - Java 11, 12, 13, 14 and 15
修正された不具合:
Rule mode configurations were hidden by the agent but are now visible. (JAVA-3)
When checking for command chaining in SQL injection with Protect, a false positive could occur if
BEGIN
andEND
were used. (JAVA-53)Fixed configuration documentation for
inventory.library_dirs
property to specify correct delimiter per OS. (JAVA-962)When using Grizzly, the agent did not properly handle insecure cookies set with
setHeader
. (JAVA-1785)When using Assess, the agent could report incorrect security control tags in data flow. (JAVA-2216)
When using Protect, analysis of form metadata could result in a false positive. (JAVA-2274)
Release date: January 21, 2021
Language versions currently supported: Java 1.6 - Java 11, 12, 13, 14 and 15
Important notes:
The Contrast agent no longer enables Synapse-related policies by default. Support for Synapse is in Beta.
New and improved:
Added support for JPQL for JPA 2.0-2.2 in Protect.
Removed cookie name and value as valid sources for Reflected XSS in Apache CXF, Grizzly, JAX-RS on Jersey, J2EE/Servlets, and Netty.
修正された不具合:
When a user supplies an empty session ID configuration value, Contrast rejects vulnerabilities. The Java agent no longer allows empty session ID configuration. (JAVA-1120)
When scanning for overly-long session timeout vulnerabilities, the agent can match on XML nodes that were commented out. The agent now parses web.xml when looking for overly-long session timeout instead of using a String match. (JAVA-1912)
When inventory is disabled (
-Dcontrast.inventory.enable=false
) the agent still reports application inventory data. (JAVA-1968)When inventory is disabled, Protect attack reports can be disrupted. (JAVA-1971)
The Java agent no longer considers application path for application ID. (JAVA-2055)
When Protect is enabled the agent considers binary data for multipart value inputs. It will now only consider non-binary data. (JAVA-2103)
Removed an Assess SQL injection false positive finding within MariaDB. (JAVA-2106)
When using Synapse, tags are not duplicated for Apache headers and static strings. (JAVA-2117)
Release date: January 8, 2021
Language versions currently supported: Java 1.6 - Java 11, 12, 13, 14 and 15
New features and improvements:
The Java agent will now be disabled after 404 response from Contrast on startup.
Added Assess and Protect support for the MyBatis framework.
Agent now sends heartbeat messages to Contrast.
Improved Protect Base64 optimization when using exclusions or disabling rules.
修正された不具合:
False positive is associated with WebSphere when Protect is enabled. (JAVA-1897)
Loading static content with Websphere triggers a false positive Path Traversal vulnerability. (JAVA-1910)
Insecure Authentication Protocol Rule can cause false positives. (JAVA-1913)
Agent loses tainted object when Undertow's
PartImpl#getHeaders
is called more than once. (JAVA-1932)Datadog Protect Path Traversal caused false positives. Repaired by deadzoning certain classes. (JAVA-2057)
Agent
HierarchyCache
leaks file handles. (JAVA-2062)Loading static content with Wildfly triggers a false positive Path Traversal vulnerability. (JAVA-2064)
Release date: December 10, 2020
Language versions currently supported: Java 1.6 - Java 11, 12, 13, 14 and 15
New features and improvements:
Java 13, 14 and 15 are now supported.
Updated
PropagationEvent
andSourceEvent
with more modern design patterns.Updated agent to no longer send invalid
ArchitectureComponentDTM
.Fixed invalid LDAP url in architecture components.
ObservedRoute
URL is being passed to Contrast with an empty value.Improved performance of Base64 encoding detection.
Moved padding oracle Protect rule to Beta.
Added feature flag for web service response tracking (which is disabled by default) to ignore external HTTP responses as sources.
Improved performance by making changes to MarkOfTheBeast instrumentation.
Added new SQL Injection whitespace separators to Protect keywords.
Decreased Base64 decoding in Protect for performance improvements.
修正された不具合:
Protect malformed-header rule must include exceptional logic for multipart/related Content-Type's. (JAVA-1020)
Zombie Background Service error. Use
ScheduledExecutorService
instead ofThread.sleep
. (JAVA-1911)StackOverflowException ocurred from
CodeEventBuilder.getMethod()
. (JAVA-1960)The
spring-unchecked-autobinding
rule is not supported in Spring 4. (JAVA-69)Agent reports vulnerabilities before taking library inventory. (JAVA-1265)
Wildfly session ID is null when redirected to another servlet in tests. (JAVA-1300)
An
AppCreate
message is never sent if library inventory is disabled. (JAVA-1817)False attack reported when using Hadoop 3.2.1. Deadzone added to prevent this. (JAVA-1866)
Protect showed performance issues when analyzing deserialized objects. (JAVA-1871)
Server name defaults to null if lookup fails and not set by config. (JAVA-1894)
Propagators were causing false positives and negatives. Removed
FileInputStream.<init>
propagators to prevent false positives. AddedFileInputStream.<init>
as a path traversal sink to prevent false negatives. (JAVA-1914, JAVA-1915)
Release date: November 12, 2020
Language versions currently supported: Java 1.6 - Java 11
New features and improvements:
Java 2 Security Manager support is now out of beta and available for general use.
Added agent compatibility for Java 14 and 15.
Refactored and improved parts of application initialization to prevent rare errors.
Added OWASP Benchmark to automated test pipeline.
Updated SQL Injection whitespace separators for Protect.
Added a debug log statement after primordial retransformation.
The agent can now detect programmatic setting of Session Timeout for applications without a web.xml.
Updated padding oracle, ReDos, and ZIP file overwrite Protect rules to include Suspicious attack labels.
修正された不具合:
Some Struts CVE shields don't check for vulnerable libraries before reporting attacks. (JAVA-153)
Moved CSP header analysis context so it is specific to the current request, rather than applying to all requests. (JAVA-1609)
Release date: October 29, 2020
Language versions currently supported: Java 1.6 - Java 11
New features and improvements:
Java 2 Security Manager support is now out of beta and available for general use.
Removed the auto-license configurations from the Java agent.
Enabled reporting of enhanced library usage feature by default.
Added support for
JEP 325
switch expressions.Updated agent to prevent redacting important error information from the logs.
Changed inaccurate warning when application name cannot be found.
Added Expression Language injection vulnerability support for Thymeleaf in Spring.
Updated agent to default Protect rule modes to
off
.
修正された不具合:
Assess XXE getting false negative with JAXP StAX Parsers. (JAVA-757)
GlassFish classloader occasionally fails to load contrast dispatcher types. (JAVA-1595)
CSP header analysis referrer is misspelled. (JAVA-1611)
ReDoS event causes application to fail to start. (JAVA-1771)
DataDog Protect path traversal shows false positive. (JAVA-1791)
Redundant
onApplicationInventoried
callbacks cause performance degradation. (JAVA-1822)
Release date: October 15, 2020
Language versions currently supported: Java 1.6 - Java 11
Important notes:
In this release, the Java agent changed the behavior of the api.timeout_ms
config parameter. Previously this parameter, while titled as milliseconds, was interpreted by the Java agent as seconds. This behavior has been corrected to be milliseconds across this board. The legacy behavior using seconds is not available via a YAML config, but is configurable with the -Dcontrast.timeout
flag. Contact Support if you were negatively impacted by this change and need assistance.
New features and improvements:
You can now use profiles in a multi-tenant application configuration to apply individual options to each application.
Verified Protect blocks untrusted deserialization on
commons-collections
andc3p0
.Liferay Suppression now uses
UnvalidatedForwardCheck
and not stack denylist.You will now see WARN if the YAML configuration file contains invalid syntax when parsing or if required configuration to connect to the Contrast application is missing.
Log full configuration state including environment, command line, and YAML values.
修正された不具合:
False positive on hardcoded key in Assess. (JAVA-710)
Missing deadzone caused NewRelic path traversal. (JAVA-891)
SHA-1 false positive found in WebSphere LTPA token generation. (JAVA-1594)
SHA3-256 incorrectly identified as bad crypto algorithm. (JAVA-1603)
False negatives due to missing
java.io.InputStream.read
propagators. (JAVA-1633)Analyze-log tool crashes when missing second argument. (JAVA-1670)
Agent fails to deserialize
ApplicationResponse
with modules. (JAVA-1687)Common config
api.timeout_ms
value is actually in seconds, not milliseconds. (JAVA-1694)Use
StackCapture.traceWithoutContrastCode
over complex stack frame depth calculations. (JAVA-1697)Suppress
crypto-bad-mac
vulnerability from within Hibernate. (JAVA-1707)In some cases on Java 13+ with Assess enabled,
string.replace
fails. (JAVA-1722)Remove double colon from Proxy URL configuration description. (JAVA-1773)
Netflix Zuul is throwing a header-injection false positive. (JAVA-1632)
Release date: October 1, 2020
Language versions currently supported: Java 1.6 - Java 11
New features and improvements:
Separated semantic analysis rules out into new rules.
Spring
ClientHttpResponse#getStatusText
is no longer being filled in with Spring Boot 1.4+.Lowered
DocumentScanningManager
log statement toDEBUG
.Added support for Spring RestTemplate.
Added Assess support for Hibernate HQL, JPA/JPQL and Criteria API vulnerabilities.
Included GlassFish support for servlet route coverage.
修正された不具合:
ContrastDynamicSourceDispatcherImpl
throws unnecessary error. (JAVA-1709)Path traversal false positive in Grails application due to
AssetPipelineFilter
. (JAVA-1473)Grizzly Propagator incidentally ignored by agent. (JAVA-1635)
Release date: September 16, 2020
Language versions currently supported: Java 1.6 - Java 11
New features and improvements:
Introduced Java 13 compatibility.
Added support for
Matcher#appendReplacement
andString#replace
.Added support for Java Security Manager on WebSphere and WebLogic with Java 6 through 8.
Added support for
contrast.profile
properties.
修正された不具合:
False positive path traversal in Liferay DynamicCSSFilter (JAVA-1402)
Assess rule
cookie-flags-missing
suppression logic fails ataddHeader
andsetHeader
sinks (JAVA-1521)ContrastMarkOfTheBeastDispatcherImpl
does not handle null strings (JAVA-1678)
Release date: September 2, 2020
Language versions currently supported: Java 1.6 - Java 11
New features and improvements:
Added JBoss servlet route coverage support.
Add sanitizers for URL encoding from Liferay 7.X.
Added
HttpInputMessage#getBody
andHttpMessage#getHeaders
as sourcesUpdated retrieval of headers from
RestTemplate
causing path traversal false negative.Updated Assess arbitrary server-side forwards detection.
修正された不具合:
Possible path traversal false positive on PDF file upload. (JAVA-1312, SUP-1486)
False positive on server-side forward with Liferay ComboServlet. (JAVA-1400)
False positive on arbitrary server-side forward with Liferay VirtualHostFilter. (JAVA-1410)
Untrusted deserialization investigation in Weblogic DeploymentService. (JAVA-1476)
Probed events not reported when exception causes request to end in Jersey. (JAVA-1485)
Observed routes never appear for some applications in Contrast. (JAVA-1549)
Java Protect false positive in path traversal pattern 10B. (JAVA-1622)
Regression with Protect response times in 3.7.7.16256. (JAVA-1626)
Release date: August 19, 2020
Language versions currently supported: Java 1.6 - Java 11
New features and improvements:
Introduced Java 12 compatibility.
Updated denylist and allowlist naming conventions.
Improved detection for
@PathVariable
with-Dcontrast.inspect.allclasses=false
in Spring 4 and 5.
修正された不具合:
Agent ignores WebSphere Trust Store config (JAVA-742)
Cve_2014_0114
false positive when user patchescommons-beanutils
(JAVA-1143)Path traversal FP for Struts 2 default static file handler (JAVA-1398)
False positive unvalidated forward for
ServletContext#getRequestDispatcher
(JAVA-1403)Handle nulls in J2EE profilers with null checks instead of exceptions (JAVA-1495)
AttackBlockedException
caught and not re-thrown resulting in attack not being blocked (JAVA-1504)Remove
ClassLoader
types from Contrast ignored class list. (JAVA-1602)
Release date: August 5, 2020
Language versions currently supported: Java 1.6 - Java 11
New features and improvements:
Added support for uploading files with Spring.
Updated support for accessing data with JPA in Spring.
Jetty is now supported for servlet route coverage.
Removed log redaction from our data masking feature.
Removed line count from agent.
修正された不具合:
SQLi false positive when making RaspSimulator field non-static. (JAVA-7)
Spring Boot 2.0+ are not yielding Path Traversal vulnerability. (JAVA-1467)
Protect Analysis Cache does not account for input type. (JAVA-29)
Protect Analysis cache doesn't take into account source of input. (JAVA-821)
Insecure-socket-factory reported due to SNI not explicitly set. (JAVA-988)
WebLogic detection is unreliable when domain-info file is missing. (JAVA-1399)
Re-implement of
spring-unchecked-autobinding
logic. (JAVA-1427)-Dcontrast.rootapp
name ignored whenServletContext.getServletContextName()
returns non-empty value. (JAVA-1453)Assess tracks propagation events in agent logging. (JAVA-1487)
Language versions currently supported: Java 1.6 - Java 11
Agent versions released during the past month: 3.7.5.15634, 3.7.6.16040
New features and improvements:
Added Spring support for Accessing Relational Data using JDBC.
You can now access JPA Data with REST in Spring.
修正された不具合:
この1ヶ月間で、以下の不具合が修正されました。
jaxrs/Jersey vulnerabilities not triggered due to losing track of tainted data.
Race condition with CreateApp settings meaning Server level disabled rules are used.
Protect false negative: Jackson unsafe deserialization (CVE-2017-17485).
finding-send
broken due to FrameworkManager bringing in dispatchers from java.lang.Agent fails to request permission before calling
setAccessible
.Command Injection in Protect received false positive from
argparse4j
.Agent on WebSphere changes handling of disabled TLS algorithms.
Spring
PathVariable
is not detected as a source.Dataflow is lost through some Spring Util classes.
False positive unvalidated forward in Tomcat with Spring
DeferredResult
.SQLi FP with HttpClient's
RetryExec
with MariaDBFalse positive received with XSS Keyword.
-Dcontrast.rootapp
name ignored whenServletContext.getServletContextName()
returns non-empty value.
現在サポートされている言語バージョン: Java 1.6 - Java 11
今月リリースされたエージェントのバージョン: 3.7.5.15634, 3.7.5.15480
New features and improvements:
Provided route coverage support for the Servlet API.
Implemented Sensitive Data Masking with the mask_attack_vector.
Added Assess support for DynamoDB.
修正された不具合:
Protect caches input no matter the size potentially leading to OOMs for large requests
Undertow Resource Handlers Should Not Trigger Path Traversal Attacks
Path Traversal False Positive Due to Spring's ServletContextResource
Race condition in App Inventory along with Protect Struts Cve rules
Log4j2 instrumentation fails on Log4j2 2.13.1
Agent Reports Incorrect HTTP Protocol Version on Servlet Containers
Protect SQLi SimpleOrSearcher has poor performance on large inputs
Assess CSRF Detection Fails When Request Uses form-data/multipart
SSRF detection must not take use of tainted path as a SSRF vulnerability
Java Agent does not provide a findings field for PathTraversalSemanticDTM
Agent Prevents Graceful JVM Shutdown
Fix performance metric reporting for Acceptance Tests
StringUtil methods for case sensitive string comparison are wrong for non alphabet inputs
現在サポートされている言語バージョン: Java 1.6 - Java 11
今月リリースされたエージェントのバージョン: 3.7.4.14937
新機能と改善点:
Added support for (WebSphere) Route Discovery for Servlet 2.5 Declarative Servlets.
Increased sensitive data masking coverage, specifically for SQLi, XSS, Command Injection, Path Traversal, CSRF, ReDoS, OGNL Injection.
修正された不具合:
XXE vulnerability missed in Assess but flagged as path traversal
UI displaying blocked and exploited HTTP Method Tampering events
Protect was receiving false negatives for XSS Bypass via Bug Bounty
Spring auto binding rule causing false negatives
Protect Path Traversal False Positive due to base64 null char
NPE in
ContrastHttpRouteRegistrationWatcherDispatcherImpl
ReportFindings acceptance test annotation is broken
現在サポートされている言語バージョン: Java 1.6 - Java 11
今月リリースされたエージェントのバージョン: 3.7.3.14727, 3.7.3.14657
New features and improvements:
Contrast Assess more accurately detects Path Traversal vulnerabilities. Contrast Assess and Protect more accurately detect vulnerabilities and attacks respectively in Apache Struts based applications. Contrast Protect more accurately detects SQL Injection attacks.
重要なお知らせ:
This release includes breaking changes to Contrast Assess route coverage reporting when used with on-premise Contrast servers version 3.7.2 and older.
修正された不具合:
When WebSphere users configured their WebSphere services with custom TLS certificates, the Contrast Java agent prematurely initialized WebSphere's certificate manager as a side-effect. This caused the WebSphere TLS connections to fail unexpectedly. This issue has been resolved by adding a special exception for WebSphere to Contrast's TLS initialization whereby Contrast will use an isolated `SSLSocketFactory` instead of the Java runtime's default system socket factory.
When users configure their application with a session-based vulnerability auto-verification policy, and the user does not configure their Contrast agent with an explicit session_id configuration parameter, then Contrast wrongfully auto-verifies vulnerabilities. We resolved this issue by fixing a race condition, so we can ensure that auto-verification will work as expected when the user has configured their agent to use the
contrast.agent.java.standalone_app_name
configuration.