The analysis of the Jenkins VAddy Plugin vulnerability (CVE-2025-53668) reveals a critical flaw in how sensitive information is managed. The root cause of the vulnerability is the storage of the Vaddy API Auth Key in an unencrypted format. This issue is located in the VaddyPlugin.java file.
The key findings are:
-
Insecure Data Storage: The VaddyPlugin class constructor, annotated with @DataBoundConstructor, accepts the authKey as a standard String. Jenkins plugins should use the hudson.util.Secret class to handle sensitive data like API keys. By using a String, the key is persisted in plain text within the config.xml file of any job that uses this plugin.
-
Data Exposure: The getAuthKey() method provides direct, unmasked access to the stored API key. This means that any part of the Jenkins environment with access to the VaddyPlugin object can retrieve the key in plain text.
The combination of these two factors results in the unencrypted storage of a sensitive credential, which can be viewed by any user with Item/Extended Read permission or file system access to the Jenkins controller. The vulnerability is not in the use of the key but in its improper storage, making the constructor the primary vulnerable function.