{"id":"CVE-2021-21423","state":"PUBLISHED","title":"Exposure of Version-Control Repository to an Unauthorized Control Sphere in projen","description":"`projen` is a project generation tool that synthesizes project configuration files such as `package.json`, `tsconfig.json`, `.gitignore`, GitHub Workflows, `eslint`, `jest`, and more, from a well-typed definition written in JavaScript. Users of projen's `NodeProject` project type (including any project type derived from it) include a `.github/workflows/rebuild-bot.yml` workflow that may allow any GitHub user to trigger execution of un-trusted code in the context of the \"main\" repository (as opposed to that of a fork). In some situations, such untrusted code may potentially be able to commit to the \"main\" repository. The rebuild-bot workflow is triggered by comments including `@projen rebuild` on pull-request to trigger a re-build of the projen project, and updating the pull request with the updated files. This workflow is triggered by an `issue_comment` event, and thus always executes with a `GITHUB_TOKEN` belonging to the repository into which the pull-request is made (this is in contrast with workflows triggered by `pull_request` events, which always execute with a `GITHUB_TOKEN` belonging to the repository from which the pull-request is made). Repositories that do not have branch protection configured on their default branch (typically `main` or `master`) could possibly allow an untrusted user to gain access to secrets configured on the repository (such as NPM tokens, etc). Branch protection prohibits this escalation, as the managed `GITHUB_TOKEN` would not be able to modify the contents of a protected branch and affected workflows must be defined on the default branch.","publishedAt":"2021-04-06T18:35:14.000Z","updatedAt":"2024-08-03T18:09:16.091Z","severity":{"score":6.8,"label":"Medium","version":"3.1","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N","source":"GitHub_M"},"assigner":"GitHub_M","products":["projen projen"],"affected":[{"vendor":"projen","product":"projen","versions":[{"version":">= 0.6.0, < 0.16.41","status":"affected"}]}],"references":["https://github.com/projen/projen/security/advisories/GHSA-gg2g-m5wc-vccq","https://github.com/projen/projen/commit/36030c6a4b1acd0054673322612e7c70e9446643","https://www.npmjs.com/package/projen"],"weaknesses":["CWE-527"],"ingestedAt":"2026-10-29T19:47:59.168Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2021/21xxx/CVE-2021-21423.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2021-21423","state":"PUBLISHED","datePublished":"2021-04-06T18:35:14.000Z","dateUpdated":"2024-08-03T18:09:16.091Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2020-12-22T00:00:00.000Z"},"containers":{"cna":{"title":"Exposure of Version-Control Repository to an Unauthorized Control Sphere in projen","descriptions":[{"lang":"en","value":"`projen` is a project generation tool that synthesizes project configuration files such as `package.json`, `tsconfig.json`, `.gitignore`, GitHub Workflows, `eslint`, `jest`, and more, from a well-typed definition written in JavaScript. Users of projen's `NodeProject` project type (including any project type derived from it) include a `.github/workflows/rebuild-bot.yml` workflow that may allow any GitHub user to trigger execution of un-trusted code in the context of the \"main\" repository (as opposed to that of a fork). In some situations, such untrusted code may potentially be able to commit to the \"main\" repository. The rebuild-bot workflow is triggered by comments including `@projen rebuild` on pull-request to trigger a re-build of the projen project, and updating the pull request with the updated files. This workflow is triggered by an `issue_comment` event, and thus always executes with a `GITHUB_TOKEN` belonging to the repository into which the pull-request is made (this is in contrast with workflows triggered by `pull_request` events, which always execute with a `GITHUB_TOKEN` belonging to the repository from which the pull-request is made). Repositories that do not have branch protection configured on their default branch (typically `main` or `master`) could possibly allow an untrusted user to gain access to secrets configured on the repository (such as NPM tokens, etc). Branch protection prohibits this escalation, as the managed `GITHUB_TOKEN` would not be able to modify the contents of a protected branch and affected workflows must be defined on the default branch."}],"affected":[{"vendor":"projen","product":"projen","versions":[{"version":">= 0.6.0, < 0.16.41","status":"affected"}]}],"references":[{"url":"https://github.com/projen/projen/security/advisories/GHSA-gg2g-m5wc-vccq","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/projen/projen/commit/36030c6a4b1acd0054673322612e7c70e9446643","tags":["x_refsource_MISC"]},{"url":"https://www.npmjs.com/package/projen","tags":["x_refsource_MISC"]}],"metrics":[{"cvssV3_1":{"attackComplexity":"HIGH","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":6.8,"baseSeverity":"MEDIUM","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-527","description":"CWE-527: Exposure of Version-Control Repository to an Unauthorized Control Sphere","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","dateUpdated":"2021-04-06T18:35:14.000Z","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa"},"source":{"advisory":"GHSA-gg2g-m5wc-vccq","discovery":"UNKNOWN"},"x_generator":{"engine":"Vulnogram 0.0.9"},"x_legacyV4Record":{"CVE_data_meta":{"ASSIGNER":"security-advisories@github.com","ID":"CVE-2021-21423","STATE":"PUBLIC","TITLE":"Exposure of Version-Control Repository to an Unauthorized Control Sphere in projen"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"projen","version":{"version_data":[{"version_value":">= 0.6.0, < 0.16.41"}]}}]},"vendor_name":"projen"}]}},"data_format":"MITRE","data_type":"CVE","data_version":"4.0","description":{"description_data":[{"lang":"eng","value":"`projen` is a project generation tool that synthesizes project configuration files such as `package.json`, `tsconfig.json`, `.gitignore`, GitHub Workflows, `eslint`, `jest`, and more, from a well-typed definition written in JavaScript. Users of projen's `NodeProject` project type (including any project type derived from it) include a `.github/workflows/rebuild-bot.yml` workflow that may allow any GitHub user to trigger execution of un-trusted code in the context of the \"main\" repository (as opposed to that of a fork). In some situations, such untrusted code may potentially be able to commit to the \"main\" repository. The rebuild-bot workflow is triggered by comments including `@projen rebuild` on pull-request to trigger a re-build of the projen project, and updating the pull request with the updated files. This workflow is triggered by an `issue_comment` event, and thus always executes with a `GITHUB_TOKEN` belonging to the repository into which the pull-request is made (this is in contrast with workflows triggered by `pull_request` events, which always execute with a `GITHUB_TOKEN` belonging to the repository from which the pull-request is made). Repositories that do not have branch protection configured on their default branch (typically `main` or `master`) could possibly allow an untrusted user to gain access to secrets configured on the repository (such as NPM tokens, etc). Branch protection prohibits this escalation, as the managed `GITHUB_TOKEN` would not be able to modify the contents of a protected branch and affected workflows must be defined on the default branch."}]},"generator":{"engine":"Vulnogram 0.0.9"},"impact":{"cvss":{"attackComplexity":"HIGH","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":6.8,"baseSeverity":"MEDIUM","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N","version":"3.1"}},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"CWE-527: Exposure of Version-Control Repository to an Unauthorized Control Sphere"}]}]},"references":{"reference_data":[{"name":"https://github.com/projen/projen/security/advisories/GHSA-gg2g-m5wc-vccq","refsource":"CONFIRM","url":"https://github.com/projen/projen/security/advisories/GHSA-gg2g-m5wc-vccq"},{"name":"https://github.com/projen/projen/commit/36030c6a4b1acd0054673322612e7c70e9446643","refsource":"MISC","url":"https://github.com/projen/projen/commit/36030c6a4b1acd0054673322612e7c70e9446643"},{"name":"https://www.npmjs.com/package/projen","refsource":"MISC","url":"https://www.npmjs.com/package/projen"}]},"source":{"advisory":"GHSA-gg2g-m5wc-vccq","discovery":"UNKNOWN"}}},"adp":[{"title":"CVE Program Container","references":[{"url":"https://github.com/projen/projen/security/advisories/GHSA-gg2g-m5wc-vccq","tags":["x_refsource_CONFIRM","x_transferred"]},{"url":"https://github.com/projen/projen/commit/36030c6a4b1acd0054673322612e7c70e9446643","tags":["x_refsource_MISC","x_transferred"]},{"url":"https://www.npmjs.com/package/projen","tags":["x_refsource_MISC","x_transferred"]}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2024-08-03T18:09:16.091Z"}}]}}}