{"id":"CVE-2025-47928","summary":"Spotipy repo vulnerable to secrets exfiltration via `pull_request_target`","details":"Spotipy is a Python library for the Spotify Web API. As of commit 4f5759dbfb4506c7b6280572a4db1aabc1ac778d, using `pull_request_target` on `.github/workflows/integration_tests.yml` followed by the checking out the head.sha of a forked PR can be exploited by attackers, since untrusted code can be executed having full access to secrets (from the base repo). By exploiting the vulnerability is possible to exfiltrate `GITHUB_TOKEN` and secrets `SPOTIPY_CLIENT_ID`,  `SPOTIPY_CLIENT_SECRET`. In particular `GITHUB_TOKEN` which can be used to completely overtake the repo since the token has content write privileges. The `pull_request_target` in GitHub Actions is a major security concern—especially in public repositories—because it executes untrusted code from a PR, but with the context of the base repository, including access to its secrets. Commit 9dfb7177b8d7bb98a5a6014f8e6436812a47576f reverted the change that caused the issue.","aliases":["GHSA-h25v-8c87-rvm8"],"modified":"2026-08-12T03:51:41.159159193Z","published":"2025-05-15T20:09:48.326Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/47xxx/CVE-2025-47928.json","unresolved_ranges":[{"extracted_events":[{"introduced":"= 4f5759dbfb4506c7b6280572a4db1aabc1ac778d"},{"last_affected":"= 4f5759dbfb4506c7b6280572a4db1aabc1ac778d"}],"source":"AFFECTED_FIELD"}],"cna_assigner":"GitHub_M","cwe_ids":["CWE-488"]},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/47xxx/CVE-2025-47928.json"},{"type":"ADVISORY","url":"https://github.com/spotipy-dev/spotipy/security/advisories/GHSA-h25v-8c87-rvm8"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-47928"},{"type":"FIX","url":"https://github.com/spotipy-dev/spotipy/commit/4f5759dbfb4506c7b6280572a4db1aabc1ac778d"},{"type":"FIX","url":"https://github.com/spotipy-dev/spotipy/commit/9dfb7177b8d7bb98a5a6014f8e6436812a47576f"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/spotipy-dev/spotipy","events":[{"introduced":"0"},{"fixed":"4f5759dbfb4506c7b6280572a4db1aabc1ac778d"},{"fixed":"9dfb7177b8d7bb98a5a6014f8e6436812a47576f"}],"database_specific":{"source":"REFERENCES"}}],"versions":["2.25.1","2.25.0","2.24.0","2.23.0","2.22.1","2.22.0","2.21.0","2.20.0","2.19.0","2.18.0","2.17.1","2.17.0","2.16.1","2.16.0","2.15.0","2.14.0","2.13.0","2.12.0","2.11.2","2.11.1","2.11.0","2.10.0","2.9.0","2.8.0","2.7.1","2.7.0","2.6.3","2.6.2","2.6.1","2.6.0","2.5.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-47928.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N"}]}