CVE-2026-54780 Overview
CVE-2026-54780 affects CoreWCF, a port of the service-side Windows Communication Foundation (WCF) to .NET Core. The CoreWCF WS-Security 1.0 receive pipeline validates the ds:SignedInfoSignatureMethod against the configured SecurityAlgorithmSuite, but fails to validate each ds:ReferenceDigestMethod. This gap allows a sender to use a rejected digest algorithm such as SHA-1 while the message is still accepted by the receiver. The weakness is classified under [CWE-327: Use of a Broken or Risky Cryptographic Algorithm]. Maintainers fixed the issue in versions 1.8.1 and 1.9.1.
Critical Impact
A remote sender can bypass the configured cryptographic policy and submit signed messages using weak digest algorithms such as SHA-1, undermining message integrity guarantees over WS-Security.
Affected Products
- CoreWCF versions prior to 1.8.1
- CoreWCF versions prior to 1.9.1 (1.9.x branch)
- Applications built on CoreWCF using the WS-Security 1.0 receive pipeline
Discovery Timeline
- 2026-07-08 - CVE-2026-54780 published to NVD
- 2026-07-08 - Last updated in NVD database
- Fix Released - CoreWCF releases v1.8.1 and v1.9.1
- Advisory Published - GitHub Security Advisory GHSA-4v55-cpmv-3vcm
Technical Details for CVE-2026-54780
Vulnerability Analysis
CoreWCF implements WS-Security 1.0 message signing using standard XML Digital Signature (XMLDSig) constructs. Each signed message contains a SignedInfo element that declares a SignatureMethod and one or more Reference elements. Each Reference element declares its own DigestMethod used to hash the referenced content. The receive pipeline in WSSecurityOneDotZeroReceiveSecurityHeader correctly called EnsureAcceptableSignatureAlgorithm against the outer signature method. It did not, however, enforce the algorithm suite policy against the per-reference digest methods. A sender could therefore declare a strong outer SignatureMethod such as RSA-SHA256 while using SHA-1 for individual references, and the message would still be validated and accepted.
Root Cause
The root cause is missing policy enforcement in the receive pipeline. The SecurityAlgorithmSuite class contained a commented-out EnsureAcceptableDigestAlgorithm method, and the receiver never iterated over ds:Reference elements to check each DigestMethod against the configured suite. This is a classic instance of [CWE-327], where the trust boundary accepts a rejected digest algorithm because the check was never wired in.
Attack Vector
A remote attacker able to submit WS-Security 1.0 signed messages to a CoreWCF service can craft a SOAP envelope where individual ds:Reference elements specify SHA-1 as the DigestMethod. The service accepts the message despite policy requiring stronger algorithms, weakening integrity assurances and enabling downstream attacks that depend on collision-prone digests. Exploitation requires the attacker to already possess or control a signing key trusted by the receiver, which raises attack complexity.
// Patch: src/CoreWCF.Primitives/src/CoreWCF/Security/SecurityAlgorithmSuite.cs
// Restored EnsureAcceptableDigestAlgorithm method
internal void EnsureAcceptableDigestAlgorithm(string algorithm)
{
if (!IsDigestAlgorithmSupported(algorithm))
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
new MessageSecurityException(SR.Format(SR.SuiteDoesNotAcceptAlgorithm,
algorithm, "Digest", this)));
}
}
// Patch: src/CoreWCF.Primitives/src/CoreWCF/Security/WSSecurityOneDotZeroReceiveSecurityHeader.cs
SecurityAlgorithmSuite suite = AlgorithmSuite;
AlgorithmSuite.EnsureAcceptableSignatureKeySize(securityKey, token);
AlgorithmSuite.EnsureAcceptableSignatureAlgorithm(securityKey, signedXml.Signature.SignedInfo.SignatureMethod);
EnforceReferenceDigestPolicy(signedXml, suite); // new enforcement call
string canonicalizationAlgorithm = suite.DefaultCanonicalizationAlgorithm;
Source: CoreWCF commit 58742312
Detection Methods for CVE-2026-54780
Indicators of Compromise
- SOAP messages containing ds:Reference elements with DigestMethod set to http://www.w3.org/2000/09/xmldsig#sha1 when policy requires SHA-256 or stronger.
- Mismatch between the outer ds:SignedInfoSignatureMethod and inner ds:ReferenceDigestMethod (for example, RSA-SHA256 outer combined with SHA-1 inner references).
- CoreWCF service assemblies with versions earlier than 1.8.1 or 1.9.1 deployed in production.
Detection Strategies
- Inspect inbound SOAP traffic at the application gateway or web application firewall for XML digital signatures containing legacy digest URIs.
- Enable verbose WS-Security logging in CoreWCF to capture the negotiated algorithm suite and log all SignatureMethod and DigestMethod values processed.
- Perform a software composition analysis (SCA) sweep of .NET projects to enumerate CoreWCF.* NuGet package versions across build pipelines.
Monitoring Recommendations
- Alert on any successful message validation where the digest algorithm is SHA-1 or MD5.
- Track CoreWCF package versions across CI/CD and runtime hosts, and flag deployments where the version is below 1.8.1 or 1.9.1.
- Correlate WS-Security processing errors with client identities to detect probing for weak-digest acceptance.
How to Mitigate CVE-2026-54780
Immediate Actions Required
- Upgrade CoreWCF to 1.8.1 on the 1.8.x branch or 1.9.1 on the 1.9.x branch.
- Audit all CoreWCF-hosted services exposing WS-Security 1.0 endpoints and confirm the deployed assembly version.
- Review and tighten the configured SecurityAlgorithmSuite so that any downgrade attempt is rejected once the patch is applied.
Patch Information
The fix is delivered in CoreWCF v1.8.1 and CoreWCF v1.9.1. The patch reinstates EnsureAcceptableDigestAlgorithm in SecurityAlgorithmSuite and calls a new EnforceReferenceDigestPolicy routine from WSSecurityOneDotZeroReceiveSecurityHeader so each ds:ReferenceDigestMethod is validated against the configured suite. See commits 58742312, 9104e581, and fea67b2c for the code changes.
Workarounds
- If immediate upgrade is not possible, restrict access to WS-Security 1.0 endpoints to trusted clients using mutual TLS or network-level allowlisting.
- Terminate WS-Security processing at an upstream gateway that enforces strong digest algorithms before requests reach CoreWCF.
- Rotate any signing keys that may have been used with weak digest algorithms once the patched version is in place.
# Upgrade CoreWCF NuGet packages to a patched version
dotnet add package CoreWCF.Primitives --version 1.9.1
dotnet add package CoreWCF.Http --version 1.9.1
dotnet add package CoreWCF.WebHttp --version 1.9.1
# Verify installed versions across a solution
dotnet list package | grep -i CoreWCF
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

