The seventh way to call a Java Script function without parentheses
Summary: PortSwigger researcher Gareth Heyes documented a seventh technique for calling JavaScript functions without parentheses, using tagged template strings where placeholders are passed as arguments with their original type rather than as strings. He shows that array methods like sort and map, plus Reflect.apply, can invoke functions such as setTimeout and Chrome's navigation.navigate without triggering the illegal invocation error, with window.name used to carry a payload across domains.
What's compelling: The post states the techniques do not directly enable exploitation, but they provide a foundation for evading JavaScript sandboxes and WAFs - filters that assume function calls require parentheses are working from an incomplete list of call mechanisms.
Read the original at PortSwigger Research ↗
- Topics
- Vulnerabilities & Patching
- Related
- Attackers Exploit UnrealIRCd Flaw That Enables Server-Level Command Injection Cyber Risks · Nov 14, 2026U.S. CISA adds Check Point and UnrealIRCd flaws to its Known Exploited Vulnerabilities catalog Cyber Risks · Nov 14, 2026PostgreSQL Patches 52 Flaws, Including 22-Year-Old Bug Enabling Authenticated RCE Cyber Risks · Nov 13, 2026