Noong Hunyo 2, 2022, natuklasan ang CVE-2022-26134 “Confluence,” isang kahinaan sa pagpapatupad ng zero-day remote code, sa lahat ng bersyon ng Confluence Server at Data Center. Natukoy na ang pag-atake ay may mataas na kalubhaan (CVSS:9.0/10.0) ayon sa isang security advisory na ibinigay ng Atlassian.
Ang kahinaan ng kritikal na kalubhaan ay nakatanggap ng ID ng CVE-2022-26134, at maaaring samantalahin ng isang banta ng aktor ang kahinaang ito upang maisagawa ang hindi napatotohanan na pagpapatupad ng malayuang code gamit ang OGNL injection. Noong nakaraang taon, nahaharap din ang confluence sa isang kritikal na kahinaan sa pagpapatupad ng remote code (CVE-2021-26084) sa Confluence Server at Confluence Data Center. Ang kahinaan ay nagmumula sa isang depekto sa pag-iniksyon ng OGNL at nagbibigay-daan sa mga hindi na-authenticate na umaatake na magsagawa ng di-makatwirang code sa mga instance ng Confluence Server o Data Center.
Ano ang OGNL injection?
Ang isang open-source Expression Language (EL) para sa mga Java object ay tinatawag na Object-Graph Navigation Language. Sa partikular, pinapayagan ng OGNL ang pagsusuri ng mga EL expression sa Apache Struts, ang sikat na framework para sa paglikha ng mga Java-based web application sa mga setting ng negosyo. Ang pinakamatinding depekto sa Apache Struts ay nauugnay sa mga OGNL expression injection attack, na nagpapahintulot sa mga invalidated expression na suriin laban sa value stack, na nagbibigay sa isang attacker ng kakayahang baguhin ang mga variable ng system o magpatakbo ng arbitrary code.
Teknikal na Pagtatasa:
Ang CVE-2022-26134 ay isang remote code execution vulnerability na nagreresulta sa code execution sa konteksto ng Confluence server. Ang isang banta na aktor na naghahanap upang gamitin ang kahinaan na ito ay maglalagay ng nakakahamak na payload sa URI ng isang kahilingan sa HTTP. Lumilitaw na gumagana ang anumang paraan ng HTTP, valid man (GET, POST, PUT, atbp.) o di-wasto.
Ang pinakasimpleng anyo ng isang URL na naglalaman ng nakakahamak na payload ay:
%24%7B%40java.lang.Runtime%40getRuntime%28%29.exec%28%22touch%20/tmp/r7%22%29%7D/
Sa itaas, ang pagsasamantala ay naka-encode ng URL. Kapag nagde-decode ng URL, natatanggap namin ang sumusunod na pagsasamantala:
${@java.lang.Runtime@getRuntime().exec(“touch /tmp/r7”)} , na lilikha ng bagong file sa direktoryong /tmp/.
Sa nakuhang trapiko ng kahilingan sa GET sa ibaba, makikita mo ang threat actor na nagsasagawa ng OGNL injection upang samantalahin ang vulnerability na naroroon sa confluence.

Larawan: 1
Maaaring gumamit ng X-Cmd-Response header ang mga banta na aktor na gustong gamitin ang kahinaang ito ngunit kailangan din ng tugon ng nakompromisong server.
Halimbawa, ito ay nagpapatupad ng id command at tumatanggap ng output sa X-Cmd-Response header ng tugon ng vulnerable server.
Larawan:2
Root Cause:
Ang pangunahing sanhi ng kahinaan ay nasa paraan ng findValue(str) sa loob ng function na translateVariables. Tinatawag ng server ang paraan ng translateVariables sa sandaling matanggap nito ang kahilingan sa HTTP.
Kapag tinawag ang TextParseUtil method na may kahilingan na URI na ibinigay bilang expression parameter sa method, pagkatapos i-compile ang string at alisin ito sa pattern na “\\\\$\\\\{([^}]*)\\\\}” ang natitirang code ay inililipat sa findValue method, na sa sitwasyong ito ay ipapatupad ang code.

Larawan: 3
Gaya ng nabanggit, ang pangunahing problema ay ang tawag para sa translateVariables na may URI bilang argumento. Ang pag-aayos na ibinigay ng Atlassian ay may kasamang iba't ibang mga pagbabago.
Ang una ay ang pagdaragdag ng ligtas na expression check para sa input expression sa findValue method.
Ang pangalawa ay ang pagtatakda ng finalNamespace at finalActionName na mga variable nang hindi gumagamit ng translateVariables na paraan.
Ang huling pagbabago ay ang alisin ang OgnValueStack, dahil hindi ito ginagamit kung ang mga function ng translateVariables ay hindi tinatawag.
Bago ang Patch:

Larawan: 4
Pagkatapos ng Patch:

Larawan: 5
Kasama rin ng Atlassian ang SafeExpressionUtil.class sa xworks jar. Upang suriin ang mga expression kapag tinawag ang findValue, inilagay ang SafeExpressionUtil.class sa OgnlValueStack.class upang magsagawa ng pag-filter ng mga hindi ligtas na expression. Halimbawa:

Larawan: 6
Paano pinoprotektahan ng Quick Heal ang mga gumagamit nito
Nagbibigay ang Quick Heal ng malawak na proteksyon laban sa pagsasamantala sa ganitong uri ng kahinaan. Tinutukoy at hinaharangan ng HIPS module sa QH ang mga malisyosong aktibidad tulad ng malisyosong trapiko sa network, malisyosong file, at malisyosong IP din para protektahan ang aming mga customer.
Mga Highlight ng Detection
Batay sa File
· Exp.CVE-2022-26134.46649
· Exp.CVE-2022-26134.46650.GC
· JS.Backdoor.38151
· ELF.Trojan.45098.GC
· Script.Trojan.44757
Nakabatay sa Network
· HTTP/CVE-2022-26134!RP.46663
· HTTP/CVE-2022-26134!RP.46665
· HTTP/CVE-2022-26134!RP.46686
· HTTP/CVE-2022-26134!RP.46687
Mga IOC
Hash
· 4c02c3a150de6b70d6fca584c29888202cc1deef
· 80b327ec19c7d14cc10511060ed3a4abffc821af
· 75259ee2db52d038efea5f939f68f122
· ea18fb65d92e1f0671f23372bacf60e7
· 6078c8a0c32f4e634f2952e3ebac2430
· f8df4dd46f02dc86d37d46cf4793e036
· df096b253754a66cded9ad81b8ea27f5
· 3eb5db35032f5147761f7f8eb8e661c2
· de7a94deccdb9a274ed3c06b28993c0c
IP
154.146.34.145
154.16.105.147
156.146.34.46
156.146.34.52
156.146.34.9
156.146.56.136
198.147.22.148
198.147.22.148
221.178.126.244
45.43.19.91
59.163.248.170
64.64.228.239
66.115.182.102
66.115.182.111
67.149.61.16
98.32.230.38



