Moduł Perl XML-Sig w wersjach 0.27–0.67 niepoprawnie waliduje pliki XML, jeśli brakuje w nich podpisów cyfrowych. Atakujący może usunąć podpis z dokumentu XML, a moduł błędnie zwróci wynik pozytywny zamiast błędu — co stanowi poważne zagrożenie dla systemów opartych na weryfikacji integralności dokumentów.
▸ Pokaż oryginał (EN)
XML-Sig versions 0.27 through 0.67 for Perl incorrectly validates XML files if signatures are omitted. An attacker can remove the signature from the XML document to make it pass the verification check. XML-Sig is a Perl module to validate signatures on XML files. An unsigned XML file should return an error message. The affected versions return true when attempting to validate an XML file that contains no signatures.
Podatność polega na nieprawidłowej implementacji weryfikacji podpisów XML (CWE-347 — improper verification of cryptographic signature). Gdy moduł XML-Sig otrzymuje dokument XML pozbawiony jakichkolwiek podpisów, powinien zwrócić błąd walidacji. W wersjach podatnych zwraca natomiast wartość true, co oznacza, że dokument jest traktowany jako poprawnie podpisany. Atakujący może celowo usunąć podpis z dokumentu XML, a następnie przesłać go do aplikacji korzystającej z modułu — wynik weryfikacji będzie fałszywie pozytywny.
Atakujący może podrzucić sfałszowany lub zmanipulowany dokument XML, który przejdzie walidację podpisu, omijając mechanizm weryfikacji integralności i autentyczności. W systemach opartych na SAML lub innych protokołach korzystających z podpisanych dokumentów XML może to prowadzić do nieautoryzowanego dostępu lub podszywania się pod innych użytkowników.
Należy zaktualizować moduł XML-Sig do wersji wyższej niż 0.67, w której błąd został naprawiony. Szczegóły dostępne w referencjach projektu na GitHub (issue #63, pull request #64). Do czasu aktualizacji należy rozważyć dodatkową weryfikację obecności podpisu przed wywołaniem walidacji lub tymczasowe wyłączenie funkcjonalności opartych na tym module.
Moduł Perl XML-Sig (perl-XML-Sig) w wersjach od 0.27 do 0.67 włącznie.
Podatność dotyczy scenariuszy, w których aplikacja korzysta z XML-Sig do walidacji dokumentów SAML lub innych podpisanych XML-ów — brak podpisu nie jest wykrywany, co może bezpośrednio wpływać na bezpieczeństwo uwierzytelniania i autoryzacji.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:H/A:NXml\ \
APPXml\sig_project
Powiązane podatności
XPath injection w XML::Sig dla Perl — obejście weryfikacji podpisu XML
XML::Sig dla Perl – signature wrapping przez zduplikowane ID
XML::Sig dla Perl — pominięcie weryfikacji podpisu XML (signature bypass)
It was discovered that the XML::Atom Perl module before version 0.39 did not disable external entities when pa...