CVE-2025-13744 Overview
CVE-2025-13744 is a stored Cross-Site Scripting (XSS) vulnerability in GitHub Enterprise Server tracked under [CWE-79]. The flaw resides in the Filter component used by the search functionality, where attacker-controlled HTML is rendered without proper neutralization. An authenticated attacker with permissions to create or modify names of milestones, issues, pull requests, or similar entities can inject malicious markup. When other users interact with the affected filter or search interface, the injected content executes in their browser context and can exfiltrate sensitive information. GitHub received the report through its Bug Bounty program.
Critical Impact
An authenticated attacker can inject HTML into entity names that renders inside the Filter/search component, enabling theft of session data and sensitive repository information from other GitHub Enterprise Server users.
Affected Products
- GitHub Enterprise Server versions prior to 3.20
- GitHub Enterprise Server 3.19.0
- All maintained branches: 3.14.x, 3.15.x, 3.16.x, 3.17.x, 3.18.x, 3.19.x
Discovery Timeline
- 2026-01-06 - CVE-2025-13744 published to NVD
- 2026-01-30 - Last updated in NVD database
Technical Details for CVE-2025-13744
Vulnerability Analysis
The vulnerability stems from Improper Neutralization of Input During Web Page Generation in the Filter component that powers GitHub's search experience. GitHub Enterprise Server permits users to assign names to objects such as milestones, issues, and pull requests. These names propagate into the filter and search UI, where the rendering pipeline fails to encode HTML entities. Attacker-supplied markup is therefore parsed as live HTML in the browsers of users who view the filter dropdown or search results.
Exploitation requires the attacker to hold write permissions on a repository or project that allows entity creation. The attack is stored, meaning the malicious payload persists in repository data until it is removed or the host is patched. User interaction is required, since the script only fires when a victim opens the affected filter or search view.
Root Cause
The root cause is missing or incomplete output encoding when the Filter component renders entity names retrieved from the database. Strings that should be treated as untrusted text are passed into the DOM as HTML. This bypasses GitHub Enterprise Server's standard XSS defenses for that specific rendering path.
Attack Vector
The attack vector is network-based with low privileges and user interaction. An attacker creates or renames a milestone, issue, or pull request with a crafted name containing HTML or script content. When a higher-privileged user, such as a repository administrator or organization owner, opens the filter dropdown or search interface, the payload executes in their authenticated session. The attacker can then exfiltrate session tokens, repository contents, or other data the victim has access to.
No public proof-of-concept code is available for CVE-2025-13744. Refer to the GitHub Enterprise Server 3.19.1 Release Notes for vendor-supplied technical context.
Detection Methods for CVE-2025-13744
Indicators of Compromise
- Milestones, issues, or pull request titles containing HTML tags such as <script>, <img>, <svg>, or inline event handlers like onerror= and onload=.
- Outbound HTTP requests from authenticated user sessions to unexpected external domains shortly after viewing filter or search pages.
- Audit log entries showing entity renames performed by accounts that do not normally create issues or milestones.
Detection Strategies
- Query the GitHub Enterprise Server database or API for entity names containing angle brackets, encoded HTML entities, or JavaScript URI schemes.
- Inspect web access logs for /search and filter endpoint responses that include suspicious payload patterns in response bodies.
- Correlate browser CSP violation reports, if enabled, against authenticated GitHub Enterprise Server sessions.
Monitoring Recommendations
- Enable and forward GitHub Enterprise Server audit logs to a centralized analytics platform for retention and search.
- Track unusual rename activity on milestones, issues, and pull requests across high-value repositories.
- Monitor for session token reuse from unexpected IP addresses following access to repositories with externally controlled contributors.
How to Mitigate CVE-2025-13744
Immediate Actions Required
- Upgrade GitHub Enterprise Server to a patched release that matches your current branch: 3.19.1, 3.18.2, 3.17.8, 3.16.11, 3.15.15, or 3.14.20.
- Review recent rename activity on milestones, issues, and pull requests for HTML or script content and sanitize any malicious entries.
- Audit administrator and maintainer sessions for signs of token theft following filter or search interactions.
Patch Information
GitHub fixed CVE-2025-13744 in GitHub Enterprise Server 3.19.1, 3.18.2, 3.17.8, 3.16.11, 3.15.15, and 3.14.20. All versions prior to 3.20 on unpatched branches remain vulnerable. Patch details are documented in the GitHub Enterprise Server 3.18.2 Release Notes, 3.17.8 Release Notes, 3.16.11 Release Notes, 3.15.15 Release Notes, and 3.14.20 Release Notes.
Workarounds
- Restrict write permissions on repositories so only trusted users can create or rename milestones, issues, and pull requests until patching is complete.
- Disable or limit external collaborator access on sensitive repositories where unpatched instances are exposed.
- Enforce a strict Content Security Policy at the reverse proxy layer to reduce the impact of injected scripts.
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

