[Esapi-dev] DefaultValidator and validating canonical paths (and input)

Jim Manico jim.manico at owasp.org
Thu Dec 9 14:53:16 EST 2010


David,

I think the code as it stands is correct.

The point of  this function is to REJECT paths like...

../conf/

The goal it so stop path manipulation attacks, something Java in general is
very vulnerable to.

We are essentially saying that, if the raw input path is not the same as the
canonical form of that path, then fully reject it.

This is very important when user input drives FileIO (which is itself
incredibly dangerous and can be designed around).

Does this make sense?

 - Jim

-----Original Message-----
From: esapi-dev-bounces at lists.owasp.org
[mailto:esapi-dev-bounces at lists.owasp.org] On Behalf Of Peterson David
Sent: Thursday, December 09, 2010 7:43 AM
To: esapi-dev at lists.owasp.org
Subject: [Esapi-dev] DefaultValidator and validating canonical paths (and
input)

in esapi-2.0_rc10, in DefaultValidator.getValidDirectoryPath(), towards 
the bottom of the method it checks that the canonical form matches the 
input.  to do this, it gets the canonical path of the File created using 
the input string.  that canonical path is then validated (and encoded, 
among other things).

then it checks to see if the validated/encoded canonical path is the 
same string as the input string.  this seems odd to me because the input 
path may be something like "../conf/" (and the canonical path obviously 
will not).

perhaps getValidDirectoryPath() expects a full directory path for it's 
input argument? but that doesn't make much sense (and isn't indicated in 
the docs).

i think there is a bug in the code, line 398 in DefaultValidator should 
read:
     if (!canonical.equals(canonicalPath))
instead of:
     if (!canonical.equals(input))

that seems to make sense of those three lines of code.  is this a 
candidate for the next release, possibly?

thanks
-- 

*DAVE PETERSON*
Senior Software Engineer, *Axway*
Phoenix, Arizona 85054
<mailto:dpeterson at us.axway.com>
_______________________________________________
Esapi-dev mailing list
Esapi-dev at lists.owasp.org
https://lists.owasp.org/mailman/listinfo/esapi-dev



More information about the Esapi-dev mailing list