lolsob. Developer attempts to replicate liquid glass in CSS and in the process accidentally discovers a novel and rather serious browser vulnerability

https://lyra.horse/blog/2025/12/svg-clickjacking/

"CSS hack accidentally becomes regular hack"

( via @citrusui )

SVG Filters - Clickjacking 2.0

A novel and powerful twist on an old classic.

lyra's epic blog
@mcc @citrusui I feel like SVG filters being turing complete is kind of a buried lede here
@aburka @mcc @citrusui I mean... it's kinda not the issue. The issue is what data browsers are wrongly giving them access to (the rendered view underneath them), not the computational power. It's a simple failure to enforce privilege domains correctly.
@dalias @aburka @mcc @citrusui also worth noting that turing completeness is a property not just of an intentionally-designed language, but the entire system the language is embedded within. if you can create a file at a specific path and then read whatever is stored at that path you often have enough to achieve turing completeness, and if users don't have well-documented affordances that satisfy their needs, they will find a workaround. and now you have both turing-completeness and a dependency on spooky action at a distance i.e. external state not tracked by the desired model
@hipsterelectron @dalias @mcc @citrusui yes I used this fact in my turing completeness proof for my company's yaml metalanguage, which is lazily evaluated hence not recursive *except* you have to eagerly evaluate a filename in order to include it, which was the key