drošība · 6 min · 22.07.2026

Gitea Docker attēls pēc noklusējuma uztic X-WEBAUTH-USER galveni jebkuram IP — uzbrucējs iejūtas jebkurā lietotājā

Gitea oficiālais Docker attēls līdz versijai 1.26.2 piegādāja konfigurācijas failu ar bīstamu noklusējumu. Iestatījums REVERSE_PROXY_TRUSTED_PROXIES tajā bija uzstādīts uz zvaigznīti, tāpēc serveris uzticējās reversā starpniekservera autentifikācijas galvenei no jebkuras IP adreses. Ja instancē bija ieslēgta reversā starpniekservera pieteikšanās, uzbrucējs, kas sasniedz konteinera HTTP portu, varēja nosūtīt galveni X-WEBAUTH-USER un pieteikties kā jebkurš lietotājs, kura pieteikšanās vārdu viņš zina vai uzmin.

Kļūda saņēma apzīmējumu CVE-2026-20896 un CVSS novērtējumu 9,8 no 10. Ekspluatācija notiek pirms autentifikācijas un bez paroles. Pirmais mērķis ir administratora konti ar paredzamiem vārdiem, piemēram, admin vai gitea_admin. Labojums iznāca versijā 1.26.3 jūnija beigās, kur zvaigznīte ir noņemta un reversā starpniekservera autentifikācija kļuvusi par funkciju, ko ieslēdz pats administrators.

Gitea ir viegla pašmitināta koda krātuve, ko bieži izvēlas komandas, kuras negrib savu kodu turēt GitHub vai GitLab mākonī. Tā darbojas ar vienu izpildāmo failu. Docker attēls ir populārākais veids, kā to palaist, tāpēc kļūda skāra tieši visizplatītāko instalācijas ceļu. Kas Gitea instalē no pirmkoda, saņem konfigurāciju ar drošo noklusējumu. Kas paņem gatavo Docker attēlu, saņēma zvaigznīti, kaut arī abos gadījumos programma ir tā pati.

Kā galvene kļuva par atslēgu

Reversā starpniekservera autentifikācija ir izplatīta shēma. Priekšā stāv starpniekserveris, kas pārbauda lietotāju un pēc tam nodod lietotājvārdu aizmugurē esošajai lietotnei ar HTTP galveni. Lietotne uzticas šai galvenei, jo pieņem, ka to var atsūtīt tikai pats starpniekserveris. Tieši tāpēc ir svarīgi precīzi norādīt, kuriem IP serveris drīkst uzticēties.

Gitea dokumentācija iesaka drošo vērtību 127.0.0.0/8,::1/128, kas aptver tikai lokālo resursdatoru. Docker attēlā tās vietā bija zvaigznīte, kas nozīmē visas adreses uzreiz. Drošības pētnieks Ali Mustafa sekas aprakstīja tieši.

Kad reversā starpniekservera pieteikšanās ir ieslēgta, šī zvaigznīte uztic katru avota IP, tāpēc ikviens, kas var sasniegt portu, varēja nosūtīt X-WEBAUTH-USER galveni un iegūt piekļuvi.

Galvene X-WEBAUTH-USER pati par sevi nav kļūda. Tā ir standarta veids, kā starpniekserveris pasaka lietotnei, kurš lietotājs jau ir apstiprināts. Bīstama tā kļūst tikai tad, kad lietotne pieņem šo galveni no jebkura sūtītāja. Drošā uzstādījumā serveris to lasa tikai no zināmām starpniekservera adresēm un pārējos gadījumos ignorē.

No uzbrukuma puses tas izskatās vienkārši. Nekāda paroles minēšana, nekāda pikšķerēšana. Pietiek ar vienu HTTP pieprasījumu, kurā ierakstīts upura lietotājvārds. Serveris pats pieņem, ka priekšā ir uzticams starpniekserveris, kaut arī pieprasījums nāca tieši no interneta.

Uzbrukumi jau sākušies

Mākoņdrošības uzņēmums Sysdig fiksēja pirmo ekspluatācijas mēģinājumu 13 dienas pēc publiskās atklāšanas. Pieprasījums nāca no ProtonVPN adreses 159.26.98.241. Šajā brīdī runa ir par izlūkošanu, nevis veiksmīgu ielaušanos, tomēr novērotāji uzsver, cik ātri uzbrucēji pievēršas publiski aprakstītam caurumam.

Sysdig atzīmē, ka mēģinājums nāca no anonimizēta tīkla, kas apgrūtina uzbrucēja izsekošanu. Pēc publiskas atklāšanas ekspluatācijas kods parasti izplatās dažu dienu laikā, tāpēc 13 dienas ir tikai sākums. Administratoram, kas neseko drošības ziņām, instance var palikt vaļā nedēļām ilgi.

Internetam pieejamu Gitea instanču ir aptuveni 6200. Ne visas izmanto ievainojamo konfigurāciju, taču pietiek ar vienu atvērtu portu un ieslēgtu reversā starpniekservera pieteikšanos, lai konts nonāktu svešās rokās. Pašmitināta koda krātuve glabā pirmkodu, izlaišanas noslēpumus un bieži arī CI atslēgas, tāpēc viens pārņemts administratora konts atver piekļuvi visai izstrādes plūsmai. No turienes uzbrucējs var ievietot aizmugurisku kodu tieši krātuvē, ko komanda vēlāk pati izvieto ražošanā.

Otrs caurums tajā pašā laidienā

Blakus galvenajai kļūdai atklāja arī CVE-2026-27771 ar novērtējumu 8,2. Tā skar Gitea iebūvēto konteineru reģistru. Reģistra galapunkti pasniedza attēlu manifestus un slāņus anonīmiem pieprasījumiem pat tad, kad repozitorijs saskarnē bija atzīmēts kā privāts. Šo kļūdu izlaboja versijā 1.26.2 maijā, tātad instance uz 1.26.2 vēl ir pakļauta pirmajai kļūdai līdz atjauninājumam uz 1.26.3.

Abas kļūdas dala vienu rakstu. Autentifikācijas robeža pastāv teorētiski, bet netiek piespiesta tur, kur uzbrucējs patiešām darbojas. Vienā gadījumā runa ir par galveni, ko serveris pieņem par patiesu. Otrā gadījumā par reģistru, kas atdod privātus slāņus bez jautājuma.

Ko darīt tagad

Vienkāršākais solis ir atjauninājums uz Gitea 1.26.3 vai jaunāku. Kamēr tas notiek, der vairākas pagaidu darbības:

  • ierobežot HTTP porta piekļuvi tikai apstiprinātiem starpniekserveriem;
  • atslēgt reversā starpniekservera autentifikāciju, ja tā nav vajadzīga;
  • uzstādīt REQUIRE_SIGNIN_VIEW=true kā starpposma aizsardzību;
  • pārskatīt žurnālus, meklējot anonīmus reģistra pieprasījumus un aizdomīgas galvenes vērtības.

Docker attēlu gadījums atkārtojas regulāri. Ērts noklusējums, kas paredzēts ātrai palaišanai, kļūst par drošības robu ražošanas vidē. Šoreiz starp bīstamo un drošo uzstādījumu bija tikai viena rinda konfigurācijas failā. Gitea instances skaitītājs rāda tūkstošiem serveru. Daļa no tiem šodien joprojām atbild uz X-WEBAUTH-USER galveni no jebkuras adreses.

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