Pagkahuyang sa Apache Tomcat nga nagtugot kanimo sa pag-ilis sa JSP code ug pagkuha sa mga file sa aplikasyon sa web

Nadiskobrehan sa mga tigdukiduki gikan sa kompanya sa China nga Chaitin Tech pagkahuyang (CVE-2020-1938) sa Apache Tomcat, usa ka bukas nga pagpatuman sa Java Servlet, JavaServer Pages, Java Expression Language ug Java WebSocket nga mga teknolohiya. Ang pagkahuyang gi-assign sa code name nga Ghostcat ug usa ka kritikal nga lebel sa kagrabe (9.8 CVSS). Ang problema nagtugot, sa default configuration, pinaagi sa pagpadala sa usa ka hangyo sa network port 8009, sa pagbasa sa mga sulod sa bisan unsa nga mga file gikan sa web application directory, lakip na ang mga file nga adunay mga setting ug aplikasyon source codes.

Ang vulnerability usab nagpaposible sa pag-import sa ubang mga file ngadto sa application code, nga nagtugot sa code execution sa server kung ang aplikasyon nagtugot sa mga file nga ma-upload sa server (pananglitan, ang usa ka tig-atake mahimong mag-upload og JSP script nga nagtakuban isip usa ka imahe pinaagi sa ang porma sa pag-upload sa imahe). Ang pag-atake mahimong himuon kung posible nga magpadala usa ka hangyo sa usa ka pantalan sa network nga adunay usa ka handler sa AJP. Sumala sa pasiuna nga datos, online nakit-an labaw pa sa 1.2 milyon nga mga host nga nagdawat mga hangyo pinaagi sa AJP protocol.

Ang pagkahuyang anaa sa AJP protocol, ug dili gitawag sayop sa pagpatuman. Dugang sa pagdawat sa mga koneksyon pinaagi sa HTTP (port 8080), ang Apache Tomcat sa default nagtugot sa pag-access sa usa ka web application pinaagi sa AJP protocol (Apache Jserv Protocol, port 8009), nga usa ka binary analogue sa HTTP nga gi-optimize alang sa mas taas nga performance, kasagaran gigamit sa paghimo sa usa ka cluster sa Tomcat server o sa pagpadali sa interaksyon sa Tomcat sa usa ka reverse proxy o load balancer.

Naghatag ang AJP og usa ka sumbanan nga function alang sa pag-access sa mga file sa server, nga mahimong magamit, lakip ang pagkuha sa mga file nga dili ipailalom sa pagbutyag. Ang AJP kinahanglan nga ma-access lamang sa kasaligan nga mga server, apan sa tinuud ang default nga configuration sa Tomcat nagpadagan sa handler sa tanan nga mga interface sa network ug gidawat ang mga hangyo nga wala’y pagkumpirma. Posible ang pag-access sa bisan unsang mga file sa aplikasyon sa web, lakip ang mga sulud sa WEB-INF, META-INF ug bisan unsang ubang mga direktoryo nga gihatag pinaagi sa usa ka tawag sa ServletContext.getResourceAsStream(). Gitugotan ka usab sa AJP nga mogamit bisan unsang file sa mga direktoryo nga ma-access sa aplikasyon sa web ingon usa ka script sa JSP.

Ang problema nagpakita sukad nga gipagawas ang Tomcat 13.x branch 6 ka tuig na ang milabay. Dugang pa sa problema sa Tomcat mismo makaapekto ug mga produkto nga naggamit niini, sama sa Red Hat JBoss Web Server (JWS), JBoss Enterprise Application Platform (EAP), ingon man mga self-contained nga web application nga naggamit Spring boot. Parehong kahuyang (CVE-2020-1745) karon sa web server sulog sa ilawom, gigamit sa Wildfly application server. Sa JBoss ug Wildfly, ang AJP gipalihok pinaagi sa default sa standalone-full-ha.xml, standalone-ha.xml ug ha/full-ha nga mga profile sa domain.xml. Sa Spring Boot, ang suporta sa AJP gi-disable pinaagi sa default. Sa pagkakaron, ang lain-laing mga grupo nag-andam og labaw sa usa ka dosena nga nagtrabaho nga mga ehemplo sa mga pagpahimulos (
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11).

Naayo ang pagkahuyang sa mga pagpagawas sa Tomcat 9.0.31, 8.5.51 ΠΈ 7.0.100 (pagmentinar sa 6.x nga sanga gihunong). Mahimo nimong masubay ang pagkaanaa sa mga update sa mga kit sa pag-apod-apod sa kini nga mga panid: Debian, Ubuntu, RHEL, Fedora, SUSE, FreeBSD. Isip usa ka workaround, mahimo nimong i-disable ang serbisyo sa Tomcat AJP Connector (pagbugkos sa usa ka socket sa pagpaminaw sa localhost o pagkomento sa linya nga adunay Connector port = "8009") kung dili kinahanglan, o pagpahimutang gipamatud-an nga pag-access gamit ang "sekreto" ug "address" nga mga hiyas, kung ang serbisyo gigamit aron makig-uban sa ubang mga server ug proxy nga gibase sa mod_jk ug mod_proxy_ajp (mod_cluster wala mosuporta sa authentication).

Source: opennet.ru

Idugang sa usa ka comment