Skip to main content

Node.js agent release notes

Release date: August 8, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

Important

Contrast will discontinue support for Node.js 16 (LTS) in October 2025. Customers should upgrade to the latest Node.js LTS version, which is currently version 22.17.0 (LTS).

New and improved:

  • Refactored the Assess reporting to no longer rely on the RESPONSE_FINISH event, which improves support for non-HTTP sources like WebSockets and message queues. (NODE-3804)

Bug fixes:

  • Fixed an issue where the agent failed to load when using an absolute path to the package root. The fix reintroduces the main field to the package.json to support more complex deployment scenarios. (NODE-3851)

Release date: July 31, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

Important

Contrast will discontinue support for Node.js 16 (LTS) in October 2025. Customers should upgrade to the latest Node.js LTS version, which is currently version 22.17.0 (LTS).

New and improved:

  • To simplify the code and improve maintainability, this update refactors the nested propagators out of the util-format propagator. This change resolves multiple instances where patched methods were being used within the propagator. (NODE-3773)

  • The request scope was refactored to use a single, shared abstraction, store.sourceInfo, instead of separate objects for different components. This change reduces code duplication and improves memory efficiency by providing a common request abstraction for all features. (NODE-3808)

Bug fixes:

  • When a TypeError was thrown when the body-parser module was used without a request body, an issue with route mapping, where a route signature could not be generated due to empty observables, was resolved. (NODE-3836)

  • When a "Maximum call stack size exceeded" caused error occurred when handling recursively mounted routers in Express 5, the instrumentation now correctly handles nested routing scenarios without crashing, even when a router is mounted at multiple paths. (NODE-3849)

Release date: July 10, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

Important

Contrast will discontinue support for Node.js 16 (LTS) in October 2025. Customers should upgrade to the latest Node.js LTS version, which is currently version 22.17.0 (LTS).

New and improved:

  • The agent will now intelligently detect and prevent duplicate instrumentation, ensuring that only the first specified agent applies its instrumentation to the application. This enhancement streamlines agent deployment and avoids unintended overhead or conflicts from multiple instrumentation instances. (NODE-3830)

Bug fixes:

  • Fixed underlying issues, ensuring that all valid Express.js routing configurations, regardless of composition order or the sole use of Router.use() now reliably generates both discovery and observation events. This update significantly improves the accuracy and completeness of monitoring data for Express.js applications. (NODE-3823)

  • Fixed an issue where our dataflow source instrumentation for body-parser did not support version 2, which is utilized by Express 5. We updated the agent to extend body-parser instrumentation to ensure that applications using Express 5 and body-parser version 2 now have complete and accurate dataflow source visibility. (NODE-3826)

  • Fixed an issue that prevented the correct reporting of application libraries when those libraries were also dependencies of the agent itself. We refined the dependency filtering logic within utils.js listInstalled(), ensuring that all legitimate application libraries are now accurately identified and reported, even if they overlap with agent dependencies. (NODE-3827)

Release date: July 1, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

Important

Contrast will discontinue support for Node.js 16 (LTS) in October 2025. Customers should upgrade to the latest Node.js LTS version, which is currently version 22.17.0 (LTS).

Bug fixes:

  • Fixed an issue where Math.random calls would incorrectly throw an error when the crypto-weak-randomness rule was active. (NODE-3832)

Release date: June 25, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

Important

Contrast will discontinue support for Node.js 16 (LTS) in October 2025. Customers should upgrade to the latest Node.js LTS version, which is currently version 22.17.0 (LTS).

New and improved:

  • Tag ranges are incorrect when String.prototype.concat argument(s) is an Array. (NODE-3748)

  • Update the agent to comply with the latest Assess-in-Production specification updates. (NODE-3808)

  • Publish Node agent package with all dependencies included. (NODE-3817)

Bug fixes:

  • Fix application-version header reporting. (NODE-3829)

Release date: June 17, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

Important

Contrast will discontinue support for Node.js 16 (LTS) in October 2025. Customers should upgrade to the latest Node.js LTS version, which is currently version 22.17.0 (LTS).

New and improved:

  • Send up memory_metrics to Contrast in the server_inventory payload. (NODE-3819)

Release date: June 16, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

Important

Contrast will discontinue support for Node.js 16 (LTS) in October 2025. Customers should upgrade to the latest Node.js LTS version, which is currently version 22.17.0 (LTS).

New and improved:

  • Support all Assess-Prod sampling settings. (NODE-3769)

  • Investigate updating @swc/core to improved minification options. (NODE-3785)

  • Collect the maximum memory limit for a Node.js app in a container or virtual server and process. (NODE-3797)

  • Log the agent reporting instance GUID and AppId GUID on startup at the INFO log level. (NODE-3798)

Release date: May 22, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

Important

Contrast will discontinue support for Node.js 16 (LTS) in October 2025. Customers should upgrade to the latest Node.js LTS version, which is currently version 22.17.0 (LTS).

New and improved:

  • Deadzone @opentelemetry packages. (NODE-3740)

  • Revise effective_config output to match new standard and other agents. (NODE-3782)

  • Update Contrast-UI reporter proxy for better compatibility with firewalls. (NODE-3790)

Bug fixes:

  • Security bypass semantic rule is not reporting stacktrace or exploit metadata correctly. (NODE-3771)

  • Fastify instrumentation errors when using @fastify/websocket. (NODE-3794)

Release date: May 12, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

Important

Contrast will discontinue support for Node.js 16 (LTS) in October 2025. Customers should upgrade to the latest Node.js LTS version, which is currently version 22.17.0 (LTS).

Bug fixes:

  • String replace bug with regex and $n special patterns. (NODE-3788)

Release date: May 7, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

Important

Contrast will discontinue support for Node.js 16 (LTS) in October 2025. Customers should upgrade to the latest Node.js LTS version, which is currently version 22.17.0 (LTS).

New and improved:

  • Support Assess sampling event_detail config option. (NODE-3752)

  • Update workspaces to use empty immutable objects from @contrast/common. (NODE-3754)

  • Update rewriter to lessen the size of generated code artifacts. (NODE-3767)

  • Refactor nested propagators out of url propagatorsBug. (NODE-3770)

Bug fixes:

  • Masked attack vectors should be masked in HTTP request details. (NODE-3774)

  • Assess Fastify preValidation handler does not call done callback if source context missingTask. (NODE-3787)

Release date: April 17, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

New and improved:

  • Added support for the Fastify 5 framework. (NODE-3622)

Release date: April 14, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

New and improved:

  • Refactored string.prototype.replace to lock instrumentation when it calls through to regexp.exec. (NODE-3766)

  • Assess in production environments now changes the assess.stacktraces configuration to SINK. (NODE-3768)

Release date: April 4, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

New and improved:

  • Implemented the option to instrument all modes for ADR. (NODE-3736)

  • Completed implementation of HTTP spans. (NODE-3744)

  • Refactored the String.prototype.split propagator so that it doesn't force propagation in order to calculate tag ranges. (NODE-3749)

Release date: April 1, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

New and improved:

  • Updated agent and agentify to ensure the agent is using Inversion of Control (IoC). (NODE-3757)

Bug fixes:

  • The agent now handles undefined args in util.format. (NODE-3759)

Release date: March 13, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

New and improved:

  • Configure agent operator to provide a writable cache directory. (NODE-3728)

  • Added certificate configuration options. (NODE-3738)

  • Refactor event factory methods with performance improvements. (NODE-3753)

Bug fixes:

  • Fix unnecessary propagation that can occur in String.prototype.concat. (NODE-3746)

  • Do not check for propagation context in send and fastify-send propagators. (NODE-3747)

Release date: March 4, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

New and improved:

  • Programmatic deadzones for winston logging module. (NODE-3437)

  • Programmatic deadzones for pino logging module. (NODE-3438)

  • Make Protect response-blocker a class. (NODE-3604)

  • Protect path-traversal should not report for static file-serving libs. (NODE-3717)

  • Remediate perf bug - do not flag GUIDs as suspicious (bumped agent-lib to version 9.1.0). (NODE-3739)

Bug fixes:

  • Assess source instrumentation for hapi can break onRequest hooks. (NODE-3745)

Release date: February 21, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

New and improved:

  • Research latency performance issue experienced by a customer, fix or create tickets to fix causes. Our test case improved by 50%. (NODE-3731)

Bug fixes:

  • get-source-context not checking the propagation count correctly. (NODE-3734)

Release date: February 19, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

Bug fixes:

  • Some telemetry still enabled when opted out. (NODE-3732)

  • New @swc/core check does not properly handle nested dependencies. (NODE-3733)

Release date: February 6, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

Bug fixes:

  • Check for empty strings when determining configuration defaults. (NODE-3725)

Release date: January 31, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

New and improved:

  • Provide a clear error message when the install environment is different from the execution environment. (NODE-3381)

  • Allow rewrite hooks when either rewrite.enable or rewrite.cache.enable are true. (NODE-3720)

  • New agent-lib@9.0.0 fixes a Protect CMD injection false positive. (NODE-3721)

Release date: January 24, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

Note

This release now provides GraphQL support for Apollo, Yoga, and graph-ql HTTP libraries.

New and improved:

  • Instrument graphql-http as a source. (NODE-3394)

  • GraphQL Detailed Route Reporting and Coverage. (NODE-3409)

  • Update licenses to 2025. (NODE-3714)

Release date: January 17, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

New and improved:

  • CLI rewriter should skip rewrite-deadzoned package files. (NODE-3434)

  • Improve logging to stderr when installation fails with TS error. (NODE-3677)

  • Augment Perf feature to watch event processing. (NODE-3684)

Bug fixes:

  • dep-hooks return value not used when target lib is imported. (NODE-3561)

  • Clear traces endpoint's hashSet periodically so vulns can properly update last seen. (NODE-3709)

Release date: January 9, 2025

Language versions currently supported: 16, 18, 20, and 22 LTS

New and improved:

  • NEW: Build ID / Artifact Hash generation and reporting to Contrast. (NODE-3314)

  • NEW: Support for Express 5 Framework has been added. (NODE-3623)

  • NEW: Preview Release of the Contrast Node agent's GraphQL support.

  • Investigate automating and reporting sessions and build ID generation. (NODE-3315)

  • Research and implement the new node --run command incompatible with cmd_ignore_list. (NODE-3540)

  • Refactor route coverage to support Express 5. (NODE-3650)

  • Add remainder of architecture component integration tests. (NODE-3666)

  • Instrument GraphQL for route coverage. (NODE-3671)

  • Replace pino transport with multi-stream. (NODE-3678)

Bug fixes:

  • Fixed memory issue in reporter. (NODE-3705)

Archive

Node.js release notes 2024

Release date: December 12, 2024

Language versions currently supported: 16, 18, 20, and 22 LTS

