Почему пейлоады вроде <img src=1 onerror=alert() /> вообще триггерят xss? Это часть стандарта HTML или приблуды браузеров? Потому что такие вещи не работают внутри тега script, так как, согласно html, всё, что внутри этого тега, считается обычным текстом и просто передается как есть в парсер javascript.
Тут тэг обработки onerror который триггерится если не удается выполнить действие, в нашем случае img с источником 1.