An improper neutralization of special elements vulnerability was identified in GitHub Enterprise Server that allowed an attacker with push access to a repository to achieve remote code execution on the instance. During a git push operation, user-supplied push option values were not properly sanitized before being included in internal service headers. Because the internal header format used a delimiter character that could also appear in user input, an attacker could inject additional metadata fields through crafted push option values. This vulnerability was reported via the GitHub Bug Bounty program and has been fixed in GitHub Enterprise Server versions 3.14.24, 3.15.19, 3.16.15, 3.17.12, 3.18.6 and 3.19.3.
The product constructs all or part of a command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended command when it is sent to a downstream component.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Enterprise_server | Github | * | 3.14.24 (excluding) |
| Enterprise_server | Github | 3.15.0 (including) | 3.15.19 (excluding) |
| Enterprise_server | Github | 3.16.0 (including) | 3.16.15 (excluding) |
| Enterprise_server | Github | 3.17.0 (including) | 3.17.12 (excluding) |
| Enterprise_server | Github | 3.18.0 (including) | 3.18.6 (excluding) |
| Enterprise_server | Github | 3.19.0 (including) | 3.19.3 (excluding) |
Many protocols and products have their own custom command language. While OS or shell command strings are frequently discovered and targeted, developers may not realize that these other command languages might also be vulnerable to attacks.