drošība · 6 min · 25.08.2026

Keycloak sesija pārlec pie paroles maiņas bez e-pasta žetona: divās nedēļās 20 aizvērtu CVE

Īpaši sagatavots pieprasījums Keycloak reset-credentials galapunktam liek autentifikācijas sesijai pārlēkt tieši pie paroles maiņas soļa. Žetons, ko serveris parasti nosūta e-pastā, netiek pieprasīts. Nepieteicies uzbrucējs tā iegūst jebkuru kontu, arī administratora. Kļūdai piešķirts numurs CVE-2026-18963 un Red Hat vērtējums 9,1 no 10.

Labojums ir Keycloak 26.7.2, kas iznāca 19. augustā. Tajā pašā laidienā aizvērti astoņi CVE. Divi no tiem ļauj pārņemt svešu kontu. Red Hat build of Keycloak lietotājiem labojumi ir operatora paketēs 26.4.15-1 un 26.6.6-1.

Kas notiek reset-credentials plūsmā

Paroles atjaunošanu Keycloak apkalpo atsevišķa autentifikācijas plūsma ar nosaukumu reset-credentials. Parastā gaita ir šāda. Lietotājs pieteikšanās logā nospiež saiti par aizmirstu paroli, ievada lietotājvārdu vai e-pasta adresi, serveris uzsāk autentifikācijas sesiju un izsūta vienreizēju darbības žetonu. Tikai pēc šī žetona atvēršanas plūsma nonāk pie soļa, kur ievada jauno paroli.

Red Hat kļūdas cēloni apraksta kā “improper state validation within the reset-credentials authentication flow”, tas ir, nepareizu stāvokļa pārbaudi šajā plūsmā. Serveris pieņēma paroles maiņas soli arī tad, ja iepriekšējais solis ar žetonu nebija izpildīts. Uzbrucējam pietiek zināt lietotājvārdu vai e-pasta adresi. Kļūdu Red Hat pieteica Džeimss Paremeins.

CVSS vektors Red Hat lapā ir AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N. Trīs vietas tajā izskaidro 9,1 punktu: uzbrukums iet pa tīklu, tiesības nav vajadzīgas un cietušajam nekas nav jādara. Klasifikācija ir CWE-640, vāja aizmirstas paroles atjaunošanas mehānika.

Kritisko vērtējumu šeit dod trīs nulles CVSS vektorā. Nav vajadzīgs konts, nav vajadzīgas tiesības, nav vajadzīga cietušā līdzdalība.

Uzbrukumam nepieciešams, lai realm būtu ieslēgta aizmirstas paroles funkcija. Keycloak dokumentācija to apraksta kā slēdzi, kas jāpārvieto uz ON, tāpēc tukšā jaunā realm tā nestrādā. Praksē to ieslēdz gandrīz katrā instalācijā, kur pieteikšanos lieto cilvēki, nevis tikai servisu konti, jo bez tās paroles atjaunošana krīt uz administratoru pleciem.

Aizmirstas paroles funkcija prasa arī aizpildītu e-pasta konfigurāciju, proti, Host un From lauku Email cilnē. Instalācijās, kur SMTP nav uzstādīts, slēdzis parasti paliek izslēgts. Tas ir vienīgais faktors, kas šo caurumu tur zem 100 % pakļautības.

Ko darīt, kamēr atjauninājums nav uzlikts

Red Hat publicējis vienu pagaidu risinājumu: izslēgt paroles atjaunošanu visos realm. Administratora konsolē tas ir Realm settings, tad Login, tad Forgot password uz Off. Pēc tam aizmirstu paroļu maiņa jāapkalpo administratoriem ar rokām. Lielās instalācijās šis solis maksā darba laiku, tāpēc atjaunināšana parasti izmaksā mazāk.

Keycloak notikumu žurnālā paroles maiņu fiksē notikums UPDATE_PASSWORD, atjaunošanas pieprasījumu SEND_RESET_PASSWORD. Administratora konsolē sadaļā Realm settings, Events var salīdzināt, cik reižu parole nomainīta bez iepriekšēja atjaunošanas e-pasta. Pēc noklusējuma lietotāju notikumu saglabāšana Keycloak ir izslēgta, tāpēc daudzās instalācijās šāda pārbaude neko nedos. Tur atliek pārlūkot apgrieztā starpniekservera piekļuves žurnālus un skatīt pieprasījumus uz login-actions/reset-credentials.

Otrs konta pārņemšanas caurums tajā pašā laidienā

CVE-2026-15571 skar veco klienta iniciēto kontu sasaistes galapunktu. Aizsardzība pret svešiem pieprasījumiem balstījās uz jaucējvērtību, ko ļauns OIDC klients spēj paredzēt. Ja lietotājs autentificējas uzbrucēja kontrolētā klientā, uzbrucējs var uzģenerēt derīgu sasaistes URL un piesaistīt cietušā kontu savai ārējai identitātei. Pēc tam pieteikšanās notiek cietušā vietā. Vērtējums šeit ir 7,3, jo vajadzīga lietotāja darbība.

Abas kļūdas reģistrētas Keycloak kļūdu sistēmā ar numuriem 51833 un 51832. Nevienā no ierakstiem nav ne tehniska apraksta, ne uzbrukuma soļu. Iekšējā diskusija palikusi slēgta.

Pārējie seši CVE

  • CVE-2026-14613: smalko administratora tiesību apiešana caur lomu grupu galapunktu.
  • CVE-2026-15945: grupu hierarhijas meklēšana atklāj paslēptas vecāku grupas, kad ieslēgts FGAP v2.
  • CVE-2026-17048: administratora REST API atdod no seifa izgūtus rotētus klientu noslēpumus.
  • CVE-2026-45292: neierobežota atmiņas piešķire OpenTelemetry Java SDK W3C Baggage apstrādē.
  • CVE-2026-59888 un CVE-2026-59889: divas jackson-databind kļūdas, tāpēc bibliotēka pacelta uz 2.21.5.

Laidiena piezīmēs ir arī nepilnība bez CVE numura. Komanda show-config izdrukā seifa atslēgu krātuves paroli atklātā tekstā. Quarkus 26.7.2 pacelts uz 3.33.3.1, tāpēc pirms atjaunināšanas ir vērts pārlasīt migrācijas piezīmes.

Divdesmit CVE divās nedēļās

Iepriekšējais laidiens 26.7.1 iznāca 5. augustā ar divpadsmit aizvērtiem CVE. Starp tiem bija SAML identitātes piegādātāja iniciētā brokera pieteikšanās un noklusētā dinamiskā klientu reģistrācija. Kopā ar 19. augusta astoņiem tas ir divdesmit CVE divās nedēļās vienā produktā, kura vienīgais uzdevums ir sargāt pieteikšanos.

Keycloak ir CNCF inkubējošs projekts kopš 2023. gada 10. aprīļa. CNCF 2026. gada janvāra aptaujā to nosauca 42 % respondentu starp projektiem, kas vēl nav sasnieguši graduated statusu. GitHub repozitorijam ir apmēram 36 000 zvaigžņu. Tā ir lielākā kopiena starp atvērtā koda pieteikšanās serveriem. Tā pati skaitļa puse nozīmē, ka viena plūsmas kļūda skar ļoti daudz iekšējo portālu, API vārteju un Kubernetes paneļu.

Izmantošanas gadījumi nav zināmi. Publisks ekspluatācijas kods 24. augustā nebija atrodams. Versija 26.7.2 pieejama no 19. augusta. Paroles atjaunošanas izslēgšana joprojām ir vienīgais publicētais pagaidu risinājums.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no drošībasaistītie