The vulnerability, described as 'Arbitrary File Read via Symlink', stemmed from Weblate's failure to properly validate file paths in multiple features, most critically in the ZIP download functionality. The root cause was the use of os.path.join to construct paths based on component settings (e.g., template, new_base) without checking if these paths contained symbolic links that pointed outside the intended project directory. The primary vulnerable function identified is download_multi in weblate/trans/views/files.py. An attacker could create a component with a symlink as a template file, and this function would then read the linked file from anywhere on the filesystem and include it in a downloadable ZIP archive. The security patch addresses this by introducing and enforcing the use of a new get_validated_component_filename method in weblate/trans/models/component.py. This method centralizes path validation and ensures that any file path is resolved and checked to be within the project's repository before being accessed. The fix was applied not only to the ZIP download feature but also to several other areas like gettext addons, component discovery, and alert generation, which were susceptible to the same class of symlink-following vulnerability, preventing both arbitrary file reads and information disclosure about file existence.