New and improved:

  • Handle TeamServer 4xx error codes according to spec. (NODE-3638)

  • Protect should use async-hook-domain exclusively. (NODE-3674)

  • Research deadzoning mssql query serialization (NODE-3579)

Bug fixes:

  • Fix release-operator integration. (NODE-3681)

Release date: November 22, 2024

Language versions currently supported: 16, 18, 20, and 22 LTS

New and improved:

  • ADR Licensing - Reporting. (NODE-3605)

  • Implement remaining architecture components for FlowMap. (NODE-2793)

  • Publish hostname and container detection - server inventory. (NODE-3639)

  • Patching: audit package version ranges to not break on new versions. (NODE-3642)

  • Update Protect sources to instrument router. (NODE-3648)

  • Update Protect error handler to instrument router. (NODE-3649)

  • Remove argument from protect.getSourceContext() calls. (NODE-3660)

  • Raise the log level to WARN for API tokens overridden by legacy keys. (NODE-3661)

  • Fix the log-file overwriting problem. (NODE-3667)

Bug fixes:

  • Report headers for Protect events as object not array. (NODE-3662)

  • Syslog metadata string is malformed. (NODE-3668)

Release date: November 6, 2024

Language versions currently supported: 16, 18, 20, and 22 LTS

New and improved:

  • Preview functionality for Express 5 for Assess mode. (NODE-3644,NODE-3645,NODE-3646)

Bug fixes:

  • Do not report unsampled requests as missing source context for Assess in production. (NODE-3659)

Release date: October 30, 2024

Language versions currently supported: 16, 18, 20, and 22 LTS

New and improved:

  • Research Assess sampling as function of routes observed. (NODE-3597)

  • Improved support for mongodb 6 driver aggregate functions. (NODE-3614)

Release date: October 22, 2024

Language versions currently supported: 16, 18, 20, and 22 LTS

New and improved:

  • Programmatic deadzones for the bunyan logging module. (NODE-3427)

  • Research/Implement - Replace use of npm ls in library reporting. (NODE-3599)

  • Replace npm for library reporting - Distroless support. (NODE-3619)

  • Programmatic deadzones for log4js logging module. (NODE-3636)

  • Add max version for Express instrumentation. (NODE-3641)

Release date: October 17, 2024

Language versions currently supported: 16, 18, 20, and 22 LTS

Note

Node.js 5.18.0 is deprecated. Node.js 5.18.1 contains all the features released in Node.js 5.18.0.

New and improved:

  • Add perf to all entrypoints. (NODE-3602)

Release date: October 16, 2024

Language versions currently supported: 16, 18, 20, and 22 LTS

Note

Node.js 5.18.0 is deprecated. Node.js 5.18.1 contains all the features released in Node.js 5.18.0.

New and improved:

  • The agent now uses the new v1.0 Agent Startup endpoint. (NODE-3390)

  • Added trace-level logging to route coverage. (NODE-3566)

  • Updated safe hash libraries to include cookie-signature. (NODE-3558)

Bug fixes:

  • Fixed an issue where the rewriter throws an error when a .swcrc file specifies jsc.target. (NODE-3640)

Release date: September 27, 2024

Language versions currently supported: 16, 18, 20, and 22 LTS

New and improved:

  • Added support for Node.js LTS 22.

  • Added Mongoose query parameter sanitization and validation. (NODE-3565)

  • Increased event count on core.messages. (NODE-3627)

Release date: September 26, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • Updated the Audit agent readme file on npm to make sure it's accurate. (NODE-3548)

Bug fixes:

  • Fixed audit and extraneous dependencies. (NODE-3601)

Release date: September 16, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • The Node.js agent now supports the use of CONTRAST__API__TOKEN instead of  CONTRAST__API__URLCONTRAST__API__API_KEYCONTRAST__API__SERVICE_KEY, and CONTRAST__API__USER_NAME for communication with Contrast. (NODE-3522)

    Note

    Contrast TeamServer is not yet adding the token to the downloadable agent configuration file.

  • Added a new Assess stacktraces configuration option for SINK. (NODE-3591)

Release date: August 27, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • This release includes a preview of Node 22 LTS support.

    This feature is not yet officially supported

  • Added support for crypto.createCipher. (NODE-3533)

  • Added fs.glob and fs.globSync to FS_METHODS. (NODE-3541)

Bug fixes:

  • Refactored Fastify route coverage to avoid dep-hooks ESM bug. (NODE-3563)

  • Fixed rewrite-is-deadzoned.js. (NODE-3572)

  • Updated the CSP rule. (NODE-3582)

  • Fixed an issue with semver v7.6 that broke range deadzoning. (NODE-3585)

Release date: August 20, 2024

Language versions currently supported: 12, 14, 16, 18, and 20 LTS

Bug fixes:

  • Remediated CVE-2024-39338 by bumping the Axios package.

Release date: August 15, 2024

Language versions currently supported: 16, 18, and 20 LTS

Bug fixes:

  • Fixed a path-traversal false positive that @fastify/static@7 reported. (NODE-3549)

  • Remediated CVE-2024-39338 by bumping the Axios package. (NODE-3567)

Release date: August 1, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • Implemented Phase 1 of support for Node.js v5 deadzones. (NODE-3360)

    A deadzone is a mechanism that lets the agent skip instrumentation of a specific mode module or function.

  • Added logging for the inappropriate use of the node -r preload flag. (NODE-3481)

Bug fixes:

  • Fixed a duplication issue in preflight messages. (NODE-3476)

  • Fixed an issue where the agent did not report routes that were not exercised. (NODE-3548)

  • Fixed an issue with telemetry reporting. (NODE-3554)

Release date: July 30, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • Updated the agent to use programmatic deadzones for bcrypt modules. (NODE-3424)

Release date: July 18, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • This release introduces a new process for releasing the Contrast agent to npm. The new process releases the artifact to npm with the <next> tag. Using the <next> tag prevents you from automatically installing the next agent version unless you explicitly use this command: npm install @contrast/agent@next

    NodeNpmList.png

    Shortly after Contrast publishes the agent release notes for the next agent version, the tag for the version changes to <latest> . This new process lets you preview and test new features as well let you review the release notes for what will soon be tagged as <latest>.

    • Improved the release process to push the agent with the <next> tag to npm (NODE-3507)

  • The agent now extracts and reports cloud resource identifiers to Contrast for AWS, Azure, and GCP (NODE-2932).

    This functionality collects resource identifiers when running on cloud providers and reports the IDs to the log and the Contrast web interface.

    • The agent now sends cloud resource identifiers to Contrast. (NODE-3493)

    • The agent now retrieves GCP resource identifiers. (NODE-3503)

Bug fixes:

  • Fixed an Express.response.push error shown in the log. (NODE-3532)

Release date: July 15, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • Improved the npm README documentation for @contrast/distringuish. (NODE-3517)

  • The reported text for routes was changed to be more consistent and idiomatic. Affected frameworks include Koa, Hapi, Fastify and Restify.

    This change may cause orphaned routes that you can delete manually or by using the route expiration feature. If you are using session metadata or session ID, this change has no impact. Customers using the Express framework are not affected by this release.

    • Refactored route coverage for Fastify. (NODE-3483)

    • Added route coverage support for Koa nested routers. (NODE-3484)

    • Refactored route coverage integration tests. (NODE-3443)

    • Audited and refactored route signatures. (NODE - 3444)

  • When an application is running on AWS or Azure Cloud, resource identifiers are now reported to the log.

    • The agent now retrieves the AWS Resource Identifier when you configure it to do so. (NODE-3491, NODE-3492)

    • Added the X-Contrast-Reporting-Instance to Contrast communication. (NODE-3502)

    • Added a feature flag to disable resource identification. (NODE-3513)

    • The agent now auto-detects the cloud provider for resource identifier detection. (NODE-3518)

Bug fixes:

  • Library usage requests sent to Contrast are now batched to reduce HTTP pressure. The default batch size is 100. (NODE-3509)

Release date: July 8, 2024

Language versions currently supported: 16, 18, and 20 LTS

Bug fixes:

  • Fixed an issue where an error was thrown when the import binding name matched the rewrite injection name. (NODE-3486)

Release date: June 27, 2024

Language versions currently supported: 16, 18, and 20 LTS

Bug fixes:

  • Fixed an issue where a deadzone bson require hook threw an error with bson 1.1.6. (NODE-3479)

Release date: June 21, 2024

Language versions currently supported: 16, 18, and 20 LTS

Important

This release now provides official support for HTTP/2.

New and improved:

  • Implemented HTTP/2 instrumentation for Reflected-XSS in Assess mode.

  • Implemented HTTP/2 instrumentation for the spdy library for Response Scanning rules.

  • Fixed node-require-hook on Windows.

Bug fixes:

  • HTTP2 response-scanning instrumentation causes uncaught exceptions. (NODE-3468)

  • Blocking requests caused metrics to report that the request exceeded the duration. (NODE-3475)

  • MJS files loaded from the rewrite cache can break relative path file reading. (NODE-3485)

  • Reduced event listeners from pg arch-component instrumentation. (NODE-3489)

  • crypto-analysis did not ignore case when checking algorithms. (NODE-3495)

  • npm detection fails with a space in path. (NODE-3497)

Release date: June 21, 2024

Language versions currently supported: 12, 14, 16, 18, and 20 LTS

Bug fixes:

  • npm detection fails with a space in path (NODE-3497)

Release date: June 17, 2024

Language versions currently supported: 12, 14, 16, 18, and 20 LTS

Bug fixes:

  • Fixed a new CVE associated with @grpc/grpc-js, which is a library used by the agent to communicate with the Contrast Service. (NODE-3487)

Release date: June 12, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • Implemented HTTP/2 instrumentation for Reflected-XSS in Protect mode.

  • Implemented support for Restify 8, 9, 10, and 11 (Assess and Protect).

  • Installed modules should throw errors when needed and not accumulate in _errors[].

  • Implemented validation logic in the module where the validation is required to correctly function.

  • Updated security logger escaping to match updated CEF guide specification.

  • Implemented Framework reporting during route discovery (also known as Compatibility check for route coverage).

Bug fixes:

  • Fixed URLSearchParams.toString(). (NODE-3332)

  • Added source map chaining. (NODE-3442)

Release date: May 31, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • Deprecated Node 14 for v5.

  • The existing @contrast/common functions have been replaced with more performant and self-documenting functions.

Release date: May 22, 2024

Language versions currently supported: 16, 18, and 20 LTS

Bug fixes:

  • Teamserver associates all vulnerabilities with a single non-existent endpoint. (NODE-3457)

Release date: May 22, 2024

Language versions currently supported: 16, 18, and 20 LTS

Bug fixes:

  • API keys are not redacted when the reporter throws an error. (NODE-3458)

Release date: May 21, 2024

Language versions currently supported: 16, 18, and 20 LTS

Bug fixes:

  • The use of inspect during event creation was causing problems. (NODE-3451)

  • Check if isSafeContentType is in all reflected-xss sinks. (NODE-3452)

