[Esapi-user] Fortify vs ESAPI 2.0
Jeffrey Walton
noloader at gmail.com
Wed Feb 2 22:43:10 EST 2011
On Wed, Feb 2, 2011 at 10:34 PM, Jim Manico <jim.manico at owasp.org> wrote:
> I'm running the latest version of Fortify 360 against the trunk of ESAPI 2.0.
>
> I squashed the test cases and other unnecessary code.
>
> I staged up the results here (this is the raw Fortify results file).
>
> http://manico.net/ESAPI20.fpr
>
> There are several false positive findings (XSS in validation exceptions, we can't encode - we do not know the context of display yet).
>
> There are also several potential real findings (path manipulation in our Base64 encoder)
>
> public static boolean decodeFileToFile( String infile, String outfile )
> {
> boolean success = false;
> java.io.InputStream in = null;
> java.io.OutputStream out = null;
> try{
> in = new Base64.InputStream(
> new java.io.BufferedInputStream(
> new java.io.FileInputStream( infile ) ),
> Base64.DECODE );
> out = new java.io.BufferedOutputStream( new
> java.io.FileOutputStream( outfile ) );
>
> (and privacy issues leaking password data)
>
> protected DefaultUser getUserFromRememberToken() {
> try {
> .
> .
> .
> String username = data[0];
> String password = data[1];
> System.out.println("DATA0: " + username);
> System.out.println("DATA1:" + password);
>
The issue with passwords is confirmed. A Oracle/Sun example of PBE can
be found at http://download.oracle.com/javase/1.4.2/docs/guide/security/jce/JCERefGuide.html.
Scroll about half way down to "Using Password-Based Encryption":
It would seem logical to collect and store the password in
an object of type java.lang.String. However, here's the
caveat: Objects of type String are immutable, i.e., there are
no methods defined that allow you to change (overwrite) or
zero out the contents of a String after usage. This feature
makes String objects unsuitable for storing security sensitive
information such as user passwords. You should always
collect and store security sensitive information in a char
array instead.
Jeff
More information about the Esapi-user
mailing list