W Eclipse Milo (wersje 1.0.0–1.1.4) metoda `OpcUaServerConfig.copy()` nie przenosi skonfigurowanego obiektu `RoleMapper`, co powoduje całkowite pominięcie kontroli uprawnień opartych na rolach. Anonimowy klient może w efekcie uzyskać nieuprawniony dostęp do chronionych zasobów serwera OPC UA.
▸ Pokaż oryginał (EN)
In Eclipse Milo versions 1.0.0 through 1.1.4, `OpcUaServerConfig.copy()` fails to preserve a configured `RoleMapper`. On servers that rely on role permissions and construct the running configuration through `copy()`, sessions receive no role IDs and the default access controller skips role-permission checks, allowing an anonymous client where anonymous sessions are permitted to read role-permission metadata, invoke protected methods, or delete protected nodes.
Gdy serwer OPC UA buduje swoją konfigurację roboczą przy użyciu metody `copy()`, skonfigurowany `RoleMapper` nie jest kopiowany do nowej instancji. Sesje nawiązywane z tak skonstruowanym serwerem nie otrzymują żadnych identyfikatorów ról, a domyślny kontroler dostępu pomija sprawdzanie uprawnień opartych na rolach. W konsekwencji każdy anonimowy klient — o ile na serwerze dozwolone są sesje anonimowe — może ominąć całą warstwę kontroli dostępu opartą na rolach.
Atakujący bez uwierzytelnienia może odczytywać metadane uprawnień opartych na rolach, wywoływać chronione metody oraz usuwać chronione węzły serwera OPC UA, co stanowi zagrożenie dla integralności i poufności zarządzanych danych przemysłowych.
Należy zaktualizować Eclipse Milo do wersji wyższej niż 1.1.4, w której błąd został naprawiony (commit d51f03e9a75f313ab41c3d68d809f4b922073f1a). Do czasu aktualizacji zaleca się wyłączenie obsługi sesji anonimowych na serwerze OPC UA oraz — jeśli to możliwe — unikanie budowania konfiguracji serwera przez metodę `copy()`.
Eclipse Milo w wersjach od 1.0.0 do 1.1.4 — wyłącznie serwery, które konfigurują mechanizm RoleMapper i budują aktywną konfigurację za pomocą metody `OpcUaServerConfig.copy()`.
Podatność dotyczy tylko scenariuszy, w których jednocześnie skonfigurowany jest RoleMapper oraz konfiguracja serwera budowana jest przez `OpcUaServerConfig.copy()`. Serwery nieprzechodzące przez tę metodę kopiowania lub nieużywające sesji anonimowych nie są narażone.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/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:XEclipse Milo
APPEclipse1.0.0 – 1.1.5 (bez)
Powiązane podatności
Eclipse Milo: padding oracle w uwierzytelnianiu OPC-UA umożliwia odzyskanie hasła
Eclipse Milo: ominięcie autoryzacji przez batch w usłudze Call
Eclipse Milo: wyczerpanie pamięci przez niekompletne chunki OPC UA
In Eclipse Milo versions 1.0.0 through 1.1.4, monitored-item quota accounting is not exception-safe: if item c...
In Eclipse Milo versions 0.6.0 through 1.1.4, OPC UA server diagnostics nodes do not enforce access authorizat...