Release date: May 21, 2024

Language versions currently supported: 16, 18, and 20 LTS

Bug fixes:

  • Fixed express route observation bug. (NODE-3453)

Release date: May 20, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • Express route coverage will handle middleware defined in an array.

Release date: May 15, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • Removed effective configuration enable flag so that agent always reports it to Teamserver.

  • Added warning when the agent detects users attempting to set config file location with  -c command line flag. Agent configuration via CLI flags has been deprecated in v5 agents.

  • Implemented Restify route discovery and observation.

  • Adding initial support for programmatic deadzones to allow the agent to turn off instrumentation within restricted functions.

Release date: May 7, 2024

Language versions currently supported: 16, 18, and 20 LTS

Bug fixes:

  • Incoming message header handling is not correct. (NODE-3396)

  • Express route coverage does not discover routes defined by app.use() and router.use(). (NODE-3402)

  • TypeError: undefined is not a function at StacktraceFactory.makeFrame. (NODE-3420)

Release date: May 1, 2024

Language versions currently supported: 12, 14, 16, 18, and 20 LTS

New and improved:

  • Add timer.unref() to code-events setCodeEventListener() for v4.

Release date: April 29, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • Support for Input and URL exclusions when running version 5.x agent.

  • Provided Protect specific CLI Rewriter option.

Bug fixes:

  • Route coverage error when express route registered with array of paths. (NODE-3380)

  • v5 agent does not properly handle archived apps. (NODE-3384)

  • Fix Fastify route coverage prefix bug. (NODE-3403)

  • Unwriting anonymous classes fails. (NODE-3406)

Release date: April 17, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • The rewriter can now be executed as a CLI command to allow rewriting of source code at container image creation. This lowers startup memory consumption and can speed up app start-up.

Release date: April 16, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • Implement rewriter cache for ESM loader hooks.

  • Add additional rewrite-deadzones.

Release date: April 16, 2024

Language versions currently supported: 14, 16, 18, and 20 LTS

Important

Contrast Protect is deprecated as of release 5.20.6.

New and improved:

  • Updated v4 and v5 pipelines for K8s agent-operator.

  • Deprecated @contrast/protect-agent.

  • Added v4 section to README.

Bug fixes:

  • UI reporter v1 routes do not respect proxy configuration. (NODE-3338)

  • Update test bench Dockerfiles. (NODE-3350)

Release date: March 29, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • Implemented improvements to string.prototype.split() tracking.

Release date: March 28, 2024

Language versions currently supported: 12, 14, 16, 18, and 20 LTS

New and improved:

  • Resolves CVE-2024-24786 associated with the Contrast Service (updates to version 2.28.34).

Release date: March 26, 2024

Language versions currently supported: 16, 18, and 20 LTS

Bug fixes:

  • Fixes a bug with the rewriter cache and deprecates version 5.4.0. (NODE-3367)

Release date: March 25, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • Initial support for application code rewrites caching for version 5.x agent.

Release date: March 20, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • Added hapi 21 framework support for Assess and Protect.

  • Stopped reporting of the library manifest on application updates.

  • Componentized ESM hooks and have them follow normal compose/install patterns.

  • Updated agent README for modern Node versions.

Bug fixes:

  • Fixed "Cannot find module 'file:/...'" in Library Analysis. (NODE-3358)

Release date: March 6, 2024

Language versions currently supported: 16, 18, and 20 LTS

Bug fixes:

  • JSON.parse will throw exception if captured key/value indices are inaccurate. (NODE-3344)

Release date: March 5, 2024

Language versions currently supported: 16, 18, and 20 LTS

Bug fixes:

  • URL parse propagator doesn't support parseQueryString flag. (NODE-3340)

  • string.replace not handling some special character replacements properly. (NODE-3341)

  • Dot entrypoint syntax no longer works. (NODE-3343)

Release date: February 16, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • Replaced parent-package-json in deps.

Bug fixes:

  • Some configuration fields not redacted in configuration logging. (NODE-3339)

Release date: February 13, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • Updated logger's cleanEnv to account for --loader in NODE_OPTIONS.

Bug fixes:

  • UI reporter v1 routes are not respecting proxy configuration. (NODE-3338)

Release date: February 8, 2024

Language versions currently supported: 16, 18, and 20 LTS

Bug fixes:

  • Reflected-XSS not reporting when res.send is called. (NODE-3334)

Release date: February 6, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • Added runner-tap usability fixes.

Release date: February 2, 2024

Language versions currently supported: 16, 18, and 20 LTS

Bug fixes:

  • Setting the server or application name in a non-English language causes errors. (NODE-3333)

Release date: February 2, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • Minimized new agent's ESM dual initialization costs.

  • Updated Axios client.

Bug fixes:

  • Fix to Juice Shop 16 not working with the new agent. (NODE-3323)

Release date: January 29, 2024

Language versions currently supported: 16, 18, and 20 LTS

Bug fixes:

  • Fixed a bug with the new agent’s ESM loader functionality. (NODE-3320)

Release date: January 23, 2024

Language versions currently supported: 16, 18, and 20 LTS

New and improved:

  • Removal of the Contrast Service (SpeedRacer).

  • Removal of command line options for configuring the agent. Only YAML and environment variables are supported to align with Python, Ruby, and Go agents.

  • Support for running Assess and Protect concurrently.

  • Ability to toggle the mode of Protect rules without a restart.

  • Toggling mode (Assess, Protect, Both) still requires an application/agent restart to take effect.

  • Library reporting with ECU/ELU when running Protect (library reporting in production).

  • Effective configuration reporting to ContrastUI.

  • devDependencies not published to npm - reduced FP CVE findings.

  • Structured logging using pino.

  • Ability to change the agent logging level from the ContrastUI without an application restart.

  • Log request latency (ns) at DEBUG level for every request.

  • Route observability/coverage with normalized URI for deduplication.

  • Faster rewrite at startup using SWC.

  • Supports SuperTest API Testing framework npm: supertest.

  • Supports Frisby API testing framework npm: frisby.

  • Support for String.prototype.matchAll() propagation.

  • Observed routes are reported to ContrastUI on application startup without requiring exercising a route.

  • ESM applications supported.  Support for loading/running the agent using:

    • node --loader @contrast/agent app.mjs for Node.js 16LTS

    • node --import @contrast/agent app.mjs for Node.js 18.9.0, 20.9.0 and later (LTS)

    • node --require @contrast/agent app.js for all versions not using ESM

  • The new --import directive is supported for all applications, both ESM and CJS, running on Node.js 18.9.0, 20.9.0 and later (LTS)

    • node --import @contrast/agent app.js

  • See npm for more.

Release date: January 30, 2024

Language versions currently supported: 12, 14, 16, 18, and 20 LTS

New and improved:

  • Updated Axios.

  • Tweaks for the build.

Release date: January 5, 2024

Language versions currently supported: 12, 14, 16, 18, and 20 LTS

New and improved:

  • Improved logging when there are npm failures.

  • Updated copywrite text in files to reflect the new year.

Bug fixes:

  • Express route-coverage utils throws exceptions when route has a missing stack. (NODE-3301)

Node.js release notes 2023

Release date: December 20, 2023

Language versions currently supported: 12, 14, 16, 18, and 20 LTS

Bug fixes:

  • Fix TS reporting of xss-protection-header-disabled rule in v4. (NODE-3174)

Release date: November 29, 2023

Language versions currently supported: 12, 14, 16, 18, and 20 LTS

Bug fixes:

  • TypeError: Cannot read property length of undefined in String.prototype.split. (NODE-3272)

Release date: November 28, 2023

Language versions currently supported: 12, 14, 16, 18, and 20 LTS

New and improved:

  • All fs methods used by i18n have updated stackTrustedLibs policy.

Release date: November 22, 2023

Language versions currently supported: 12, 14, 16, 18, and 20 LTS

New and improved:

  • The i18n library should not report path-traversal Assess vulnerabilities.

  • The i18n library does not report path-traversal when openSync gets called.

Release date: November 20, 2023

Language versions currently supported: 12, 14, 16, 18, and 20 LTS

New and improved:

  • QueryBuilder subclasses have relevant methods patched as sql-encoded propagators.

  • The i18n library does not report path-traversal Assess vulnerabilities.

Release date: November 16, 2023

Language versions currently supported: 12, 14, 16, 18, and 20 LTS

New and improved:

  • CVE-2023-45857 Axios XSRF-TOKEN value is disclosed to an unauthorised actor Upgrade to ~> 1.6.0.

Release date: October 27, 2023

Language versions currently supported: 12, 14, 16, 18, and 20 LTS

New and improved:

  • Bump Speedracer to 2.28.33.

Release date: October 18, 2023

Language versions currently supported: 12, 14, 16, 18, and 20 LTS

New and improved:

  • CVE-2023-45133 Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code.

Release date: September 13, 2023

Language versions currently supported: 12, 14, 16, 18, and 20 LTS

New and improved:

  • Added support for Node.js 20.5.0 and later.

Release date: September 8, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

Bug fixes:

  • Fixed issue when running Swagger with Fastify by providing code hardening. (NODE-3156)

Release date: August 10, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

Bug fixes:

  • Fixed TypeError ERR_INVALID_URL that was causing requests to fail. (NODE-3131)

Release date: August 8, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

Bug fixes:

  • Fixed RedisClient methods in order to preserve async context. (NODE-3106)

Release date: August 7, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • This release bundles a new Contrast Service artifact v2.28.32 which was compiled with the latest Go StdLib

Release date: July 13, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • Bump Speedracer to 2.28.29 and released new v4 agent

Release date: July 12, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

CVE remediation:

  • CVE-2022-25883 Replace find-cache-dir library in @contrast/agent v4 (NODE-3078)

Release date: July 11, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • CVE-2022-25883 - semver from cls-hooked dependency

  • cls-hooked dependency does not get reported by npm audit for a vulnerable version of semver

Release date: July 7, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • CVE-2022-25883 Bump semver from 7.3.8 to 7.5.3 (require-hook)

Bug fixes:

  • V4 Node agent should read YAML from /etc/contrast/node/ directory (NODE-3058)

Release date: June 26, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • CVE-2022-25883 Bump semver from 7.3.4 to 7.5.2

Release date: June 9, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • Updated the Contrast Service bundled with the agent to use the latest Go Std library v 1.20.5.

Release date: June 6, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • Tweaked some mock dependencies so they would not be flagged by npm audit.

Release date: May 30, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

Bug fixes:

  • Updated CEF logger to use levels defined in common config spec (v4) (NODE-2972)

  • Fixed issue with the agent not recognizing the CONTRAST_CONFIG_PATH environment variable.

Release date: May 17, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

Bug fixes:

  • Fixed issue with Node.js Assess TypeError: result.startsWith is not a function in Windows. (SUP-4799)

