jquery.js Valutazione del codice dinamico: Code Injection sulla linea setTimeout ()

2

Sto lavorando per risolvere un potenziale problema di sicurezza. Ho eseguito il mio HP fortifica SCA e ho ottenuto un rapporto priorità critico sul mio file jquery.js.

Category : Dynamic Code Evaluation: Code Injection (3 Issues).

Ho esaminato il codice sorgente e risulta essere la riga in cui si trova il codice eval setTimeout() .

if (s.async && s.timeout) {
    timeoutTimer = setTimeout( function() {
        jqXHR.abort("timeout");
    }, s.timeout );
}

con un blocco catch try precedente.

Ho fatto un paio di scavi e dicono che non si scherza con il codice sorgente di terze parti, si può manomettere le altre funzionalità. Sto pensando di sopprimere e andare avanti? Di solito non mi piace reprimere critiche.

Qualche idea?

    
posta A1a5h3 20.02.2017 - 17:43
fonte

1 risposta

3

È un falso positivo.

Segnalare le vulnerabilità di false code di injection è un problema ben noto con HP Fortify e ha confuso gli sviluppatori prima . Fortify fa solo analisi statiche di base del codice Javascript e non può andare arbitrariamente in profondità per capire come funziona. Come suggerito da @AlexanderOMara, sembra proprio scoprire la funzione potenzialmente pericolosa setTimeout() che può, come setInterval() , prendere un argomento stringa che sarebbe eseguito come codice, proprio come fa eval() . Questo è il tipo di vulnerabilità, lo strumento mira a scoprire:

setTimeout('alert(' + document.location.hash.split('#')[1] + ')', 0);

Ma nel tuo caso non c'è nessun input non filtrato dall'utente alla funzione setTimeout() e quindi sembra sicuro. Lasciandoti una grande conclusione dal thread collegato:

My advice is to stop running HP fortify reports. Or pay the five thousand, or whatever dollars to go to their classes so you could actually understand their malarkey.

    
risposta data 20.02.2017 - 18:58
fonte

Leggi altre domande sui tag