GHSA-2wx6-wc87-rmjm

Suggest an improvement
Source
https://github.com/advisories/GHSA-2wx6-wc87-rmjm
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2020/03/GHSA-2wx6-wc87-rmjm/GHSA-2wx6-wc87-rmjm.json
JSON Data
https://api.test.osv.dev/v1/vulns/GHSA-2wx6-wc87-rmjm
Aliases
Related
Published
2020-03-19T17:29:58Z
Modified
2024-09-20T17:46:47.095816Z
Severity
  • 7.7 (High) CVSS_V3 - CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N CVSS Calculator
  • 9.3 (Critical) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N CVSS Calculator
Summary
GitHub personal access token leaking into temporary EasyBuild (debug) logs
Details

Impact

The GitHub Personal Access Token (PAT) used by EasyBuild for the GitHub integration features (like --new-pr, --from-pr, etc.) is shown in plain text in EasyBuild debug log files.

Scope:

  • the log message only appears in the top-level log file, not in the individual software installation logs (see https://easybuild.readthedocs.io/en/latest/Logfiles.html);
    • as a consequence, tokens are not included in the partial log files that are uploaded into a gist when using --upload-test-report in combination with --from-pr, nor in the installation logs that are copied to the software installation directories;
  • the message is only logged when using --debug, so it will not appear when using the default EasyBuild configuration (only info messages are logged by default);
  • the log message is triggered via --from-pr, but also via various other GitHub integration options like --new-pr, --merge-pr, --close-pr, etc., but usually only appears in the temporary log file that is cleaned up automatically as soon as eb completes successfully;
  • you may have several debug log files that include your GitHub token in /tmp (or a different location if you've set the --tmpdir EasyBuild configuration option) on the systems where you use EasyBuild, but they are located in a subdirectory that is only accessible to your account (permissions set to 700);
  • the only way that a log file that may include your token could have been made public is if you shared it yourself, for example by copying the contents of the log file into a gist manually, or by sending a log file to someone;
  • for log files uploaded to GitHub, your token would be revoked automatically when GitHub notices it;

Patches

The issue is fixed with the changes in https://github.com/easybuilders/easybuild-framework/pull/3248.

This fix is included in EasyBuild v4.1.2 (released on Mon Mar 16th 2020), and in the master+ develop branches of the easybuild-framework repository since Mon Mar 16th 2020 (see https://github.com/easybuilders/easybuild-framework/pull/3248 and https://github.com/easybuilders/easybuild-framework/pull/3249 resp.).

Make sure you revoke the existing GitHub tokens you're using with EasyBuild (via https://github.com/settings/tokens), and install new ones using "eb --install-github-token --force" (see also https://easybuild.readthedocs.io/en/latest/IntegrationwithGitHub.html#installing-a-github-token-install-github-token).

Workarounds

  • avoid using the GitHub integration features (see https://easybuild.readthedocs.io/en/latest/IntegrationwithGitHub.html) with EasyBuild versions older than version 4.1.2;
  • don't share top-level EasyBuild (debug) log files with others, unless you are sure your GitHub token is not included in them;
  • clean up temporary EasyBuild log files in /tmpon the system(s) where you`re using EasyBuild

References

  • https://github.com/easybuilders/easybuild-framework/pull/3248 (PR that fixes the issue)
  • (release announcement to EasyBuild mailing list)

For more information

Database specific
{
    "nvd_published_at": null,
    "cwe_ids": [
        "CWE-532"
    ],
    "severity": "CRITICAL",
    "github_reviewed": true,
    "github_reviewed_at": "2020-03-19T17:04:51Z"
}
References

Affected packages

PyPI / easybuild-framework

Package

Name
easybuild-framework
View open source insights on deps.dev
Purl
pkg:pypi/easybuild-framework

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
4.1.2

Affected versions

1.*

1.0
1.0.1
1.0.2
1.1.0
1.2.0rc1
1.2.0
1.3.0
1.4.0
1.5.0
1.6.0
1.7.0
1.8.0
1.8.1
1.8.2
1.9.0
1.10.0
1.11.0
1.11.1
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.15.2
1.16.0
1.16.1
1.16.2

2.*

2.0.0
2.1.0
2.1.1
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
2.8.1
2.8.2
2.9.0

3.*

3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.1.2
3.2.0
3.2.1
3.3.0
3.3.1
3.4.0
3.4.1
3.5.0
3.5.1
3.5.2
3.5.3
3.6.0
3.6.1
3.6.2
3.7.0
3.7.1
3.8.0
3.8.1
3.9.0
3.9.1
3.9.2
3.9.3
3.9.4

4.*

4.0.0
4.0.1
4.1.0
4.1.1