Release date: May 3, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • Bundled the latest SpeedRacer 2.28.27 with the v4 agent.

Release date: April 25, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • CVE-2023-2251 node-agent: Bump YAML.

Release date: April 19, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • CVE-2023-24538 Bump SpeedRacer to v 2.28.26 for v4.

Bug fixes:

  • Fixed the RegExp for detecting XXE vulnerabilities in Protect mode. (NODE-2887)

Release date: April 14, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • CVE-2023-0842 (DevDependency) - xml2js is vulnerable to prototype pollution.

  • CVE-2019-10790 (DevDependency) - TaffyDB in jsdoc.

Bug fixes:

  • Fix bugs in csp-header-insecure rule for both v4 and v5. (NODE-2971)

Release date: April 14, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

Bug fixes:

  • Fixed issue with Fastify XSS payload check. (NODE-2974)

Release date: April 5, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

Bug fixes:

  • Implemented improved logging. The agent does not rewrite all files at start-up. (NODE-2944)

Release date: April 3, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • Bump SpeedRacer to 2.28.25.

Release date: March 16, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • New config option for conditional running the agent when called through NODE_OPTIONS.

Release date: March 14, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • Bump SpeedRacer for v4

  • Improved log message for node version compatibility

  • CVE-2023-22578 (DevDependency) - Sequelize - Default support for “raw attributes” when using parentheses

  • Enhancements to logging surrounding errors when starting the agent

Bug fixes:

  • Fixed Hapi implementation for reflected-xss detection. (NODE-2757)

  • Fixed Fastify implementation for reflected-xss detection. (NODE-2756)

  • Added hardening to getAllParents method. (NODE-2931)

Release date: February 27, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • Improved support for Experss.static(). (SUP-4451)

  • Improved support for XXS detection when using the Fastify framework.

  • Improved logging surrounding errors when starting the agent.

Release date: January 31, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • Instrumented the serve-static module to act as a custom sanitizer.

Release date: January 20, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

Bug fixes:

  • Config-diagnostics fails to create a configuration file if the logger path refers to a file descriptor.

Release date: January 17, 2023

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • Included the docker container ID in the system-info.json when running system-diagnostics.

  • CVE-2022-46175 node-agent Prototype Pollution in JSON5 via Parse Method.

Bug fixes:

  • Prevent crashing when the req is undefined. (NODE-2867)

Release date: January 2, 2024

Language versions currently supported: Check the features table.

Important

This option is in beta. Beta status means the option might change or act unexpectedly. By using this option, you agree to the Contrast Beta Terms and Conditions.

New and improved:

  • Remediated axios CVE-2023-45857.

  • All components use a single event emitter.

  • Implemented koa-multer as an Assess dataflow source.

  • Added more response-scanning rules.

  • The new standardNormalizedUri field is populated correctly when sending /traces data to TS.

  • Implemented Assess cryptographic rules.

  • Implemented propagation for ejs.Template.prototype.generateSource in v5.

  • Telemetry is reported by the v5 agent and config settings to disable telemetry are respected.

Bug fixes:

  • TypeError: Cannot read properties of undefined (reading 'path'). (NODE-3292)

  • Fixed Protect nosql-injection reporting. (NODE-3216)

Release date: November 28, 2023

Language versions currently supported: Check the features table.

Important

This option is in beta. Beta status means the option might change or act unexpectedly. By using this option, you agree to the Contrast Beta Terms and Conditions.

New and improved:

  • Implemented propagation for util.format.

  • Added support for the untrusted-deserialization rule.

  • QueryBuilder subclasses have relevant methods patched as sql-encoded propagators.

Release date: November 16, 2023

Language versions currently supported: Check the features table.

Important

This option is in beta. Beta status means the option might change or act unexpectedly. By using this option, you agree to the Contrast Beta Terms and Conditions.

New and improved:

  • Implemented propagation for:

    • path.toNamespacedPath

    • path.extname

    • path.parse

    • path.format

    • querystring.stringify

  • Implemented propagation for several escape methods.

  • Output request-response metrics to logs at DEBUG level.

Bug fixes:

  • The app/agent will crash an app using a distroless container. Cannot write logs. (NODE-3225)

  • UI reporter does not use effective configuration values in the application create body. (NODE-3243)

Release date: October 31, 2023

Language versions currently supported: Check the features table.

Important

This option is in beta. Beta status means the option might change or act unexpectedly. By using this option, you agree to the Contrast Beta Terms and Conditions.

New and improved:

  • Fixed TS reporting of xxssprotecttion-header-disabled rule in v5.

Bug fixes:

  • JSON.parse propagator causes tracker error when called with null or empty string. (NODE 3230)

Release date: October 26, 2023

Language versions currently supported: Check the features table.

Important

This option is in beta. Beta status means the option might change or act unexpectedly. By using this option, you agree to the Contrast Beta Terms and Conditions.

New and improved:

  • Implemented propagation for path.relative.

  • Implemented propagation for path.dirname.

  • Added Assess xxe support.

Bug fixes:

  • Fix to issue where Koa apps were reporting route discovery twice. (NODE-3199)

  • Fix to issue where the application did not onboard if Assess or Protect was not enabled locally. (NODE-3221)

  • Fix to issue where Docker version of juice-shop fails to run - npm not found. (NODE-3223)

Release date: October 19, 2023

Language versions currently supported: Check the features table.

Important

This option is in beta. Beta status means the option might change or act unexpectedly. By using this option, you agree to the Contrast Beta Terms and Conditions.

New and improved:

  • Improved logging for Contrast communication troubleshooting.

  • Implemented a more friendly mechanism for capturing heap dump snapshots.

  • Implemented fixes for where the agent was incorrectly reporting juice-shop findings.

Release date: October 8, 2023

Language versions currently supported: Check the features table.

Important

This option is in beta. Beta status means the option might change or act unexpectedly. By using this option, you agree to the Contrast Beta Terms and Conditions.

New and improved:

  • v1-endpoint will now respect the configuration option when building serverType path parameter.

  • Implemented instrumentation for Joi boolean and number coercing methods.

  • Implemented instrumentation for Joi .allow(), .valid(), and .equal() value methods.

  • Implemented instrumentation for Joi object, expression, and any types.

  • The context for the eval sink now reports as eval(...), and does not contain Contrast methods text.

  • Every call to track is preceded by a check for successful event creation.

Bug fixes:

  • Fixed effective configuration only updating once. (NODE-3204)

  • Fixed an issue associated with a memory leak when running Assess. (NODE-3198)

Release date: October 8, 2023

Language versions currently supported: Check the features table.

Important

This option is in beta. Beta status means the option might change or act unexpectedly. By using this option, you agree to the Contrast Beta Terms and Conditions.

New and improved:

  • Updated all components to manage local policies through effective configuration.

  • Refactored the usage of all string manipulation and Array.prototype.join methods.

Bug fixes:

  • Agent does not report path traversals when files are served using serve-static in safe way. (NODE-3157)

Important

This option is in beta. Beta status means the option might change or act unexpectedly. By using this option, you agree to the Contrast Beta Terms and Conditions.

Release date: September 15, 2023

Language versions currently supported: Check the features table.

New and improved:

  • Added support for Node.js 20.5.0 and later.

  • Implemented session-configuration rules for express-session.

  • Track keys and parse different object types passed to URLSearchParams.

  • Improved require-hook logging.

Important

This option is in beta. Beta status means the option might change or act unexpectedly. By using this option, you agree to the Contrast Beta Terms and Conditions.

Release date: September 1, 2023

Language versions and technologies currently supported: Check the features table.

New and improved:

  • Removal of the Contrast Service (SpeedRacer).

  • Removal of command line options for configuring the agent. Only YAML and environment variables are supported to align with Python, Ruby, and Go agents.

  • Running Assess and Protect concurrently is supported.

  • Library reporting with ECU/ELU when running Protect (library reporting in Production).

  • Effective configuration reporting to Contrast.

  • devDependencies not published to npm - reduced FP CVE findings.

  • Structured logging using pino.

  • Route observability/coverage with normalized URI for deduplication.

  • Faster rewrite at startup using SWC.

  • Supports vulnerability detection when API Testing with SuperTest npm: supertest.

  • Support for String.prototype.matchAll() propagation (not supported in v4).

Release date: January 2, 2024

Language versions currently supported: 14, 16, 18, and 20 LTS

New and improved:

  • Remediated axios CVE-2023-45857.

  • All components use a single event emitter.

  • The security logger handles path: /dev/null to disable logging in all supported operating systems.

  • Telemetry is reported by the v5 agent and config settings to disable telemetry are respected.

Bug fixes:

  • TypeError: Cannot read properties of undefined (reading 'path'). (NODE-3292)

  • Fixed Protect nosql-injection reporting. (NODE-3216)

  • Fixed vm module instrumentation. (NODE-3004)

Release date: November 16, 2023

Language versions currently supported: 14, 16, 18, and 20 LTS

New and improved:

  • Output request-response metrics to logs at DEBUG level.

Bug fixes:

  • The app/agent will crash an app using a distroless container. Cannot write logs. (NODE-3225)

  • UI reporter does not use effective configuration values in application create body. (NODE-3243)

Release date: October 8, 2023

Language versions currently supported: 14, 16, 18, and 20 LTS

New and improved:

  • Added support for changing Protect policies and logging level from Contrast without requiring a restart.

Release date: September 15, 2023

Language versions currently supported: 14, 16, 18, and 20 LTS

New and improved:

  • Audit v5 logging of PII.

Release date: August 25, 2023

Language versions currently supported: 14,16, and 18 LTS

New and improved:

  • Synchronization of Assess and Protect implementations when they differ.

  • Added HTTP logging to Contrast communications.

Bug fixes:

  • Updated the rewriter to inject ContrastMethods.Function and support existing Protect input-tracing patches. (NODE-3100)

  • Agent v5 issues with the effective-config end-point. (NODE-3151)

Release date: August 7, 2023

Language versions currently supported: 14,16, and 18 LTS

New and improved:

  • Implemented propagation for JSON.parse.

  • Implemented Session Configuration rules for Assess.

  • Added support for the new major version (v 1.x.x.) of the libxmljs library. The library is instrumented to detect XXE vulnerabilities.

Bug fixes:

  • Fixed libxmljs that was not properly instrumented. (NODE-3121)

Release date: August 4, 2023

Language versions currently supported: 14,16, and 18 LTS

New and improved:

  • Fixed rewriter to avoid adding spurious trailing characters.

  • Improved swc rewriter to be able to rewrite files with shebang comments.

Release date: July 14, 2023

Language versions currently supported: 14,16, and 18 LTS

New and improved:

  • Added support for detecting sleep(x) type of SSJS attacks in MongoDB context.

  • Added session_id to the effective configuration options.

Release date: May 2, 2023

Language versions currently supported:14,16, and 18 LTS

New and improved:

  • Added support for the MS SQL database driver for v5 Protect-only agent.

Release date: April 3, 2023

Language versions currently supported:14,16, and 18 LTS

New and improved:

  • Added support for detecting nosql-injection attacks for MarsDB in Protect mode.

Release date: February 20, 2023

Language versions currently supported:14,16, and 18 LTS

Bug fixes:

  • Fixed a bug when receiving the nosql-injection rule settings from Contrast and the agent not respecting that setting.

Release date: February 9, 2023

Language versions currently supported:14,16, and 18 LTS

New and improved:

  • security_logger receives the correct default values.

Release date: February 9, 2023

Language versions currently supported:14,16, and 18 LTS

New and improved:

  • NoSQL Injection Mongo - added support for $accumulator operator.

  • The RegExp now detects a vulnerable string with single and double quotes around the URI of the targeted file.

  • Bumped agent-lib version in Node agent v5 to v5.3.0.

Release date: January 31, 2023

Language versions currently supported:14,16, and 18 LTS

New and improved:

  • NoSQL Injection Mongo - added support for $function operator.

  • Migrated shared hooks to instrumentation layer: http, https, http2, spdy.

  • Reduced code duplication in existing Protect hooks.

  • CVE-2022-46175 node-require-hook Prototype Pollution in JSON5 via Parse Method.

Bug fixes:

  • NODE_OPTIONS envrionment for pino worker-thread does not get cleared of --require @contrast/.... (NODE-2882)

Release date: January 17, 2023

Language versions currently supported:14,16, and 18 LTS

New and improved:

  • Provided npx command to config-diagnostics and output results.

Bug fixes:

  • Fixed issue where @contrast/protect-agent does not install. (NODE-2803)

Release date: January 10, 2023

Language versions currently supported:14,16, and 18 LTS

New and improved:

  • CVE-2022-46175 Prototype Pollution in JSON5 via Parse Method.

  • Internal Protect data structure changes.

Release date: December 8, 2022

Language versions currently supported:14,16, and 18 LTS

New and improved:

  • Performance improvement for capturing stack traces. (NODE 2760)

Release date: December 5, 2022

Language versions currently supported:14,16, and 18 LTS

New and improved:

Node.js release notes 2022

Release date: December 21, 2022

Language versions currently supported: 12, 14,16, and 18 LTS

Bug fixes:

  • Fix issues with system-diagnostics reporting under Windows env. (NODE-2780)

  • Config utility reads the wrong remote value for syslog settings. (NODE-2781)

Release date: December 19, 2022

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • CVE-2022-24999 - qs vulnerable to Prototype Pollution.

  • Added support for the Microsoft SQL Server database.

Release date: December 9, 2022

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • New Contrast Service version - v2.28.23 is now bundled with the v4 agent.

Bug fixes:

  • Defensive code in system diagnostics when finding package.json. (SUP-4357)

  • Added defensive code around checking the express router handler's length. (SUP-4314)

  • System info gets output when running config-diagnostics - this was incorrect behavior.

CVE patch:

  • CVE-2022-24999 (devDependency). version 4.x agent

Release date: December 2, 2022

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • Provide npx command to read system info and output results. (NODE-2629)

Release date: November 25, 2022

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • Made _contrast_toString a non-enumerable property of Function.prototype to resolve compatibility issues with @sap/cds. (NODE-2752)

Release date: November 21, 2022

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • Removed Fastify2 from NodeTestBenches.

Bug fixes:

  • Fixed contrast-diagnostics script that did not support running when not adjacent to the agent installation location. (NODE-2748)

Release date: November 9, 2022

Language versions currently supported: 12, 14,16, and 18 LTS

New and improved:

  • New troubleshooting functionality to write to a file the effective configuration seen by the agent. (NODE-2632)

Release date: October 27, 2022

Language versions currently supported: 12, 14,16, and 18 LTS

Bug fixes:

  • Memory-leak surfaced for apps running with the agent for over 12 hours. (NODE-2715)

CVE remediation:

  • CVE-2022-3517 upgrade dependencies with minimatch so use v3.0.5 or greater. (NODE-2717)

Release date: October 19, 2022

Language versions currently supported: 12, 14,16, and 18 LTS

Bug fixes:

  • Memory leak introduced in 4.25.0. (NODE-2698)

Release date: October 13, 2022

Language versions currently supported: 12, 14 ,16, and 18 LTS

Bug fixes:

  • "TypeError: undefined is not a function" when spawning a child process with Assess. (NODE-2694)

Release date: October 11, 2022

Language versions currently supported: 12, 14 ,16, and 18 LTS

Bug fixes:

  • Memory leak being caused by Assess CallContext stacktraces. (NODE-2681)

  • npm not found and library not reported when the Node.js runtime is installed in the Program Files directory on Windows OS. (NODE-2691)

Release date: October 7, 2022

Language versions currently supported: 12, 14 ,16, and 18 LTS

Bug fixes:

  • NPM commands used in the agent for library reporting/listing will now work on Windows machines. (NODE-2676)

Release date: September 30, 2022

Language versions currently supported: 12, 14 ,16, and 18 LTS

Bug fixes:

  • Fixed an issue where the agent was not starting the Contrast Service when running on Windows OS. (NODE-2677)

Release date: September 27, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Updated v4 and v5 agents to be compatible with Node 18.

  • The originalUrl property is now tagged in Express.

Bug fixes:

  • Corrected issue where req.path was not tracked and not considered untrusted data. (NODE-2637)

Release date: September 7, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • CVE-no-CVE-ID - Bump moment-timezone from 0.5.34 to 0.5.37.

Bug fixes:

  • Node agent only instruments MongoDB API methods that are susceptible to expansion or injections. (NODE-2040)

Release date: August 31, 2022

Language versions currently supported: 12, 14 and 16 LTS

Bug fix:

  • For agent v16.17 and above, we now explicitly signal a short circuit in our load hook for ESM support (NODE-2620).

Release date: August 26, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Added instrumentation for the DynamoDB.scan() command and the FilterExpression key AWS v2.

  • Added support for MongoDB NoSQL Injection highlighting in Contrast UI when multiple arguments are present.

Release date: August 17, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Improved express instrumentation by having the body-parser library and all its parsing methods directly patched/instrumented.

  • Added support for the mongodb v4.x driver for the agent in Protect mode.

Bug fixes:

  • The JSON.stringify() propagator handles when the argument (or subset of argument) is a deserialization membrane. (NODE-2598)

  • Autocomplete missing rule data is serialized properly into protobuf message. (NODE-2589)

Release date: August 8, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • CVE-2022-2564 - Bump Mongoose version to 6.4.6.

Bug fix:

  • The JSON.stringify() propagator handles when the argument (or subset of argument) is a deserialization membrane. (NODE-2598)

Release date: August 1, 2022

Language versions currently supported: 12, 14 and 16 LTS

Bug fix:

  • Aws-sdk version 2 for DynamoDB does not respect abstract attribute types. (NODE-2532)

Release date: July 25, 2022

Language versions currently supported: 12, 14 and 16 LTS

Bug fixes:

  • When processing large strings in docker and using node crypto module to encrypt data, the calls distringuish.getProperties were causing segmentation fault issues. (NODE-2564)

Release date: July 18, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Added support for isEmail and isDate validators in ValidatorJS.

Bug fixes:

  • Joi validation not recognized if the schema specified in "options" for a hapi route. (NODE-2544)

Release date: July 12, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Remediated CVE-2022-31129 for inefficient regular expression complexity in moment.

  • Add hardening to prevent app crash if NPM is not installed.

Release date: July 4, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • When a MongoDB update method has multiple attack vectors, the Node.js Agent accurately reports NoSQL Injections that were previously false negatives.

Release date: June 28, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Remediated CVE-2020-7596 by removing the codecov dependency from node-agent (DEV Dependency).

Release date: June 25, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Added improved logging when an unsupported version of npm is installed in the app being instrumented.

Bug fixes:

  • Decrease highlighting to just tainted string when reported sink argument is a query object. (SUP-3889)

Release date: June 13, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Added improved logging when an unsupported version of npm is installed in the app being instrumented.

Bug fixes:

  • When Protect mode is enabled, multipart/form-data throws exception when headers are removed. (SUP-3817)

Release date: June 3, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Remediated CVE-2021-43138 by updating ejs to a safe version in node-agent, this was a DEV Dependency and was not a true vulnerability. (NODE - 2352)

Release date: June 1, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Removed winston-syslog from the agent's bundled dependencies, this was being flagged as having a CVE.

Bug fixes:

  • Fixed false-negative of Server-Side Request Forgery (SSRF) for request npm package. (SUP-3829)

Release date: May 27, 2022

Language versions currently supported: 12, 14 and 16 LTS

Bug fixes:

  • Incorrect highlighting displayed for Node.js vulnerabilities under Overview in the Contrast web interface. (SUP-3717, 2927)

Release date: May 19, 2022

Language versions currently supported: 12, 14 and 16 LTS

Bug fixes:

  • When running an application with pm2 on cluster mode and the CONTRAST_CONFIG_PATH provided as an environment variable, the agent reads the CONTRAST_CONFIG_PATH value from contrast_security.yaml instead of the environment variable.

Release date: May 17, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Implemented support for the ref() function when Joi validation is unknown because of untracked target

  • The hooks for mongodb-core are “replicated” to hook mongodb from version 3.3.0 and later

Release date: May 12, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Added support for PM2 running in both fork and cluster modes.

  • New config option assess.enable_lazy_tracking for Contrast Node.js 4.X. The default is true and must be set to false to use Fastify http/2.

Release date: April 29, 2022

Language versions currently supported: 12, 14 and 16 LTS

Bug fixes:

  • Rewriter not wrapping file contents in "module wrap" IIFE. (SUP-3732)

  • The lib/util/trace-util getRequest always returns undefined if sampling is disabled. (NODE-2351)

Release date: April 21, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Custom fastify-static allowedPath path-traversal validator.

  • Remediated CVE-2021-43138 (Prototype Pollution in async Winston bump).

Bug fixes:

  • __import methods can cause an error when the imported module is not yet resolved. (NODE-2341)

  • ESM loader hooks still operate when agent is disabled. (NODE-2340)

Release date: April 14, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Remediated CVE-2021-43138 (update async dev dependency to a safe version in node-agent).

Release date: April 11, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Remediated CVE-2022-24785 (update moment dependency to a safe version in node-agent, remediating path traversal vulnerability).

Release date: April 8, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Added support for DyanmoDB PartiQL (Assess only).

Bug fixes:

  • Fixed deadlinks in NPM agent readme. (Node-2297)

Release date: March 31, 2022

Language versions currently supported: 12, 14 and 16 LTS

Release date: March 29, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Contrast Service updated to 2.28.19. This resolves CVE-2021-38561.

  • Remediated CVE-2021-44906 (for minimalist npm library).

  • Added support for validator.matches() as a custom validator.

  • Upgraded to  agent-lib 2.2.4.

