WS-2023-0043
Published:May 15, 2026
Updated:May 15, 2026
Summary Missing check vulnerability in the static file handler allows any client to access the files in the server's file system Details When "staticFiles" is set in the "serve" settings in the configuration file, the following handler doesn't check if "absolutePath" is still under the directory provided as "staticFiles"; if (staticFiles) { router.get('/:relativePath+', async request => { let { relativePath } = request.params; if (!relativePath) { relativePath = 'index.html'; } const absolutePath = path.join(baseDir, staticFiles, relativePath); if (absolutePath.includes(staticFiles) && (await pathExists(absolutePath))) { const readStream = fs.createReadStream(absolutePath); return new Response(readStream as any, { status: 200, }); } return undefined; }); Example scenario To reproduce it, set "staticFiles" to the relative path of a directory in ".meshrc.yml"; serve: staticFiles: ./public Then start the server with "mesh dev", and browse to "/..%2fpackage.json" then you will see the content of "package.json". You can even go deeper to see sensitive data; "/..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2fetc/passwd" Impact and solution If "staticFiles" is set under "serve" in the configuration file. you have two options to fix vulnerability; - Update "@graphql-mesh/cli" to a version higher than "0.82.21", and if you use "@graphql-mesh/http", update it to a version higher than "0.3.18" - Remove "staticFiles" option from the configuration, and use other solutions to serve static files. Credits Thanks "alanwillms@gmail.com" (mailto:alanwillms@gmail.com) for reporting this vulnerability with details
Affected Packages
@graphql-mesh/http (NPM):
Affected version(s) >=0.1.0 <0.3.19Fix Suggestion:
Update to version 0.3.19Related Resources (3)
Do you need more information?
Contact UsCVSS v4
Base Score:
2.3
Attack Vector
NETWORK
Attack Complexity
HIGH
Attack Requirements
NONE
Privileges Required
NONE
User Interaction
PASSIVE
Vulnerable System Confidentiality
LOW
Vulnerable System Integrity
LOW
Vulnerable System Availability
LOW
Subsequent System Confidentiality
LOW
Subsequent System Integrity
LOW
Subsequent System Availability
LOW
CVSS v3
Base Score:
5.8
Attack Vector
NETWORK
Attack Complexity
HIGH
Privileges Required
NONE
User Interaction
REQUIRED
Scope
CHANGED
Confidentiality
LOW
Integrity
LOW
Availability
LOW