Skip to content

Latest commit

 

History

History
29 lines (29 loc) · 2.74 KB

ecmascript-attack-vectors.md

File metadata and controls

29 lines (29 loc) · 2.74 KB

GlobalObjectPoisoning -- Global object poisoning EvalArbitraryCodeExecution -- eval and the Function constructor allow arbitrary code execution ArgumentsMaskedByVar -- function arguments array masked by var arguments on Opera CrossScopeParameterModification -- arguments array allows modification of parameters ArgumentsExposesCaller -- arguments Array and function object expose caller FunctionMemberCrossScopeParameterAccess -- function object's arguments array expose arguments while call in progress TypeofInconsistent -- typeof inconsistent for regular expressions InaccessibleLocalVariables -- Inaccessible local variables CatchBlocksScopeBleed -- catch blocks may cause global assignment, or local scope creep GlobalScopeViaThis -- Global scope reachable via this from functions not invoked as methods DeleteUnmasksGlobals -- Delete can unmask globals FunctionConstructor -- Function constructor accessible via the 'constructor' property ObjectEvalArbitraryCodeExecution -- Object.eval allows execution of unsanitized code on Firefox. ObjectWatch -- Object.watch allows stealing and poisoning of otherwise restricted data ObjectToSourceLeaksPrivates -- Object.toSource and uneval allow access to private fields FunctionMethodsLeakGlobalScope -- Function.call or Function.apply can leak window with certain this-values. ConditionalCompilationComments -- Conditional compilation may allow disabling of runtime checks. StringObfuscationIsEasy -- Approaches that rely on detecting code for other languages in string literals is easy to defeat ParentCircumventsScoping -- The javascript1.2 feature parent circumvents normal scoping. JsControlFormatChars -- [:Cf:] can be used hide code in string or comments. InconsistentlyReservedKeywords -- Different reserved keyword set can cause parser ambiguity ErrorExposesParameterValues -- The stack property of Error includes parameter values. HiddenControlFlowHazard -- Seemingly safe Caja data computations may result in a control-flow transfer to a potential adversary. RegexpsLeakMatchGlobally -- Any regular expression can match against the last string passed to any other EvalBreaksClosureEncapsulation -- Eval extensions allow reaching into the scope chain of closures PostIncrementAndDecrementCanReturnNonNumber -- Incorrect implementations of postincrement and postdecrement can cause confusion as to which property is being accessed MisOptimizations -- Some interpreters try to optimize javascript before execution subtly changing the semantics of builtin operators (PostIncrementAndDecrementCanReturnNonNumber is a specific example) CompoundAssignmentsCanReturnNonNumber -- The type of assignment expressions may not be correct. FinallySkipped -- An exception that is thrown not inside a try/catch caught skips finally blocks.