CVE-2024-47516
Critical · 9.8CVSS
9.8
EPSS
0.9%
Published
Mar 26, 2025
CISA due date
—
Cloudanix analysis
A flaw in how the system fetches code history lets attackers run their own programs on the server without logging in, risking theft or tampering of source code.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Application
- Class
- Command Injection
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
Argument injection into Git commands executed during repository history retrieval allows an unauthenticated remote attacker to execute arbitrary operating-system commands on the Pagure server.
Why it matters to the business
Successful exploitation grants full control of the Pagure instance, enabling theft or alteration of source code, supply-chain attacks against downstream projects, and potential lateral movement into connected build or deployment systems.
How an attack unfolds
An attacker crafts a malicious repository name or reference that is passed unsanitized to a Git command used to fetch history; the injected arguments cause Git to execute attacker-controlled commands, resulting in remote code execution on the server.
How to fix it
Upgrade affected packages to the versions that contain the fix: openstack-packstack, openstack-packstack-doc, openstack-packstack-puppet, and openstack-puppet-modules all updated to 0:2014.2-0.20.dev1467.g70c9655.el7ost or 0:2014.2.13-2.el7ost as appropriate for each package. Apply the updates via the distribution package manager and restart Pagure services.
How to confirm the fix worked
After patching, confirm the installed package versions match the fixed releases listed above, then exercise the repository-history retrieval functionality with previously malicious inputs to verify command injection is no longer possible.
Typical attack path
- Identify a reachable Pagure instance and locate a repository-history endpoint
- Craft a request containing shell metacharacters or Git argument sequences that survive input validation
- Submit the request; the server invokes Git with the attacker-controlled arguments
- Git executes the injected commands, establishing a reverse shell or dropping a payload
- Attacker pivots from the compromised instance to source-code repositories or CI/CD pipelines
How to detect it
Search web-server access logs for unusually long or specially formatted repository references on history-retrieval endpoints; inspect system process listings and audit logs for unexpected Git child processes or shell invocations originating from the Pagure service account.
What your security team should do
- Immediately schedule the listed package upgrades on all Pagure deployments
- Review network exposure of Pagure instances and restrict unauthenticated access where feasible
- Monitor package-update channels for any additional Pagure-related fixes
- Add the repository-history endpoints to web-application firewall rules as a temporary control
The record
A vulnerability was found in Pagure. An argument injection in Git during retrieval of the repository history leads to remote code execution on the Pagure instance.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | pagure | 0 | No fix |
| Debian:12 | pagure | 0 | No fix |
| Debian:13 | pagure | 0 | 5.14.1+dfsg-1 |
| Ubuntu:20.04:LTS | pagure | 0 | No fix |
| Ubuntu:22.04:LTS | pagure | 0 | No fix |
| Ubuntu:22.04:LTS | pagure | 0 | 5.11.3+dfsg-1ubuntu0.1 |
| Ubuntu:24.04:LTS | pagure | 0 | No fix |
| Ubuntu:24.04:LTS | pagure | 0 | 5.11.3+dfsg-2.1ubuntu0.2 |
| Ubuntu:24.10 | pagure | 0 | No fix |
| Ubuntu:25.04 | pagure | 0 | No fix |
| Ubuntu:25.10 | pagure | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | pagure | 0 | No fix |
Related vulnerabilities
- CVE-2024-4982 A directory traversal vulnerability was discovered in Pagure server. Also affects pagure
- CVE-2024-4981 A vulnerability was discovered in Pagure server. Also affects pagure
- CVE-2024-47515 A vulnerability was found in Pagure. Also affects pagure
- CVE-2026-112944 launch-editor allows users to open files with line numbers in editor from Node.js. CWE-88
- CVE-2026-112900 Pillow is a Python imaging library. CWE-88
- CVE-2026-105326 An argument injection flaw was found in CUPS. CWE-88
- CVE-2026-102827 simple-git, an interface for running git commands in any node.js application, enables… CWE-88
- CVE-2026-89066 Improper neutralization of special elements used in an OS command in the task synthesis… CWE-88