The vulnerability lies in the Jenkins Curseforge Publisher Plugin's handling of the API key. The plugin stores the API key as a plain String field within the CursePublisher class. The constructor CursePublisher(String, String, String, String, String, String, String) is annotated with @DataBoundConstructor, which tells Jenkins to use it to instantiate the class from the configuration form. When the job configuration is saved, Jenkins serializes the CursePublisher object, and because the apiKey field is a String, it is written in plain text into the job's config.xml file.
Furthermore, the getApiKey() method returns the API key as a String, which causes it to be displayed unmasked in the job configuration page in the Jenkins UI.
A secure implementation would use the hudson.util.Secret type for the apiKey field. This would ensure that Jenkins encrypts the value when serializing it to disk and masks it in the user interface.
Since the advisory states there is no fix, the analysis is based on the latest available source code of the plugin, which demonstrates this insecure handling of credentials. The identified functions are directly responsible for the insecure storage and display of the API key.