The click didn’t trigger a hack. It triggered a copy . The toast’s autohide event, now polluted with Marina’s prototype chain, didn’t hide the toast. Instead, it ran a script that duplicated the user’s session token and exfiltrated it to a dead-drop server in Reykjavík.
But the chat filter caught that. She smiled. That was the decoy. bootstrap 5.1.3 exploit
She raised the glass to the Bootstrap toast notification still lingering in her own browser’s test sandbox. The click didn’t trigger a hack
From there, you could intercept any function call. Like fetch() . Like localStorage.getItem() . Like crypto.subtle.decrypt() . Instead, it ran a script that duplicated the
It was a niche, unpatched vulnerability in the data-bs-toggle="toast" component. A toast is a tiny, polite notification— “Your file has been saved” or “New message received.” Harmless. But in Bootstrap 5.1.3, the toast’s autohide event handler didn’t properly sanitize a specific data attribute. If you crafted a malicious data-bs-autohide value, you could chain it into a prototype pollution attack. Not a crash. Something worse. A silent override of JavaScript’s core Object.prototype .
Because she’d also polluted the dismiss handler.