GHSA-j9v4-rhgr-4m5f: Npm/@orpc/server vulnerability

Published Sep 17, 2026
·
Updated

Summary A flaw in the CORS plugin allowed the incoming request's Vary header to be reflected into the response, letting a client influence a header that should be controlled solely by the server.

Details The CORS plugin previously copied the request's Vary header directly onto the response instead of treating Vary as a response-only header. Because Vary tells downstream caches and proxies how to key their cached responses, this allowed a client to inject arbitrary values into the response's Vary header, potentially distorting cache-key behavior in shared caches/CDNs sitting in front of an oRPC server and leading to inconsistent CORS enforcement for other clients.

Practical impact is limited to deployments where a shared cache or reverse proxy keys on the Vary header; the real-world effect depends on the caching layer's configuration.

Impact May cause cache key pollution and inconsistent CORS enforcement in setups that rely on shared/edge caches keying on Vary. No direct confidentiality, integrity, or availability impact in default (non-cached) configurations.

Resolution Update @orpc/server (and any other @orpc/ packages bundling the CORS plugin) to 1.14.8. The CORS plugin now derives Vary exclusively from the response, appending Origin and preserving existing values instead of reflecting request headers.

Affected Software

1 affected componentFixes available
npm/@orpc/server<=1.14.7
1.14.8

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/@orpc/server to a version that resolves this vulnerability.

    Fixed in 1.14.8
  2. Upgrade

    Upgrade @orpc/server to a version that resolves this vulnerability.

    Fixed in 1.14.8

Event History

Sep 17, 2026
Advisory Published
via GitHub·02:52 PM
Data Sourced
via GitHub·02:52 PM
DescriptionWeaknessAffected Software

Frequently Asked Questions

1

Which deployments are meaningfully exposed to this issue?

Deployments with a shared cache, CDN, or reverse proxy in front of an oRPC server may be affected if that layer keys cached responses based on the response Vary header. Default non-cached configurations have no direct confidentiality, integrity, or availability impact.

2

What does an attacker need to do to trigger the behavior?

An attacker needs to send a request containing a Vary header. The vulnerable CORS plugin copies that request header into the response, allowing the attacker to influence the response Vary value.

3

How can I determine whether my deployment is affected in practice?

Check whether @orpc/server or another @orpc/* package bundling the CORS plugin is deployed behind a shared cache, CDN, or reverse proxy. Then verify whether that caching layer uses the response Vary header when constructing cache keys.

4

What should be done to remediate the issue?

Update @orpc/server and any other @orpc/* packages that bundle the CORS plugin. If an immediate update is not possible, reduce exposure by ensuring shared caching layers do not allow client-influenced response Vary values to affect cache key behavior.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203