Szafir SDK nieprawidłowo zwraca kod sukcesu z procesu weryfikacji podpisu cyfrowego nawet wtedy, gdy zaufanie do certyfikatu podpisującego nie mogło zostać ustalone. Powoduje to, że aplikacje korzystające z SDK traktują podpis jako ważny, mimo że łańcuch certyfikatów pozostaje niezweryfikowany, co umożliwia authentication bypass i podszywanie się pod użytkowników.
▸ Pokaż oryginał (EN)
Szafir SDK returns a success status code from the cryptographic digital signature verification process (i.e. /VerifyingTaskItem/Signature/VerificationResult/Result/@code == 0, "Positively verified") even when the trust status of the signer's certificate could not be established (i.e. /VerifyingTaskItem/Signature/VerificationResult/SigningCertificate/@certificateType == "nondetermined"). This causes consuming applications to incorrectly treat the signature as valid despite an unverified certificate chain, enabling authentication bypass and user impersonation. This issue was fixed in version 463.
Podczas weryfikacji podpisu cyfrowego SDK zwraca w polu Result/@code wartość 0 ('Positively verified'), nawet jeśli pole SigningCertificate/@certificateType przyjmuje wartość 'nondetermined', co oznacza niemożność ustalenia statusu zaufania certyfikatu podpisującego. Aplikacje konsumenckie odczytują wyłącznie kod wyniku, interpretując go jako potwierdzenie prawidłowości podpisu, podczas gdy faktyczna weryfikacja łańcucha certyfikatów zakończyła się niepowodzeniem. W efekcie atakujący może posłużyć się podpisem opartym na niezaufanym lub niezweryfikowalnym certyfikacie, który zostanie przez aplikację błędnie zaakceptowany jako autentyczny.
Atakujący może przeprowadzić authentication bypass oraz skutecznie podszyć się pod innego użytkownika, przedkładając dokument z podpisem cyfrowym opartym na niezweryfikowanym certyfikacie, który SDK nieprawidłowo uzna za ważny.
Należy zaktualizować Szafir SDK do wersji 463, w której problem został naprawiony. Producent: elektronicznypodpis.pl. Szczegóły dostępne w referencjach (https://cert.pl/posts/2026/05/CVE-2026-9058 oraz https://www.elektronicznypodpis.pl/).
Szafir SDK w wersjach poprzedzających wersję 463.
Podatność została zgłoszona i opisana przez CERT Polska (cert.pl). Poprawka dostępna w wersji 463 Szafir SDK. CWE-393 (Return of Wrong Status Code) oraz CWE-637 (Unnecessary Complexity in Protection Mechanism) wskazują na błąd projektowy w logice zwracania wyników weryfikacji kryptograficznej.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X