File tree Expand file tree Collapse file tree
src/semmle/javascript/frameworks
test/query-tests/Security/CWE-079 Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -538,12 +538,13 @@ module JQuery {
538538 MethodCall ( ) {
539539 this = dollarCall ( ) and name = "$"
540540 or
541- this = ( [ dollar ( ) , objectRef ( ) ] ) .getAMemberCall ( name )
542- or
543541 // Handle basic dynamic method dispatch (e.g. `$element[html ? 'html' : 'text'](content)`)
544542 exists ( DataFlow:: PropRead read | read = this .getCalleeNode ( ) |
545543 read .getBase ( ) .getALocalSource ( ) = [ dollar ( ) , objectRef ( ) ] and
546- read .getPropertyNameExpr ( ) .flow ( ) .mayHaveStringValue ( name )
544+ (
545+ read .getPropertyNameExpr ( ) .flow ( ) .mayHaveStringValue ( name ) or
546+ read .getPropertyName ( ) = name
547+ )
547548 )
548549 or
549550 // Handle contributed JQuery objects that aren't source nodes (usually parameter uses)
Original file line number Diff line number Diff line change 5858
5959 $ ( "#id" ) . get ( 0 ) . innerHTML = $ ( "input" ) . getAttribute ( "id" ) ; // OK.
6060
61- $ ( "#id" ) . get ( 0 ) . innerHTML = $ ( document ) . find ( "option" ) . attr ( "value" ) ; // NOT OK.
61+ $ ( "#id" ) . get ( 0 ) . innerHTML = $ ( document ) . find ( "option" ) . attr ( "value" ) ; // NOT OK.
62+
63+ var valMethod = $ ( "textarea" ) . val ;
64+ $ ( "#id" ) . get ( 0 ) . innerHTML = valMethod ( ) ; // OK - Not a method call, not valid receiver for jQuery.
6265} ) ( ) ;
You can’t perform that action at this time.
0 commit comments