Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use HTTPS to resolve ruby gems for Jekyll website build #617

Closed
wants to merge 1 commit into from
Closed

Use HTTPS to resolve ruby gems for Jekyll website build #617

wants to merge 1 commit into from

Conversation

JLLeitschuh
Copy link

mitm_build


This is a security fix for a vulnerability in your Apache Maven pom.xml file(s).

The build files indicate that this project is resolving dependencies over HTTP instead of HTTPS.
This leaves your build vulnerable to allowing a Man in the Middle (MITM) attackers to execute arbitrary code on your or your computer or CI/CD system.

This vulnerability has a CVSS v3.0 Base Score of 8.1/10.

POC code has existed since 2014 to maliciously compromise a JAR file in-flight.
MITM attacks against HTTP are increasingly common, for example Comcast is known to have done it to their own users.

This contribution is a part of a submission to the GitHub Security Lab Bug Bounty program.

Detecting this and Future Vulnerabilities

This vulnerability was automatically detected by LGTM.com using this CodeQL Query.

As of September 2019 LGTM.com and Semmle are officially a part of GitHub.

You can automatically detect future vulnerabilities like this by enabling the free (for open-source) LGTM App.

I'm not an employee of GitHub nor of Semmle, I'm simply a user of LGTM.com and an open-source security researcher.

Source

Yes, this contribution was automatically generated, however, the code to generate this PR was lovingly hand crafted to bring this security fix to your repository.

The source code that generated and submitted this PR can be found here:
JLLeitschuh/bulk-security-pr-generator

Opting-Out

If you'd like to opt-out of future automated security vulnerability fixes like this, please consider adding a file called
.github/GH-ROBOTS.txt to your repository with the line:

User-agent: JLLeitschuh/bulk-security-pr-generator
Disallow: *

This bot will respect the ROBOTS.txt format for future contributions.

Alternatively, if this project is no longer actively maintained, consider archiving the repository.

CLA Requirements

This section is only relevant if your project requires contributors to sign a Contributor License Agreement (CLA) for external contributions.

It is unlikely that I'll be able to directly sign CLAs. However, all contributed commits are already automatically signed-off.

The meaning of a signoff depends on the project, but it typically certifies that committer has the rights to submit this work under the same license and agrees to a Developer Certificate of Origin
(see https://developercertificate.org/ for more information).

- Git Commit Signoff documentation

If signing your organization's CLA is a strict-requirement for merging this contribution, please feel free to close this PR.

Tracking

All PR's generated as part of this fix are tracked here:
JLLeitschuh/bulk-security-pr-generator#2

This fixes a security vulnerability in this project where the `pom.xml`
files were configuring Maven to resolve dependencies over HTTP instead of
HTTPS.

Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com>
@thjaeckle
Copy link
Member

This is not a security issue for Ditto as the rubygems proxy is only used for building the website with Jekyll.
The HTTP certificate of the repos https://rubygems-proxy.torquebox.org/releases seem to be invalid, so simply accepting this PR won't work.

@thjaeckle
Copy link
Member

@thjaeckle thjaeckle changed the title [SECURITY] Use HTTPS to resolve dependencies in Maven Build Use HTTPS to resolve ruby gems for Jekyll website build Feb 11, 2020
@thjaeckle
Copy link
Member

Closed and will be tracked by issue #625 instead.
Not a security problem for Ditto.

@thjaeckle thjaeckle closed this Feb 27, 2020
@JLLeitschuh
Copy link
Author

Not a security problem for Ditto.

How do you reach that conclusion?

@thjaeckle
Copy link
Member

Already argued in this PR. The affected URL is used for bulding the project site and documentation.

@JLLeitschuh
Copy link
Author

Do you use the same machine to build releases and documentation? If so, the .m2 cache is shared.

@thjaeckle
Copy link
Member

Our CI runs each job in a new created docker container, so there is no shared local Maven repo, even not for the same job.
The insecure repository is only used when building the documentation via a custom profile.

The rubygems repository in question does not support https, that's why I created the linked task to completely get rid of it.

So unfortunately in this case it's not as easy as replacing http with https, but I really appreciate your initiative and your PR bot to rise awareness for such MITM scenarios. 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants