OPC UA Invalid Server Nonces Vulnerability

OPC Foundation (OPCF) announced a Security Bulletin (CVE-2019-19135) on March 16, 2020, concerning a vulnerability in the OPC UA Java and .NET Stacks of OPC Foundation:

“… that could result in encrypted password credentials or signed X509 certificate credentials being sent in a form that can be intercepted and reused.”

Prosys OPC UA SDK for Java has the stack layer derived from the OPC Foundation Java Stack and is, therefore, affected by the same issue.

Details

The issue is related to some server applications not following the security specifications properly and reusing ServerNonces in communication. Servers built with Prosys OPC UA SDK for Java or Delphi or with any Unified Automation SDK are behaving properly and are not affected.

The suggested fix in the stack and SDK is to make the client applications check for vulnerability and reject connections with misbehaving servers.

The vulnerability concerns all communications that do not encrypt traffic, so in practice, security modes None and Sign are affected when user name or user certificate credentials are used. The fixed version of the client SDK for Java is disabling session activation (i.e., connections) if it identifies a misbehaving server. In this case, the connection is possible only without user credentials.

Prosys OPC UA Products Affected

The vulnerability affects directly:

  • All client applications built with Prosys OPC UA SDK for Java 4.2.0 and earlier
  • Prosys OPC UA Browser 4.0.2 and earlier
  • Prosys OPC UA Historian 1.0.0

Note that the vulnerability affects the applications only when connecting with misbehaving server applications using a user name or user certificate authentication.

Fixed Products

The issue is now fixed in Prosys OPC UA SDK 4.3.0, and Prosys OPC UA Browser 4.0.4, and we encourage everyone to update to these versions. Prosys OPC UA Historian will be updated later, respectively.

Fixing the issue with older library versions

Since the issue is related to security modes None and Sign only, when user name or user certificate-based authentication is used, you can avoid the issue by not using these modes in applications.

In general, if top-level security is a concern, SignAndEncrypt, with the most recent security policies, should be preferred.

More Security Information

You will find the currently announced security issues in Prosys OPC products from the blog under the #Security tag.

You might also like to read about the OPC UA Security Process of the OPC Foundation.

Author Info

Headshot of Jouni Aro

Jouni Aro

Chief Technology Officer

Email: jouni.aro@prosysopc.com

Related Posts

Develop OPC UA Applications on Android with Prosys SDK

Develop OPC UA applications on Android with the Prosys OPC UA SDK for Java. This updated guide shows how to get started with Android SDK API 35, including a simple client example. Please note that testing on Android is limited, so full interoperability with all OPC UA systems cannot be guaranteed.

Read More »

Valio – Connecting Dairy Plant Automation with IT Using Prosys OPC UA Forge

At Valio, product quality and traceability requirements are at a very high level, highlighting the importance of smooth and reliable communication between different production systems. To meet these requirements, Prosys OPC developed the OPC UA standard based software Valio uses for integrating all their automation and manufacturing execution systems.

Read More »

Master’s Thesis Recap: OPC UA Role-Based Access Control in Industrial Automation

This master’s thesis recap examines how OPC UA Role-Based Access Control (RBAC) can be implemented in industrial automation. It compares directory integration with local role mappings, outlines their benefits and challenges, and presents findings from a simulated case study. The results highlight practical considerations for strengthening OT network security with OPC UA.

Read More »

Interested in this topic?

Get updated about new posts through our newsletter!