Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSupply crafted OpenAPI spec with malicious $ref
-
DeliveryDeveloper or CI runs refitter
-
ExploitNJsonSchema resolves remote/local $ref unsafely
-
ExecutionHost fetches internal URL or reads local file
-
ImpactSensitive content inlined into generated output
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Trusted source inclusion only
|
| Exploitation Conditions | Exploitation requires that a developer or CI host run the refitter dotnet tool (version <= 2.0.0, before the 2.1.1 fix) against an OpenAPI description the attacker controls or can influence, where that spec contains a crafted $ref - either a remote http(s) URL (triggering SSRF and remote file inclusion) or an absolute local path / '../' traversal escaping the input directory (triggering out-of-tree local file inclusion). The root enabling condition is NJsonSchema's unsafe default $ref resolution shipped by refitter prior to 2.1.1; after the fix, remote $ref resolution is off by default (opt-in via --allow-remote-refs / allowRemoteReferences) and local refs are confined to the input directory. Limiting factors: exploitation is passive-user-interaction dependent (someone must actually invoke generation on the malicious spec), no authentication or privileges on the target are needed, the impact is file/SSRF disclosure rather than code execution (Refitter sets base URL at runtime, verbatim-doubles enum values, and escapes string defaults, so no RCE), and only versions at or below 2.0.0 with the vulnerable default are affected. |
| Impact | CVSS 3.1 base score is 7.1 (High) with vector AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N - network-reachable, low complexity, no privileges, but requiring user interaction, which is the key tempering signal: a developer or CI job must actually run refitter against an attacker-controlled or attacker-influenced OpenAPI spec. The vuln.today decision label is 'this_week' (not act_now/emergency), consistent with a serious but non-emergency build-time issue. This is NOT in CISA KEV, so there is no confirmed active exploitation, and no EPSS score was provided, so widespread-exploitation probability cannot be quantified from the input. A public PoC reference exists (reproduce.sh, make_spec.py, listener.py attached to the advisory, verified on 2.0.0); it is not verified in the input as packaged working exploit code. The realistic impact is generation-time SSRF (CWE-918) from the developer/CI host, arbitrary local-file disclosure (CWE-22/LFI), and inclusion of untrusted remote content (CWE-829/RFI) - notably dangerous in CI where internal metadata endpoints and secret files are reachable. The advisory explicitly rules out code execution, so the 'RCE' tag overstates impact. Net: a genuine supply-chain/build-time priority for teams that run refitter on untrusted specs, but it is a targeted (attacker must get a malicious spec processed), not wormable or mass-exploitable, issue - patch to 2.1.1 rather than treat as a drop-everything emergency. |
| Exploit ScenarioDerived | An attacker publishes or submits an OpenAPI description (e.g., a vendor spec, a PR to a repo, or a shared API doc) containing a malicious $ref such as http://169.254.169.254/... or ../../../etc/secret.json. When a developer or CI pipeline runs refitter on that spec to generate the Refit client, the NJsonSchema resolver fetches the internal URL (SSRF) or reads the out-of-tree local file and inlines its contents into the generated C output, disclosing internal service responses or local secrets. A working PoC reference (reproduce.sh/listener.py) demonstrating SSRF, RFI, and LFI on version 2.0.0 is attached to the advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Generation-time server-side request forgery, remote file inclusion and out-of-tree local file inclusion in the Refitter .NET tool (versions through 2.0.0) allow an attacker who controls or can influence an OpenAPI description to make the build host fetch arbitrary http(s) URLs or read files outside the input directory, with the retrieved content inlined into the generated C
Refit interfaces. Rated CVSS 3.1 7.1 (High) with vector AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N: unauthenticated and low complexity on the network side, but exploitable only when a developer or CI job actually runs refitter against the malicious spec, and the chain terminates at disclosure and SSRF - no code execution, because Refit sets the base URL at runtime, enum values are verbatim-string doubled and string defaults are escaped. A public reproduction script is attached to the upstream advisory and was verified by the reporter against 2.0.0; no CISA KEV entry appears in the supplied data, and the vendor fix ships in 2.1.1.
RemediationAI
Upgrade the Refitter dotnet tool to 2.1.1 (https://github.com/christianhelle/refitter/releases/tag/2.1.1), which implements the fix from PR https://github.com/christianhelle/refitter/pull/1173 (commit 6ad20a3803561225100b0a4bb6b12f947d23db7b): remote http/https $ref resolution is now off by default and must be explicitly opted into with --allow-remote-refs on the CLI or "allowRemoteReferences": true in the .refitter file, and local $ref resolution is confined to the input document's directory tree so absolute paths and ../ escapes are rejected at all nesting levels. The trade-off is that any pipeline that legitimately depended on remote $refs will break until the flag is enabled, and enabling it restores the SSRF/RFI exposure - so vendor dependent schemas locally or run only against trusted specs rather than turning the flag on globally. Note that top-level remote document URLs are still fetched by design after the fix, so the input spec itself should still be pulled from a trusted source. No vendor patch exists for versions 2.0.0 and earlier; the advisory and reproduction material are at https://github.com/christianhelle/refitter/security/advisories/GHSA-x6w4-f264-3vvr, and upstream coordination with NJsonSchema, where the resolver lives, is noted by the reporter as the durable fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Refitter generates Refit-based C
REST clients from OpenAPI descriptions and delegates $ref resolution to the NJsonSchema library it ships and invokes with unsafe defaults. When a spec contains $ref values pointing at remote http/https resources, the resolver issues outbound requests from the developer workstation or CI runner and inlines the returned schema into the generated output (SSRF plus remote file inclusion); when $ref uses an absolute local path or a '../' sequence that escapes the input directory, the resolver reads and inlines that local file (local file inclusion). The CVE record assigns CWE-829 (inclusion of functionality from an untrusted control sphere), with CWE-918 (SSRF) and CWE-22 (path traversal) also mapped in the GHSA. The trigger is purely declarative - a crafted $ref anywhere in the document at any nesting level - and the advisory notes the resolver itself lives upstream in NJsonSchema, so coordination there is part of the long-term fix. Post-fix behaviour in 2.1.1 introduces an opt-in flag for remote references (disabled by default) and confines local $ref resolution to the input document's directory tree, while top-level remote document URLs remain permitted.
Know when Refitter gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N
No privileges and low complexity to craft the $ref, but a user must run the generator (UI:R); high confidentiality from arbitrary local-file and internal-resource disclosure, low integrity from inlined untrusted content, no availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Refitter is a tool for generating a C
REST API client using the Refit library. Prior to 2.1.1, the refitter dotnet tool invokes NJsonSchema with unsafe defaults for $ref resolution when generating Refit interfaces and contracts from attacker-controlled or attacker-influenced OpenAPI descriptions. Remote http(s) references cause requests from the developer or CI host and inline untrusted remote schema content into generated output. Absolute local file paths and relative ../ traversal outside the input directory also resolve and inline local content, permitting arbitrary local-file disclosure. The demonstrated chain stops at server-side request forgery, remote file inclusion, and local file inclusion, not code execution: Refit sets the base URL at runtime, enum values use verbatim-string doubling, and string defaults are escaped. This issue is fixed in version 2.1.1.
Technical POC Analysis
The flaw is a $ref resolution trust-boundary failure in the refitter .NET tool: Refitter hands an attacker-influenced OpenAPI document to its bundled NJsonSchema dependency and lets that resolver fol…
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
CVE-2026-63184 is a high-severity vulnerability in the Refitter .NET tool (versions through 2.0.0) that allows an attacker controlling an OpenAPI specification to force developer and CI build hosts to fetch arbitrary URLs or read local files, with retrieved content embedded into generated code. This impacts any team using Refitter to generate Refit interfaces, potentially leading to sensitive data exposure from build environments. Leadership should prioritize addressing this because it can compromise internal files and network access during routine development and CI processes.
No vendor-released patch identified at time of analysis. Interim mitigations include restricting Refitter usage to trusted OpenAPI specifications, running builds in isolated environments with limited network and file system access, and monitoring for anomalous requests.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
Code execution at assembly load in Refitter-generated C# clients (CWE-94/CWE-116): a header parameter name taken from an
Refitter, the .NET tool that generates C# Refit clients from OpenAPI descriptions, writes content-type keys from request
Code execution at assembly load in applications built from Refitter 2.0.0 and earlier: the generator copies each OpenAPI
EUVD-2026-114521
NVD
CVE.org
EPSS
GitHub
Exploit-DB