The vulnerability is a classic path traversal issue present in multiple Allure report generator plugins. The core of the problem lies in the use of java.nio.file.Path.resolve() with unsanitized user input. The user, who provides the test result files (in Allure 1, Allure 2, JUnit XML, or XCTest format), can control the source or filename of attachments. The vulnerable code directly uses this input to build a file path. By providing input like ../../../../../../etc/passwd, an attacker can cause the application to navigate out of the intended results directory and read sensitive files from the filesystem. The patch addresses this by first validating the attachment filename against a strict pattern, then normalizing the path, and finally ensuring that the resolved path is still within the intended parent directory before accessing the file. The analysis of the fixing commit 747badd0bf7ee362fc63771802b18450d1894cdd clearly shows the removal of the vulnerable resolve() calls and the addition of these security checks in Allure1Plugin.java, Allure2Plugin.java, JunitXmlPlugin.java, and XcTestPlugin.java.