The vulnerability is a DOM-based Cross-Site Scripting (XSS) in fides.js. It occurs when the fides_description override is used on a site that allows HTML in the banner description. The root cause is that client-side overrides for the banner description were not sanitized before being rendered. An attacker could craft a URL with a malicious fides_description parameter, and when a user clicks it, the malicious script would execute in the context of the user's browser on that domain.
The patch addresses this by completely removing the feature for client-side overrides of experience translations like title and description.
The analysis of the patch commit 67e43b10b1096c7f84d5c0eeba08ee3b7846b7cd reveals the vulnerable code path. The init function in fides.ts (and its variants) would call getOverridesByType to fetch overrides from URL parameters, cookies, or global variables. This included the fides_description parameter. These overrides were then passed down through a chain of functions: initialize -> initializeI18n -> loadMessagesFromExperience -> extractMessagesFromExperienceConfig.
The function extractMessagesFromExperienceConfig is the core of the vulnerability. It contained logic to substitute the server-provided description with the user-provided override. This override was then used to render the banner, and if the allowHTMLDescription flag was set, it was rendered as raw HTML, leading to XSS.
The patch removes this entire override mechanism for experience translations, effectively cutting off the supply of untrusted data. The key vulnerable functions identified are init, which starts the process, and extractMessagesFromExperienceConfig, which applies the malicious data. The TcfOverlay component is also identified as it was another entry point for fetching these overrides. Any of these functions could appear in a profiler stack trace during exploitation.