Apache Maven automatycznie podąża za referencjami do repozytoriów zdefiniowanych w plikach POM zależności, w tym za niezaszyfrowanymi adresami HTTP. Atakujący może przejąć kontrolę nad takim repozytorium lub przeprowadzić atak typu man-in-the-middle, podszywając się pod nie i dostarczając złośliwe artefakty.
▸ Pokaż oryginał (EN)
Apache Maven will follow repositories that are defined in a dependency’s Project Object Model (pom) which may be surprising to some users, resulting in potential risk if a malicious actor takes over that repository or is able to insert themselves into a position to pretend to be that repository. Maven is changing the default behavior in 3.8.1+ to no longer follow http (non-SSL) repository references by default. More details available in the referenced urls. If you are currently using a repository manager to govern the repositories used by your builds, you are unaffected by the risks present in the legacy behavior, and are unaffected by this vulnerability and change to default behavior. See this link for more information about repository management: https://maven.apache.org/repository-management.html
Podczas budowania projektu Apache Maven pobiera zależności z repozytoriów wskazanych w plikach Project Object Model (POM) — również tych zdefiniowanych przez zewnętrzne, pobrane zależności. Jeśli wskazane repozytorium używa niezaszyfrowanego protokołu HTTP, atakujący może przechwycić połączenie lub przejąć domenę repozytorium i serwować zmodyfikowane artefakty zamiast oryginalnych. Podatność wynika z braku weryfikacji pochodzenia repozytorium (CWE-346 — Origin Validation Error). Wersja 3.8.1 zmienia domyślne zachowanie tak, aby referencje do repozytoriów HTTP były blokowane.
Atakujący może dostarczyć złośliwe biblioteki lub artefakty do procesu budowania oprogramowania, co może prowadzić do kompromitacji budowanej aplikacji, a w konsekwencji do naruszenia poufności i integralności danych w środowiskach korzystających z zainfekowanych paczek.
Należy zaktualizować Apache Maven do wersji 3.8.1 lub nowszej, w której domyślnie blokowane są odwołania do repozytoriów HTTP (nieszyfrowanych). Alternatywnie należy wdrożyć menedżer repozytoriów (np. Nexus, Artifactory) jako pośrednika kontrolującego źródła artefaktów. Dla pozostałych produktów (Oracle, Quarkus) należy zastosować patche dostępne u producenta zgodnie z referencjami.
Apache Maven w wersjach wcześniejszych niż 3.8.1; produkty integrujące Maven, w tym Quarkus oraz Oracle Financial Services Analytical Applications Infrastructure i Oracle GoldenGate Big Data and Application Adapters — w wersjach wskazanych w referencjach producentów. Podatność nie dotyczy użytkowników korzystających z menedżera repozytoriów (repository manager) do zarządzania repozytoriami używanymi podczas budowania.
Podatność dotyczy domyślnej konfiguracji Apache Maven — organizacje stosujące repository manager do zarządzania repozytoriami są według producenta odporne na to zagrożenie. Informacja opublikowana przez Apache w dniu 2021-04-23.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NApache Maven
APPApache< 3.8.1Oracle Financial Services Analytical Applications Infrastructure
APPOracle8.0.6.0.0 – 8.0.9.0.08.1.0.0.0 – 8.1.2.0Oracle Goldengate Big Data And Application Adapters
APPOracle23.1Quarkus
APPQuarkus< 1.13.5
Powiązane podatności
RCE w Spring Cloud Function poprzez złośliwy SpEL routing-expression
Spring4Shell — RCE przez data binding w Spring MVC/WebFlux na JDK 9+
Pominięcie uwierzytelnienia w Oracle Financial Services Analytical Applications Infrastructure
Quarkus WebAuthn: pominięcie uwierzytelnienia przez domyślne endpointy REST
RCE w Quarkus Dev UI Config Editor poprzez drive-by localhost attack