Skip to content

Commit dc0423f

Browse files
Add patch to validate referer for vscode-remote-resource API
1 parent c597ecf commit dc0423f

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

patches/sagemaker.series

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,4 @@ sagemaker/sagemaker-extension-smus-support.diff
3939
sagemaker/post-startup-notifications.diff
4040
sagemaker/sagemaker-extensions-sync.diff
4141
sagemaker/fix-port-forwarding.diff
42+
sagemaker/validate-http-request-referer.diff
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
Index: code-editor-src/src/vs/server/node/remoteExtensionHostAgentServer.ts
2+
===================================================================
3+
--- code-editor-src.orig/src/vs/server/node/remoteExtensionHostAgentServer.ts
4+
+++ code-editor-src/src/vs/server/node/remoteExtensionHostAgentServer.ts
5+
@@ -172,6 +172,21 @@ class RemoteExtensionHostAgentServer ext
6+
if (pathname === '/vscode-remote-resource') {
7+
// Handle HTTP requests for resources rendered in the rich client (images, fonts, etc.)
8+
// These resources could be files shipped with extensions or even workspace files.
9+
+
10+
+ if (req.headers.referer && req.headers.host) {
11+
+ this._logService.info('Inside if check');
12+
+ const parsedRefererUrl = url.parse(req.headers.referer, true);
13+
+ if (parsedRefererUrl.host !== req.headers.host) {
14+
+ return serveError(req, res, 403, `Forbidden.`);
15+
+ }
16+
+ }
17+
+
18+
const desiredPath = parsedUrl.query['path'];
19+
if (typeof desiredPath !== 'string') {
20+
return serveError(req, res, 400, `Bad request.`);

0 commit comments

Comments
 (0)