Release date: March 23, 2022

Language versions currently supported: 12, 14 and 16 LTS

Important

As part of a recent bug fix a setting name has changed. If you are using agent.trust_custom_validator, please update to assess.trust_custom_validator.

New and improved:

  • Added support for MySQL2 library 2.0.0 and later.

Bug fixes:

  • False negative occurs when SQL query template contains untrusted data. (SUP-3568)

Release date: March 29, 2022

Language versions currently supported: 10, 12 and 14 LTS

Important

The Contrast Node.js agent version 3.X will EOL in June 2022. You can upgrade to the latest version 4.x of the Node.js agent available from npm.

New and improved:

  • Remediated CVE-2021-44906 (for minimalist npm library).

Release date: March 25, 2022

Language versions currently supported: 10, 12 and 14 LTS

Important

The Contrast Node.js agent version 3.X will EOL in June 2022.

New and improved:

  • Contrast Service updated to 2.28.17.

  • Remediated CVE-2021-44906 (for minimalist npm library).

Release date: March 17, 2022

Language versions currently supported: 12, 14 and 16 LTS

Bug fixes:

  • Path traversal false negative. (SUP-3558)

  • Agent tries to rewrite ESM files twice. (NODE-2217)

Release date: March 14, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Remediated CVE-2022-0536 (follow-redirects to a safe version in node-agent)

  • Remediated CVE-2022-0686 (url-parse to a safe version in node-agent)

  • Added warning message to CLI-rewriter logging (or stdout)

  • Added support for hardcoded-key and hardcoded-password vulnerabilities when using CLI-rewriter feature.

  • Support for ESM syntax (import statements) for Node.js 14 and 16 LTS

  • New Protect native input analysis processing with:

    • YAML: agent.node.native_input_analysis: true

    • Environment variable: CONTRAST__AGENT__NODE__NATIVE_INPUT_ANALYSIS=TRUE

Release date: March 14, 2022

Language versions currently supported: 12, 14 and 16 LTS

Bug fixes:

  • Agent is ocassionally throwing error: TypeError: Cannot read property 'getAllParents' of null. (SUP-3611)

Release date: March 10, 2022

Language versions currently supported: 12, 14 and 16 LTS

Bug fixes:

  • Rewrite cache path is built incorrectly when mode isn't explicitly set in config. (NODE-2180)

  • Proxy authentication information showing in logs. (SPEED-1056)

Release date: February 25, 2022

Language versions currently supported: 12, 14 and 16 LTS

Release date: February 22, 2022

Language versions currently supported: 12, 14 and 16 LTS

Release date: February 17, 2022

Language versions currently supported: 12, 14 and 16 LTS

Important

You can no longer download the Node.js agent from Contrast. You should use these instructions to download and install the agent from npm.

Bug fixes:

  • ReThinkDB results in SQLi false negative due to failed instrumentation during propagation. (NODE-2150)

Release date: February 15, 2022

Language versions currently supported: 12, 14 and 16 LTS

Bug fixes:

  • False negative causing Server Side Request Forgery. (NODE-2130)

Release date: February 15, 2022

Language versions currently supported: 12, 14 and 16 LTS

Bug fixes:

  • When parsing the body on the Sails framework, the agent occasionally hangs indefinitely on post requests. (NODE-2125)

Release date: February 7, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Upgraded Contrast service 2.28.12 is bundled with this agent version.

  • Added support for custom Assess data validation using Mongoose or Joi.

  • Added support for MongoDB key object expansion Protect rule.

Bug fixes:

  • During CLI transpilation, the Node agent no longer logs data if there is no network connectivity or connection to Contrast. (NODE-2083)

Release date: February 1, 2022

Language versions currently supported: 12, 14 and 16 LTS

Bug fixes:

  • When working with large JSON objects, users experience significant Assess performance regressions introduced in Node.js agent 4.9.1. (NODE-2086)

Release date: January 31, 2022

Language versions currently supported: 12, 14 and 16 LTS

New and improved:

  • Contrast Service version 2.28.9 is now bundled with the Node.js agent.

Bug fixes:

  • When the local YAML configuration and environment variables are set, the Contrast service does not prioritize configuration values as indicated in the order of precedence. (NODE-2084)

Release date: January 28, 2022

Language versions currently supported: 12, 14 and 16 LTS

Bug fixes

  • When rewrite caching is enabled, the stack trace no longer repeats and writes the correct filename. (NODE-2065)

Release date: January 19, 2022

Language versions currently supported: 12, 14 and 16 LTS

New features and improvements:

  • Contrast Node.js agent version 4.9.0 was non-installable due to a build dependency that requires package-lock.json file. Version 4.9.1 is patched not to require that dependency.

Note

This version has been deprecated, please use 4.9.1 or later.

Release date: January 19, 2022

Language versions currently supported: 12, 14 and 16 LTS

Release date: January 6, 2022

Language versions currently supported: 12, 14 and 16 LTS

Release date: June 28, 2022

Language versions currently supported: 10, 12 and 14 LTS

Important

This is the last release of 3.x.x of the Node.js agent - the version 3 branch has reached end-of-life status.

New and improved:

  • Remediated CVE-2020-7596 by removing codecov dependency from the node-agent (DEV Dependency).

Release date: May 18, 2022

Language versions currently supported: 10, 12 and 14 LTS

Important

The Contrast Node.js agent version 3.X will EOL in June 2022.

Release date: April 21, 2022

Language versions currently supported: 10, 12 and 14 LTS

Important

The Contrast Node.js agent version 3.X will EOL in June 2022. You can upgrade to the latest version 4.x of the Node.js agent available from npm.

New and improved:

  • Remediated CVE-2021-43138 (Prototype Pollution in async Winston bump).

Release date: April 14, 2022

Language versions currently supported: 10, 12 and 14 LTS

Important

The Contrast Node.js agent version 3.X will EOL in June 2022. You can upgrade to the latest version 4.x of the Node.js agent available from npm.

New and improved:

  • Remediated CVE-2021-43138 (update async dev dependency to a safe version in node-agent).

Release date: April 12, 2022

Language versions currently supported: 10, 12 and 14 LTS

Important

The Contrast Node.js agent version 3.X will EOL in June 2022. You can upgrade to the latest version 4.x of the Node.js agent available from npm.

New and improved:

  • Remediated CVE-2022-24785 (update moment dependency to a safe version in node-agent, remediating path traversal vulnerability).

Release date: March 29, 2022

Language versions currently supported: 10, 12 and 14 LTS

Important

The Contrast Node.js agent version 3.X will EOL in June 2022. You can upgrade to the latest version 4.x of the Node.js agent available from npm.

New and improved:

  • Remediated CVE-2021-44906 (for minimalist npm library).

Release date: March 25, 2022

Language versions currently supported: 10, 12 and 14 LTS

Important

The Contrast Node.js agent version 3.X will EOL in June 2022.

New and improved:

  • Contrast Service updated to 2.28.17.

  • Remediated CVE-2021-44906 (for minimalist npm library).

Release date: February 25, 2022

Language versions currently supported: 10, 12 and 14 LTS

Important

The Contrast Node.js agent version 3.X will EOL in June 2022.

Release date: February 7, 2022

Language versions currently supported: 10, 12 and 14 LTS

Important

The Contrast Node.js agent version 3.X will EOL in June 2022.

New and improved:

  • Upgraded Contrast service 2.28.12 is bundled with this agent version.

Release date: January 31, 2022

Language versions currently supported: 10, 12 and 14 LTS

Important

The Contrast Node.js agent version 3.X will EOL in June 2022.

New features and improvements:

  • Contrast service version 2.28.9 is now packaged with the Node.js agent.

Bug fixes:

  • When the local YAML configuration and environment variables are set, the Node.js agent does not prioritize configuration values as indicated in the order of precedence. (NODE-2084)

Release date: January 19, 2021

Language versions currently supported: 10, 12 and 14 LTS

Important

The Contrast Node.js agent version 3.X will EOL in June 2022.

New features and improvements:

  • Contrast service version 2.28.4 packaged with the Node.js agent

Node.js release notes 2021

Release date: December 23, 2021

Language versions currently supported: 12, 14 and 16 LTS

Release date: December 3, 2021

Language versions currently supported: 12, 14

Important

As of Node 3.11.15, the agent will be bundled with Contrast Service version 2.28.0

New and improved:

  • Added Joi support for ref() where reference target is an object.

Release date: December 3, 2021

Language versions currently supported: 12, 14 and 16 LTS

Important

As of Node 4.7.0, the agent will be bundled with Contrast Service version 2.28.0

New and improved:

  • The stacktrace limit default was set to 10 (previously it was set to 25).

  • Added Joi support for ref() where reference target is an object.

  • Added support for Dust.js template engine.

Bug fixes:

  • Implicit tagging of numeric input causes false negatives. (Node-2005)

  • Refactored logic around sanitizers that causes wrong tags.

Release date: November 18, 2021

Language versions currently supported: 12, 14, 16 LTS

Bug fixes:

  • When an application has been rewritten with Babel and the @babel/runtime helpers have been injected, the application fails to start. (Node-1956)

Release date: November 10, 2021

Language versions currently supported: 12, 14, 16 LTS

New and improved:

  • Added AWS-SDK version 3 DynamoDB to the flow map.

  • Improved tracking of vulnerabilities through path functions.

Release date: November 2, 2021

Language versions currently supported: 12, 14, 16 LTS

Important

As of Node 4.5.1, the agent will be bundled with Contrast Service version 2.27.3

Bug fixes:

  • Bluebird is causing vulnerabilities to be attributed to the incorrect route. (NODE-1892)

Release date: October 21, 2021

Language versions currently supported: 12, 14, 16 LTS

New and improved:

  • Support for Mustache template engine version 4.x. (version 3 and version 4 of agent)

  • Specify module supported versions explicitly as a WARN in logs.

Bug fixes:

  • Fixes to the path.normalize Assess functionality. (NODE-1830)

Release date: October 13, 2021

Language versions currently supported: 12, 14, 16 LTS

New and improved:

  • Node 16 LTS support.

  • New configuration flag for “turbo” protect performance.

Bug fixes:

  • When there are NoSQL vuln on GET requests from two routes, the vulnerability is not reported. (NODE-1900)

  • "Propagator micro-optimizations" causes performance issue. (NODE-1913)

Release date: September 29, 2021

Language versions currently supported: 12 and 14 LTS

New and improved:

  • CVE-2021-3795 upgrade semver-regex to latest (v3.1.3) in node-require-hook

  • CVE-2021-3795 upgrade semver-regex to latest (v3.1.3) in node-fn-inspect

  • CVE-2021-3807 bump ansi-regex dependency in node-agent repo (from 2.1.1 to 6.0.1)

  • CVE-2020-26301 bump ssh2 to latest version (v1.4.0) in the node-agent repo (v3 and v4)

