CVE-2023-27321
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedOPC Foundation UA .NET Standard ConditionRefresh Resource Exhaustion Denial-of-Service Vulnerability. This vulnerability allows remote attackers to create a denial-of-service condition on affected installations of OPC Foundation UA .NET Standard. Authentication is not required to exploit this vulnerability. The specific flaw exists within the handling of OPC UA ConditionRefresh requests. By sending a large number of requests, an attacker can consume all available resources on the server. An attacker can leverage this vulnerability to create a denial-of-service condition on the system. Was ZDI-CAN-20505.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · high confidenceThis is a resource exhaustion vulnerability in OPC Foundation UA .NET Standard's ConditionRefresh functionality. Remote, unauthenticated attackers can send a large volume of ConditionRefresh requests to consume all available server resources, causing a denial-of-service condition.
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
Affected products & versions What the vendor confirmedThe version ranges the vendor confirmed as vulnerable. If your version sits inside a range here, treat yourself as exposed until you have upgraded.
NVD · CPE data< 1.4.371.86CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- Low
- Privileges
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- None
- Integrity
- None
- Availability
- High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Identify installed Ua .netstandard versionCheck the version of the Opcfoundation.Ua.Core NuGet package or assembly file referenced in your project or deployment. Use your package manager (NuGet) or inspect the referenced DLL properties to obtain the exact version number.Affected if The installed version is lower than 1.4.371.86
-
Verify if ConditionRefresh is exposedInspect your OPC UA server configuration and published nodeset files. Look for ConditionRefresh method or subscription settings that expose the ConditionRefresh functionality to clients. Check your server endpoint configuration for exposed methods.Affected if ConditionRefresh is enabled and accessible as a callable method on your OPC UA server
-
Confirm authentication requirements on UA endpointsReview your OPC UA server security configuration and endpoint settings. Check the UserTokenPolicy configuration to determine if anonymous or unauthenticated access is permitted. Inspect your server's policy file or configuration XML.Affected if Anonymous or unauthenticated access is permitted on the endpoint providing ConditionRefresh access
-
Check for request logging and unusual patternsReview OPC UA server logs for large volumes of ConditionRefresh requests, particularly from external or unexpected source IP addresses. Monitor for spikes in ConditionRefresh call frequency that could indicate exploitation attempts.Affected if Logs show high volumes of ConditionRefresh requests or patterns consistent with resource exhaustion attempts
You are affected if your OPC UA server runs a vulnerable version (below 1.4.371.86), exposes the ConditionRefresh functionality, and allows unauthenticated or high-volume requests without adequate rate limiting.
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scoped1.4.371.86
Implement rate limiting and concurrent request throttling on ConditionRefresh endpoints, and consider adding authentication requirements if not already enforced. Monitor for unusual request patterns.
1.4.371.86 or later
- Identify all projects and applications that reference the OPC Foundation UA .NET Standard library
- Update the NuGet package reference for OPCFoundation.Ua.Core (or similar package name) to version 1.4.371.86 or later
- Restore the updated NuGet packages
- Rebuild the solution to ensure compatibility with the new library version
- Perform regression testing, particularly on ConditionRefresh functionality and overall OPC UA server operations
- Deploy the updated application to affected systems
Generated from the published advisory — verify against the referenced sources before acting.
- Consultation4.0 h
- Implementation8.0 h
- Testing6.0 h
- Review / QA3.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $5,888.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2023-27321 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2023-27321 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data