The vulnerability is a Cross-Site Request Forgery (CSRF) in the Jenkins GitHub Integration Plugin. The root cause is that several web-accessible endpoints, which perform actions like triggering builds, did not require HTTP POST requests. This allowed an attacker to craft a malicious URL (e.g., in an <img> tag or a link) that, when accessed by a logged-in Jenkins user, would execute actions on their behalf.
The analysis of the patch between the vulnerable version (0.7.3) and the fixed version (0.7.4) reveals that the fix consists of adding the @RequirePOST annotation to several methods in GitHubTagRepository.java and GitHubPRRepository.java. This annotation is a standard mechanism in Jenkins plugins to prevent CSRF by ensuring that the annotated endpoint can only be invoked via POST requests.
The most critical vulnerable function is org.jenkinsci.plugins.github.pullrequest.GitHubPRRepository.doBuild, as it directly corresponds to the vulnerability description of allowing an attacker to "trigger a build for a pull request." Other methods like doClearRepo, doRunTrigger, and doRebuild were also vulnerable to the same CSRF issue and were fixed in the same commit, indicating they were also exploitable.