Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft forged XAdES digital signature
-
ExploitDeliver signed document to relying party
-
ExecutionDigiDoc verifies signature without certificate binding
-
ImpactForged signature displayed as valid
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Signature verification
|
| Exploitation Conditions | Exploitation requires an attacker to construct a document with a forged XAdES signature and have it validated by an affected, unpatched DigiDoc component - libdigidocpp 4.0.0-before 4.5.0, DigiDoc4 4.6.0-before 4.11.0, or DigiDoc Android/iOS 2.7.0-before 3.1.0 - where XMLDocument::verifySignature performs signature checking without binding to the signing certificate's public key. No authentication is required (PR:N) and no special non-default feature toggle is needed, since the defective verification path is the standard validation routine. The principal limiting factor is that the victim/relying party must use an affected version to validate the forged document; patched versions (which pass the X509 certificate into verification and reject a missing cert) display the forgery as invalid. |
| Impact | This is a CWE-347 improper cryptographic signature verification flaw scored CVSS 7.5 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N), a pure integrity impact (I:H, C:N, A:N) consistent with signature forgery rather than data theft. The source diff in vendor PR #735 confirms the root cause: XMLDocument::verifySignature() validated the XAdES signature without binding it to the signer's X509 certificate public key, so a signature could verify against an attacker-chosen key embedded in the document - the fix threads signingCertificate()/signingCert() into verification and rejects when no cert is present. No EPSS score, KEV listing, SSVC decision, or POC was provided, so exploitation status is 'no public exploit identified at time of analysis' and real-world exploitation is unproven. Despite the network vector and low complexity, practical risk is tempered because the payoff is forging legally-meaningful signatures on documents a relying party then validates with an affected version - high impact in the Estonian eID trust context, but not a mass-automatable internet-facing RCE. Treat as a high-priority patch for any workflow that legally relies on DigiDoc signature validation; de-prioritize relative to actively-exploited KEV items given the absence of exploitation signals. |
| Exploit ScenarioDerived | An attacker crafts a document bearing a forged XAdES digital signature whose embedded key does not belong to the claimed signer. Because affected DigiDoc software verifies the signature without binding it to the signer's trusted certificate, the victim's client (or a backend validation service using libdigidocpp) displays the forged signature as valid, enabling repudiation or fraud on contracts and official documents. No public exploit was identified, but the patch diff (PR #735) clearly reveals the exploitable missing certificate binding. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Improper verification of cryptographic signatures across the DigiDoc suite lets an attacker craft a document carrying a forged XAdES signature that affected software displays as valid, undermining the integrity of electronically signed documents (CVSS 7.5, CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - pure integrity impact with no confidentiality or availability effect). The defect is reachable by unauthenticated remote attackers (PR:N) with no user privilege or special configuration, but exploitation still requires a relying party to validate the forged file with an unpatched build: libdigidocpp before 4.5.0, DigiDoc4 before 4.11.0, or DigiDoc for Android/iOS before 3.1.0. Vendor fixes are available per the ENISA-referenced disclosure and upstream PR; no public exploit code has been identified at time of analysis, and no active exploitation is confirmed.
RemediationAI
Vendor-released patch: upgrade libdigidocpp to 4.5.0 or later (upstream fix in https://github.com/open-eid/libdigidocpp/pull/735, which extends XMLDocument::verifySignature to take an X509Cert, reject a missing certificate, and adopt the signer's public key into the xmlsec context), DigiDoc4 to 4.11.0 or later, and DigiDoc for Android and iOS to 3.1.0 or later; the vendor release announcement is at https://www.id.ee/en/article/id-tarkvara-uus-versioon-267-on-avalikustatud/. There is no configuration toggle that restores safe behavior, because the defective verification routine is the standard validation path rather than an optional feature, so upgrading the validating software is the only reliable fix. As a compensating control until upgrades complete, treat signature-validity status from affected DigiDoc builds as untrusted for integrity-critical decisions and re-verify suspect XAdES/BDoc containers with a patched libdigidocpp 4.5.0+ build or an independent XMLDSig validator that is explicitly pinned to a trusted signing certificate; the trade-off is operational friction and possible acceptance delays for legitimate signatures. Deployments that pin or mirror the vendor TSL should also refresh trust-list data alongside the upgrade, since TSL::validate() used the same defective verification path.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 4 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-347 (Improper Verification of Cryptographic Signature). libdigidocpp is the core C++ library behind Estonia's DigiDoc/BDoc digital-signature ecosystem, and the vulnerable code path lives in the XML/XAdES container handling implemented with xmlsec + OpenSSL. In the pre-fix code, XMLDocument::verifySignature(signature) performed XMLDSig/XAdES verification without being handed the signer's certificate, so the library effectively validated the signature against key material referenced inside the signed document itself rather than binding it to a trusted signing certificate - the classic XML signature wrapping / key-substitution weakness. Upstream PR 735 changes the API to verifySignature(signature, const X509Cert&), returns false outright when the certificate is absent, then derives the public key with X509_get_pubkey and adopts it into the xmlsec key context via xmlSecOpenSSLEvpKeyAdopt before verification. The same fix is applied to TSL::validate() (the ETSI trusted-list verification path in src/crypto/TSL.cpp), and the test fixture test/data/EE_T.xml was refreshed with a newer TSL sequence number and a TEST of SK ID Solutions EID-Q 2024E CA certificate, confirming the trust-list signature path is part of the affected surface. The CVE's automated tag set includes 'JWT Attack', but the actual patch diff concerns XMLDSig/XAdES and xmlsec key handling rather than JWT processing, so that tag should be treated as generic classifier noise rather than a description of the exploited mechanism.
Know when Libdigidocpp gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Forged signatures validate remotely with no auth or special config (AV:N/AC:L/PR:N); impact is integrity-only (I:H), with no confidentiality or availability effect and no scope change.
Primary rating from Vendor (ENISA).
CVSS VectorVendor: ENISA
DescriptionCVE.org
Improper verification of cryptographic signature vulnerability in DigiDoc libdigidocpp, DigiDoc DigiDoc4, DigiDoc DigiDoc Android, and DigiDoc DigiDoc iOS. The vulnerability allows an attacker to create forged digital signatures that are displayed a valid by affected DigiDoc software.This issue affects libdigidocpp: from 4.0.0 before 4.5.0; DigiDoc4: from 4.6.0 before 4.11.0; DigiDoc Android: from 2.7.0 before 3.1.0; DigiDoc iOS: from 2.7.0 before 3.1.0.
Executive ViewAI
A signature-verification flaw in the DigiDoc suite allows forged XAdES-signed documents to appear valid on unpatched builds of libdigidocpp, DigiDoc4, and DigiDoc mobile apps, directly undermining the integrity of electronic signatures that organizations and citizens rely on. Because the issue is remotely reachable by unauthenticated attackers and only requires a relying party to validate a malicious file, it creates trust, legal, and compliance risks for any workflow using these tools. Leadership should prioritize patching because the vulnerability affects the assurance of signed records, not just application stability.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
EUVD-2026-97323
GHSA-jjqw-f3cg-gjjw
NVD
CVE.org
EPSS
Exploit-DB