The vulnerability analysis began by examining the provided description, which clearly identified a stored XSS vulnerability in the wger application. The root cause was specified as the AbstractLicenseModel.attribution_link property in wger/utils/models.py, where user-controlled data was used to construct raw HTML without proper escaping. The advisory mentioned that version 2.5 contained the patch. By comparing the git tags for version 2.4 and 2.5, I identified a series of commits. Within these commits, one stood out with the message 'Properly escape generated HTML' (commit b9a262b0d0e9a75d2d4599beaf4a25fa4bb39bcc). Analyzing this commit's diff confirmed it was the security patch. The patch file wger/utils/models.py showed the vulnerable attribution_link property being refactored to use django.utils.html.format_html and escape instead of unsafe f-string interpolation. This directly confirms that AbstractLicenseModel.attribution_link is the vulnerable function, as it's the precise location where the unsafe HTML was generated. During exploitation, this function would be called when rendering a page that displays the license information, causing the stored malicious script to execute.