Bug fixes:

  • XXE Assess causes false negatives with the DVNA application. (NODE-1810)

Release date: September 23, 2021

Language versions currently supported: 12 and 14 LTS

Known issue:

There may be some message loss between the agent and the Contrast service if you are NOT using the optional gRPC protocol. This version will be deprecated once a fix is provided in the 4.2.1 release.

New and improved:

  • Significant Assess performance improvements for use cases where there is a large JSON body in the inbound request.

  • Improved reporting/UX to Contrast where there is a vulnerability identified in large JSON body in the inbound request.

  • The MongoDB 4.X driver is now supported along with versions 3.5.0 and later.

  • CVE-2021-3749 - node-agent - bump 'axios' from 0.21.1 to 0.21.2

  • CVE-2021-37713 bump tar dependency in 'distringuish' repo from 4.4.15 to 4.4.19

  • CVE-2021-37713 bump tar dependency in 'node-fn-inspect' repo from 4.4.15 to 4.4.19

Release date: August 28, 2021

Language versions currently supported: 12 and 14 LTS

Note

As of Node.js 4.1.0, we no longer support Contrast Node.js agent versions 2.X.

New and improved:

  • CVE-2021-3664 - node-agent - Bump url-parse from 1.5.1 to 1.5.3.

  • CVE-2021-23343 - node-agent - Bump path-parse from 1.0.6 to 1.0.7.

  • SNYK-JS-TAR-1536758 - node-agent - Bump tar from 6.1.4 to 6.1.10.

  • CVE-2021-32803 - contrast-protobuf-api - Bump tar from 4.4.13 to 4.4.15 (or 4.4.19).

Bug fixes:

  • Node.js agent failing silently in Protect mode if unsupported Node.js LTS version. (NODE-1757)

  • When reporting libraries "_requiredBy" or "dependents" field not populated. (NODE-1718)

  • Sequelize propagators do not add Propagation events to dataflow history, causing possible NoSQL injection false positives. (NODE-1746)

Release date: July 28, 2021

Language versions currently supported: 12 and 14 LTS

Release date: July 8, 2021

Language versions currently supported: 12 and 14 LTS

New and improved:

  • Significant performance refactoring completed for both Protect and Assess functionality.

  • CLI rewriter for startup performance improvements.

  • Set Babel as sole rewriter - removed Esprima.

  • Updating Contrast Service is mandatory.

  • Added support for agent.logger.backups and agent.logger.roll_size properties.

Bug fixes:

  • Agent unable to detect installed libraries on Windows. (NODE-1622)

  • Bluebird callbacks run in NO_INSTRUMENTATION scope causing accuracy issues. (NODE 1643)

  • Koa: Router.use reported as Router.undefined. (NODE-1628)

  • Logger not logging all entries to debug file. (NODE-1654)

  • HTTP body missing for multipart/form-data POST requests. (NODE-1620)

  • Agent fails to start with infinite loop when unable to write contrast-service socket file. (NODE-1657)

  • Screener tests fail because of non-existent rewrite-babel file. (NODE-1682)

  • Tag ranges off when Array.join is called with empty string. (NODE-1673)

  • Trim prerelease from reported agent version. (NODE-1693)

Release date: November 18, 2021

Language versions currently supported: 12, 14 LTS

New and improved:

  • Resolved CVEs against these dev dependencies: CVE-2021-3765, CVE-2021-3807.

Release date: November 3, 2021

Language versions currently supported: 12, 14 LTS

Important

As of Node.js 3.11.13, the agent will be bundled with Contrast Service version 2.27.3.

Bug fixes:

  • Bluebird causes vulnerabilities to be attributed to the incorrect route. (Node-1892)

Release date: October 13, 2021

Language versions currently supported: 12 and 14 LTS

Bug fixes:

  • When there are NoSQL vuln on GET requests from two routes, the vulnerability is not reported. (NODE-1900)

Release date: October 7, 2021

Language versions currently supported: 12 and 14 LTS

Bug fixes:

  • Agent maintenance version 3.x does not ship with prebuilt dependencies for Node 10. (NODE-1905)

Release date: September 29, 2021

Language versions currently supported: 12 and 14 LTS

New and improved:

  • CVE-2021-3795 upgrade semver-regex to latest (v3.1.3) in node-require-hook

  • CVE-2021-3795 upgrade semver-regex to latest (v3.1.3) in node-fn-inspect

  • CVE-2021-3807 bump ansi-regex dependency in node-agent repo (from 2.1.1 to 6.0.1)

  • CVE-2020-26301 bump ssh2 to latest version (v1.4.0) in the node-agent repo (v3 and v4)

Release date: August 26, 2021

Language versions currently supported: 12 and 14 LTS

New and improved:

  • CVE-2021-3664 - node-agent - Bump url-parse from 1.5.1 to 1.5.3.

  • CVE-2021-23343 - node-agent - Bump path-parse from 1.0.6 to 1.0.7.

  • SNYK-JS-TAR-1536758 - node-agent - Bump tar from 6.1.4 to 6.1.10.

  • CVE-2021-32803 - contrast-protobuf-api - Bump tar from 4.4.13 to 4.4.15 (or 4.4.19).

Bug fixes:

  • Node.js agent failing silently in Protect mode if unsupported Node.js LTS version. (NODE-1757)

  • Sequelize propagators do not add Propagation events to dataflow history, causing possible NoSQL injection false positives. (NODE-1746)

  • When reporting libraries, "_requiredBy" or "dependents" fields not populated. (NODE-1718)

Release date: August 13, 2021

Language versions currently supported: 12 and 14 LTS

Bug fixes:

  • Resolves a breaking change regression and reenables the agent to run on Node.js 10 LTS, even though that Node.js LTS version has reached its end-of-life (EOL). (NODE-1748)

  • The agent can successfully instrument any application using Bluebird. (NODE-1742)

  • Resolved an issue where the agent was not correctly tracking data through several Sequelize functions. (NODE-1746)

Release date: July 29, 2021

Language versions currently supported: 12 and 14 LTS

Release date: July 8, 2021

Language versions currently supported: 10, 12 and 14 LTS

Bug fixes:

  • Agent fails to start with infinite loop when unable to write contrast-service socket file. (NODE-1657)

  • Improved the agent's deadzoning ability to correctly skip instrumentation of dependent modules of deadzoned modules. (NODE-1449)

Note

This version has been deprecated, please use 3.11.6 or later.

Release date: July 6, 2021

Language versions currently supported: 10, 12 and 14 LTS

Bug fixes:

  • Addressed bug that prevented logging some entries into debug file. (NODE-1654)

  • HTTP body missing for multipart/form-data POST requests. (NODE-1620)

Note

This version has been deprecated, please use 3.11.6 or later.

Release date: June 25, 2021

Language versions currently supported: 10, 12 and 14 LTS

Bug fixes:

  • Router.use reported as Router.undefined in Koa. (NODE-1628)

Note

This version has been deprecated, please use 3.11.6 or later.

Release date: June 25, 2021

Language versions currently supported: 10, 12 and 14 LTS

Bug fixes:

  • Agent unable to detect installed libraries on Windows. (NODE-1622)

  • Bluebird callbacks run in NO_INSTRUMENTATION scope causing accuracy issues. (NODE-1643)

Note

This version has been deprecated, please use 3.11.6 or later.

Release date: June 11, 2021

Language versions currently supported: 10, 12 and 14 LTS

Bug fixes:

  • Logger methods called before initialization. (NODE-1625)

  • Mongodb collection methods not triggering post hooks. (NODE-1603)

Note

This version has been deprecated, please use 3.11.6 or later.

Release date: June 08, 2021

Language versions currently supported: 10, 12 and 14 LTS

Bug fixes:

  • When user is using express-session middleware, res.end does not report cross-site scripting (XSS). (SUP-2796)

  • AsyncStorage loses context in mysql query operations. (SUP-2861)

  • Fixed an issue where the customer app crashes but does not throw an exception to the Docker container and write to stdout/stderr. (NODE-1511)

Release date: May 27, 2021

Language versions currently supported: 10, 12 and 14 LTS

Bug fixes:

  • When user is using express-session middleware, res.end does not report cross-site scripting (XSS). (SUP-2796)

  • AsyncStorage loses context in mysql query operations. (SUP-2861)

Release date: May 21, 2021

Language versions currently supported: 10, 12 and 14 LTS

Bug fixes:

  • To resolve a ReDoS CVE (CVE-2021-23362) we need to update the hosted-git-info library included as a dependency.

Release date: May 17, 2021

Language versions currently supported: 10, 12 and 14 LTS

Release date: April 28, 2021

Language versions currently supported: 10, 12 and 14 LTS

New and improved:

  • Runtime performance improvements by improving JSON stringify tracking capabilities.

  • Added support for the Joi validator library, version 17+.

Release date: April 19, 2021

Language versions currently supported: 10, 12 and 14 LTS

Release date: April 13, 2021

Language versions currently supported: 10, 12 and 14 LTS

New and improved:

  • Runtime performance improvement by disabling membrane wrapping for certain functions.

Release date: April 2, 2021

Language versions currently supported: 10, 12 and 14 LTS

Bug fixes:

  • RangeError thrown on startup when traversing a router mounted on itself in Express. (SUP-2723)

Release date: March 31, 2021

Language versions currently supported: 10, 12 and 14 LTS

Bug fixes:

  • False positive Hardcoded Key finding reported. (SUP-2636)

  • If the Service is enabled, the application.path isn’t reported correctly. (SUP-2669)

Release date: March 26, 2021

Language versions currently supported: 10, 12 and 14 LTS

New and improved:

  • Added support for the Validator library, which can be used to sanitize and validate common vulnerability categories.

  • Improved logging when an incorrect package.json is used.

Bug fixes:

  • Prevent a catch when an async storage object can’t be parsed. (SUP-2685)

  • Fixed how the agent contextualizes async data when koa-bodyparser is used (SUP-2627)

  • Fixed cases where Express vulnerabilities aren’t reported to the UI correctly (SUP-2509, SUP-1558)

Release date: March 18, 2021

Language versions currently supported: 10, 12 and 14 LTS

Bug fixes:

  • When using a MongoDB SCRAM-SHA-256 authentication configuration, an exception is thrown at server startup. (SUP-2653)

Release date: March 15, 2021

Language versions currently supported: 10, 12 and 14 LTS

Release date: March 9, 2021

Language versions currently supported: 10, 12 and 14 LTS

Bug fixes:

  • Upgraded lodash from 4.17.20 to 4.17.21 due to two known CVEs found in version 4.17.20 (CVE-2020-28500, CVE-2021-23337).

  • Upgraded amqplib from 0.6.0 to 0.7.1 due to a known CVE found in version 0.6.0 (CVE-2021-27515).

Release date: March 8, 2021

Language versions currently supported: 10, 12 and 14 LTS

