Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 8 Oct 2021 23:08:21 +0200
From: Solar Designer <solar@...nwall.com>
To: oss-security@...ts.openwall.com
Subject: Re: CVE-2021-42013: Path Traversal and Remote Code Execution in Apache HTTP Server 2.4.49 and 2.4.50 (incomplete fix of CVE-2021-41773)

On Fri, Oct 08, 2021 at 08:37:33PM +0200, Yann Ylavic wrote:
> On Fri, Oct 8, 2021 at 8:53 AM Roman Medina-Heigl Hernandez
> <roman@...labs.com> wrote:
> >
> > I posted RCE exploit for this (it works for both CVEs: 41773 & 42013)
> > and some other details regarding requirements / exploitability, which
> > you may find useful at:
> >
> > https://twitter.com/roman_soft/status/1446252280597078024
> 
> Thanks, that's fair analysis.

Yann is probably referring to the full tweet thread by Roman, not just
the one tweet that Roman posted in here.  Let me correct that:

---
Román Medina-Heigl Hernández
@roman_soft

RCE exploit both for Apache 2.4.49 (CVE-2021-41773) and 2.4.50 (CVE-2021-42013):
root@...06:~# curl 'http://192.168.0.191/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh' --data 'echo Content-Type: text/plain; echo; id'
uid=1(daemon) gid=1(daemon) groups=1(daemon)

Requirements: 1/ mod_cgi enabled (not default but easy) AND 2/ target
binary should be +x (default for /bin/sh) AND 3/ apache permissions
granted for /bin or / (not default and difficult/unrealistic)

So IMHO only "special" setups will be vulnerable to this RCE. Same
happens for the "arbitrary file read" exploits you have seen in last few
days because all of them need requirement #3

Both CVEs are indeed almost the same path-traversal vulnerability (2nd
one is the uncomplete fix for 1st one).

Path traversal only work from a mapped URI (e.g. via "Alias" or
"ScriptAlias" Apache directives). DocumentRoot only is not sufficient.

"/cgi-bin/" is mapped by default (ScriptAlias) so that's why it's being
used before the path traversal string. Besides, ScriptAlias marks as
Exec (for Apache) all the contents for the given directory (regardless
the file extensions).

So (if mod_cgi is enabled) Apache will run our target
(cgi-bin/../../../../../bin/sh) instead of just reading it.

Perhaps the more realistic (ab)use-case for this vuln could be leaking
CGI sources on a cgi-enabled web-server. But you'd need to find a
non-executable mapped URI (via Alias) and then craft a payload similar
to: aliaseddir/../../../../../usr/local/apache2/cgi-bin/cgitobeleaked

End of fun :-)
---

Alexander

Powered by blists - more mailing lists

Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.