En ny angrebsvektor er blevet fundet for Apache http-serveren, som forblev ukorrigeret i opdatering 2.4.50 og giver adgang til filer fra områder uden for webstedets rodmappe. Derudover har forskere fundet en metode, der tillader, i nærværelse af visse ikke-standardindstillinger, ikke kun at læse systemfiler, men også at fjernafvikle deres kode på serveren. Problemet vises kun i udgivelser 2.4.49 og 2.4.50; tidligere versioner er ikke berørt. For at eliminere den nye sårbarhed blev Apache httpd 2.4.51 hurtigt frigivet.
Det nye problem (CVE-2021-42013) er i det væsentlige identisk med den oprindelige sårbarhed (CVE-2021-41773) i 2.4.49, den eneste forskel er den anderledes kodning af ".."-tegnene. Specifikt blokerede version 2.4.50 muligheden for at bruge "%2e"-sekvensen til at kode et punktum, men manglede muligheden for at dobbeltkode det, når "%%32%65"-sekvensen blev angivet. server afkodede den til "%2e" og derefter til ".", dvs. tegnene "../" for at gå til den forrige mappe kunne kodes som ".%%32%65/".
Hvad angår udnyttelse af sårbarheden gennem kodekørsel, er dette muligt, når mod_cgi er aktiveret, og basisstien bruges, hvor udførelse af CGI-scripts er tilladt (f.eks. hvis ScriptAlias-direktivet er aktiveret eller ExecCGI-flaget er angivet i Optionsdirektivet). Et obligatorisk krav for et vellykket angreb er også eksplicit at give adgang til mapper med eksekverbare filer, såsom /bin, eller adgang til filsystemets rod "/" i Apache-indstillingerne. Da en sådan adgang typisk ikke gives, har kodeudførelsesangreb kun lidt anvendelse på rigtige systemer.
Samtidig forbliver angrebet for at opnå indholdet af vilkårlige systemfiler og kildetekster til webscripts, der kan læses af den bruger, som http-serveren kører under, relevant. For at udføre et sådant angreb er det nok at have en mappe på webstedet konfigureret ved hjælp af "Alias" eller "ScriptAlias" direktiverne (DocumentRoot er ikke nok), såsom "cgi-bin".
Et eksempel på en udnyttelse, der giver dig mulighed for at udføre "id"-værktøjet på server: curl 'http://192.168.0.1/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh' —data 'echo Indholdstype: tekst/plain; echo; id' uid=1(daemon) gid=1(daemon) grupper=1(daemon)
Et eksempel på udnyttelser, der giver dig mulighed for at vise indholdet af /etc/passwd og et af webscripterne (for at udlæse scriptkoden skal den mappe, der er defineret gennem "Alias"-direktivet, for hvilken scriptudførelse ikke er aktiveret, angives som basismappen): curl 'http://192.168.0.1 .32/cgi-bin/.%%65%32/.%%65%32/.%%65%32/.%%65%32/.% %65%192.168.0.1/etc/passwd' curl 'http: //32/aliaseddir/.%%65%32/.%%65%32/.%%65%32/.%%65%32/. %%65%2/usr/local/apacheXNUMX/cgi -bin/test.cgi'
Problemet påvirker primært løbende opdaterede distributioner som Fedora, Arch Linux og Gentoo, såvel som FreeBSD-porteringer. Pakker i de stabile grene af konservative serverdistributioner Debian, RHEL, Ubuntu og SUSE er ikke sårbare. Problemet opstår ikke, hvis adgang til mapper eksplicit nægtes ved hjælp af indstillingen "kræv alle nægtede".
Kilde: opennet.ru
