SonarQube Cloud reported 6 vulnerabilities on the project but did not flag the .textContent → .innerHTML chain. CodeQL flags this via js/xss-through-dom. My custom Semgrep rule flags it too.
Two questions:
Is taint analysis (rule javascript:S5247 and related) active for public projects on the OSS plan?
If yes, why doesn’t this specific DOM-XSS chain trigger? Is .textContent not modeled as a taint source in the default JS profile?
The actual taint analysis rules for DOM XSS are tssecurity:S5696 and jssecurity:S5696. IIRC these rules are available on the OSS plan, but on the condition that the project is public (IIRC).
Thanks for your feedback ! I’m going to investigate that. It is possible we didn’t deem querySelector trustworthy enough to be a source of tainted data 100% of the time, back when we modelized it in the engine.