Bug fixes:

  • When a querystring is included in a MongoDB connection string, the agent can’t parse the URL. (SUP-2594)

Release date: March 1, 2021

Language versions currently supported: 10, 12 and 14 LTS

New features and improvements:

  • Kraken 2.3.0 is now supported.

Bug fixes:

  • Loading the agent with an ESM loader produces an error. (SUP-2504)

  • DynamoDB hook for flowmap crashes up without 'endpoint' in config (SUP-2475)

Release date: February 26, 2021

Language versions currently supported: 10, 12 and 14 LTS

Bug fixes:

  • Library usage causes errors on Windows when application loads add-on. (SUP-2536, NODE-1328)

  • Juice-Shop does not run when Assess in enabled on Windows. (SUP-2521, NODE-1317)

Release date: February 11, 2021

Language versions currently supported: 10, 12 and 14 LTS

Bug fixes:

  • DynamoDB hook for flowmap crashes agent when 'endpoint' is not specified in configuration. (SUP-2475, NODE-1286)

  • Users running esm.mjs receive an error because it is not being packaged. (SUP-2478, NODE-1288)

Release date: January 29, 2021

Language versions currently supported: 10, 12 and 14 LTS

New and improved:

  • Loopback 4 is now supported.

  • Fastify 3 is now supported.

Bug fixes:

  • False negative path traversal finding in Express. (SUP-2412)

  • Agent not detecting remote code execution (RCE) with certain input values. (SUP-2433)

  • Highlighted text in the UI is off by one character. (SUP-2384)

Release date: January 28, 2021

Language versions currently supported: 10, 12 and 14 LTS

Bug fixes:

  • The application may throw an error if the cache-controls header is an array. (SUP-2416)

  • Agent incorrectly exiting on SIGPIPE when the Contrast Service is used. (SUP-2421)

Node.js release notes 2020

Release date: December 7, 2020

Language versions currently supported: 10, 12 and 14 LTS

Bug fixes:

  • Certain types of XML uploads result in an XXE false negative. (SUP-2287)

Release date: December 18, 2020

Language versions currently supported: 10, 12 and 14 LTS

New features and improvements:

  • Input exclusions for Assess are supported. You can exclude findings based on input type or name.

  • Optimized performance when sourcemaps is enabled.

  • Flowmaps now have better accuracy in reporting architectural components.

Release date: November 20, 2020

Language versions currently supported: 10, 12 and 14 LTS

New features and improvements:

  • Node.js 14 is now supported.

  • Improved accuracy of line number reporting for vulnerabilities with source mapping.

Bug fixes:

  • Agent fails to instrument in Node 14 running on Windows. (SUP-2230)

Release date: October 28, 2020

Language versions currently supported: 10 and 12 LTS

Release date: October 23, 2020

Language versions currently supported: 10 LTS and 12 LTS

New features and improvements:

  • Added support for sequelize sql-string format methods.

Bug fixes:

  • Found false negative with Node.js loopback in Protect mode. (SUP-2009)

Release date: September 25, 2020

Language versions currently supported: 10 LTS and 12 LTS

Bug fixes:

  • Need to add support for fs.createWriteStream as a Protect sink. (SUP-2013)

Release date: September 18, 2020

Language versions currently supported: 10 LTS and 12 LTS

New features and improvements:

  • Restify 8 framework support is now available.

Bug fixes:

  • An Insecure Encryption Algorithm finding reports an incorrect code location. (SUP-1852)

  • FastifyFramework did not emit all headers in 'send' event.

Release date: September 10, 2020

Language versions currently supported: 10 LTS and 12 LTS

New features and improvements:

  • The 3.X version of the agent sets the default behavior to communicate and report to Contrast using the Contrast service.

  • The new rewrite_cache property will cache the app code rewritten by Contrast on startup and can improve subsequent startup time. This property is disabled by default but can be enabled.

Important notes:

  • With the 3.X version of the Node.js agent, the Contrast service is enabled by default but can still be disabled. Because of this, you will need to download the new 3.X agent binary through npm (recommended) or through Contrast.. Please contact Support if you have any questions about this change.

Bug fixes:

  • Tracking strings which include the + operator create a performance issue. (SUP-1975)

Language versions currently supported:10 LTS and 12 LTS

New features and improvements:

  • This release sets default behavior of the Node.js agent to communicate and report to Contrast directly, without using the Contrast Service. This undoes a breaking change that was introduced in the 2.x.x branch back in February of 2020.

  • New performance diagnostic features are now available for Contrast Customer Success to help diagnose performance issues.

  • Added the capability to track untrusted data through the node.js url.domainToASCII and url.domainToUnicode functions.

  • The agent.node.unsafe.deadzones option will now trim whitespace around each option.

Important notes:

  • This version marks the last new release for the 2.x.x branch. Only patch releases will be provided going forward for the 2.18.x branch.

    Customers will be required to upgrade to version 3.x.x (available September 2020) to gain additional capabilities in the Node.js agent. Version 3.0.0 of the Contrast Node.js agent will have potentially impactful changes which should be assessed by each customer for their specific application.

Bug fixes:

  • The server.path config option is not being passed to Contrast when using the Contrast service for communication. (SUP-1838)

  • Node agent Lodash dependency updated to 4.17.20 to resolve CVE-2020-8203. (SUP-1883)

  • Resolve TypeError: replacer.replace is not a function. (SUP-1888)

Language versions currently supported:10 LTS and 12 LTS

Bug fixes:

  • Agent breaks expected express-async-errors behavior. (SUP-1801)

Language versions currently supported:10 LTS and 12 LTS

Language versions currently supported: 10 and 12 LTS

Agent versions released during the past month: 2.16.1, 2.16.2, 2.16.3, 2.16.4, 2.16.5, 2.16.6, 2.16.7, 2.16.8, 2.17.0

New and improved:

  • Added multiple architecture changes and fixes that improve Assess performance.

  • Added support for URL Exclusions when using Assess. In Contrast, you can designate URLs that ignore selected rules or all rules. The agent now respects these settings for Assess rules in the Node.js agent.

  • Protect rule modes now default to OFF for best backward and forward compatibility.

  • Improved Fastify support to work better with GraphQL and Apollo Server.

  • Removed support for Protect Cross-site Request Forgery (CSRF).

  • Updated the version of Lodash used by the Node.js agent to 4.17.19 in response to a CVE for Lodash 4.17.15.

Important notes:

  • Version 3.0.0 of the Node.js agent will be released at the end of August and will introduce these changes:

    • The Node.js agent will be required to run with the Contrast service enabled. Currently, the service is shipped with the agent, but is optional; this change will enable the service by default.

    • The service will provide multiple functional and performance benefits to the Node.js agent.

    • The legacy auto-update policy for the Node.js agent will be deprecated when running with the service enabled.

      Note

      You will need to upgrade to Version 3.0.0, because the legacy auto-update feature does not upgrade to a major version. You can update your agent to 3.x with npm (recommended), the Contrast API or by using the Contrast web interface. Using npm allows version updates by using the customer’s application’s package.json with semantic versioning.

  • All new features will only be available for 3.0.0 and higher. Version 2.18.0 will also be released at the end of August and will be the final version that doesn't require the Contrast service. This version will continue to be supported for patch releases.

  • There are two optional features that may be useful to some customers. Contact your Customer Success Representative if you would like to know more about these:

    • Re-write caching provides faster subsequent start-up times.

    • Performance may improve when you skip (or deadzone) certain modules. For example, if you have modules passing large strings that are irrelevant to security, like logging, you can choose not to instrument them.

Bug fixes:

  • Node.js agent failed to initialize. Missing gRPC framework was resolved.

  • An exception occurred because of a syntax error for Fastify. This was fixed.

  • Crash when requiring the aws-s3 module was resolved.

Language versions currently supported:10 LTS and 12 LTS

Agent versions released during the past month: 2.15.1 2.15.2, 2.15.3, 2.15.4, 2.15.5, 2.16.0, 2.16.1, 2.16.2, 2.16.3, 2.16.4

New and improved:

  • Multiple architecture and performance improvements.

  • New gRPC communication protocol between the agent service improves performance.

  • Removed name and value cookie sources for reflected XXS per updated guidance for both Assess and Protect.

  • Added a sensor for SQLite for Protect.

  • Added support for Koa version 2.12.

  • Reflected XSS is now not reported if Content-Type is allowlisted as safe.

Important notes:

  • A major version release for the Node.js agent is planned for late July or August 2020. Node.js agent version 3.0.0 will introduce breaking changes for customers using the 2.x.x version of the agent and service.

Bug fixes:

  • Implemented multiple bug fixes due to the introduction of the gRPC communication protocol between the JavaScript agent and the agent service

  • Implemented fixes to resolve route coverage issues that surface when using graphQL, Apollo Server, and Fastify

  • Resolved a false positive issue when correctly using Sequelize to escape strings.

  • Resolved exception when fastify.route is called with an uppercase verb.

  • Resolved an issue that manifested as reporting duplicate routes when using the Express framework.

Language versions currently supported:10 LTS and 12 LTS

Agent versions released during the past month: 2.15.0

Important notes:

Bug fixes:

  • The customer application would fail to start when all Assess rules were disabled. This is fixed now.

  • The customer application would fail to start because worker threads would hang and generate multiple processes with the same pid. This is fixed now.

  • The agent would not output the security log to stdout (or stderr). This is fixed now.

  • Duplicated vulnerabilities were being reported for unique routes. This is fixed so that TeamServer displays distinct findings for each request uri.

  • An out-of-memory error caused by a regex match resulted in an infinite loop. This has been fixed.

  • Node.js agent’s migration to npm and incorrectly bundled modules made it seem like the agent was missing two dependencies. This has been resolved.

Language versions currently supported:

Agent versions released during the past month: 2.8.1, 2.8.2, 2.8.3, 2.9.0

New features and improvements:

  • Fastify framework support: Fastify 2.x is now a supported framework for the Contrast Node.js agent

  • NPM availability: The Contrast Node.js agent can now be installed directly from the Contrast Security public NPM repository

  • Pre-load capabilities: The Node.js agent can now be run as a pre-load module using the -r flag. This is also now the recommended method of running the Contrast Node.js agent.

Important notes:

  • Running the node agent as a runner will now generate a deprecation message. This is the deprecated syntax:

    node-contrast<app-main>

    The agent will continue to function when executed as a runner. However, we encourage customers to migrate to the new method of running the Contrast Node.js agent as this is no longer recommended.

Bug fixes:

  • After architecture improvements were made to the agent, some applications were prevented from starting with the agent. This has been resolved and users should no longer receive error messages like these:

    cls.run(() => {
        ^
    TypeError: Cannot read property 'run' of undefined
    
    OR
    
    /usr/src/app/node_modules/node_contrast/lib.asar/AsyncStorage/index.js:188
        if (ns.active) {
    
    TypeError: Cannot read property 'active' of undefined