Në PostgreSQL është eliminuar një vunerabilitet që u përdor gjatë sulmit ndaj BeyondTrust

Janë formuar azhurnime korrigjuese për të gjitha degët e mbështetura të PostgreSQL 17.3, 16.7, 15.11, 14.16 dhe 13.19, në të cilat janë korrigjuar më shumë se 70 defekte dhe është eliminuar një vunerabilitet (CVE-2025-1094), i angazhuar në fund të dhjetorit në sulmin ndaj kompanisë BeyondTrust dhe Ministrisë së Financave të SHBA. Problemi në PostgreSQL u zbulua gjatë analizës së vunerabilitetit të largët (CVE-2024-12356) në shërbimet BeyondTrust PRA (Privileged Remote Access) dhe BeyondTrust RS (Remote Support), gjatë shfrytëzimit të të cilit u angazhua një vunerabilitet i panjohur më parë (0-day) në libpq.

Si rezultat i sulmit, të dhënat e sulmuesve arritën të fitonin një çelës për akses në API-në e aplikuar për ofrimin e shërbimeve të mbështetjes teknike për klientët e shërbimeve SaaS të BeyondTrust. Ky API u përdor për të rivendosur fjalëkalimin dhe për të komprometuar infrastrukturën e Ministrisë së Financave të SHBA që përdor produktet e BeyondTrust. Gjatë sulmit, sulmuesit arritën të ngarkonin dokumente konfidenciale dhe morën akses në stacionet e punës së punonjësve të ministrisë.

Vulnerabiliteti shfaqet në bibliotekën libpq, e cila ofron API për ndërveprimin me DBMS nga programet në gjuhën C (përveç bibliotekës, janë implementuar gjithashtu bibliotekat-ndërlidhëse për C++, Perl, PHP dhe Python). Problemi preku aplikacionet që përdorin funksionet PQescapeLiteral(), PQescapeIdentifier(), PQescapeString() ose PQescapeStringConn() për të ndaluar simbolet speciale dhe për të neutralizuar citatet.

Sulmuesi mund të arrijë të fusë kodin e tij SQL, nëse teksti i marrë nga jashtë paraqitet në përdorim brenda një kërkese SQL, duke u ekranuar me funksionet e sipërpërmendura të libpq. Në aplikacionet BeyondTrust, kërkesat e tilla të ekranizuara u kaluan përmes utilitarit të linjës së komandave psql. Vulnerabiliteti shkaktohet nga mungesa e kontrollit të saktësisë së simboleve Unicode të përdorura në tekstin e ekranizuar, duke lejuar kalimin e normalizimit të citateve përmes specifikimit të sekuencave të shumtë byte UTF-8 të pavlefshme.

Për eksploatimin e dobësisë, mund të përdoret një karakter i papërshtatshëm UTF-8, i përbërë nga bajtët 0xC0 dhe 0x27 («└'»). Bajte 0x27 në kodimin ASCII korrespondon me thonjëzën e vetme («‘»), që duhet të ekranohet. Në kodin e ekranimit, kombinimi i bajtëve 0xC0 dhe 0x27 trajtohet si një karakter Unicode. Si rezultat, bajti 0x27 në një renditje të tillë mbetet i paekranuar, ndërsa gjatë përpunimit të pyetjeve SQL në utilitarin psql, ai trajtohet si thonjëz.

fillimin e pyetjeve SQL përmes utilitarit psql, për të organizuar ekzekutimin e kodit të rastësishëm, mund të përdoret zëvendësimi në stringun e komandës «\!», e cila është e destinuar në psql për të filluar programe të rastësishme. Për shembull, për të filluar në serveri Mund të kaloni vlerën "hax\xC0′; \! id #" në utilitarin "id". Në shembullin më poshtë, duke përdorur një skritp PHP dbquote, i cili përdor funksionin PHP pg_escape_string që punon mbi funksionin PQescapeString nga libpq: $ echo -e "hello \xC0'world'" | ./dbquote 'hello └'world»' $ quoted=$(echo -e "hax\xC0′; \! id # " | ./dbquote) $ echo "SELECT COUNT(1) FROM gw_sessions WHERE session_key = $quoted AND session_type = 'sdcust' AND (expiration IS NULL OR expiration>NOW())" | psql -e SELECT COUNT(1) FROM gw_sessions WHERE session_key = 'hax└'; ERROR: byte sequence e pavlefshme për kodimin "UTF8": 0xc0 0x27 uid=1000(myexamplecompany) gid=1000(myexamplecompany)

Burimi: opennet.ru

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster