Giter Club home page Giter Club logo

Comments (10)

nedtwigg avatar nedtwigg commented on August 20, 2024 1

Do you expect the redirect to be https as well?

I do. Here's the attack, which isn't very difficult if I had a few weeks to invest in spearfishing a specific company:

  • I know foocorp uses groovy-eclipse
  • I setup a wifi network near their office or coffee shop with the same name
  • I pass all their traffic through unaltered, except groovy-eclipse jars. I can't see or alter your https requests, but I can fake the responses to your http requests and you have no way to tell.
  • I replace your groovy-eclipse jars with malicious ones: https://github.com/mveytsman/dilettante

from groovy-eclipse.

eric-milles avatar eric-milles commented on August 20, 2024 1

@JLLeitschuh Yes, I know. I updated the urls that had available https support. I'm not entirely sure the springsource maven repo is even used anymore. If it is, it's part of the deployment, so you could generate an update site from the git repo securely. Pivotal is investigating.

from groovy-eclipse.

atomicpirate avatar atomicpirate commented on August 20, 2024

+1 for this; our security group takes a dim view of download sites without TLS/SSL and no other cryptographic way to authenticate file integrity, e.g., PGP signatures

There are way too many examples of where exploits have been distributed when proper precautions aren't taken...

from groovy-eclipse.

nedtwigg avatar nedtwigg commented on August 20, 2024

Just FYI, download.eclipse.org started to support https in Nov 2018 (bug #444350). Hopefully we'll be able to uplevel security across the eclipse community.

from groovy-eclipse.

eric-milles avatar eric-milles commented on August 20, 2024

Quick update from Andy: "I had a look with our sys admin, he turned on cloud flare which is what we use to make this work in other cases. It didn’t work though, (temporarily broke http too!), he might have some more cycles to look at in a little while."

from groovy-eclipse.

eric-milles avatar eric-milles commented on August 20, 2024

So the main update site is actually built as a redirect to the versioned update site. Below is the content for http://dist.springsource.org/release/GRECLIPSE/e4.10/compositeContent.xml Do you expect the redirect to be https as well?

<repository name="Groovy Eclipse Latest Release for Eclipse e4.10" type="org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository" version="1.0.0">
 <properties size="1">
 <property name="p2.timestamp" value="1515114810753"/>
 </properties>
 <children size="1">
 <child location="http://dist.springsource.org/release/GRECLIPSE/3.2.0/e4.10"/>
 </children>
</repository>

from groovy-eclipse.

eric-milles avatar eric-milles commented on August 20, 2024

I updated our pom to use https where possible. If the springsource.org site(s) can be made to support https, I'll make sure the composite site xml redirects to https as well.

from groovy-eclipse.

JLLeitschuh avatar JLLeitschuh commented on August 20, 2024

@eric-milles This is still not fixed in the repository.

Source Locations

groovy-eclipse/pom.xml

Lines 316 to 320 in addc606

<repository>
<id>springsource-maven-release</id>
<name>SpringSource Maven Release Repository</name>
<url>http://repository.springsource.com/maven/bundles/release</url>
</repository>

groovy-eclipse/pom.xml

Lines 330 to 334 in addc606

<pluginRepository>
<id>springsource-maven-release</id>
<name>SpringSource Maven Release Repository</name>
<url>http://repository.springsource.com/maven/bundles/release</url>
</pluginRepository>

Vulnerability

CWE-829: Inclusion of Functionality from Untrusted Control Sphere
CWE-494: Download of Code Without Integrity Check

The build files indicate that this project is resolving dependencies over HTTP instead of HTTPS. Any of these artifacts could have been MITM to maliciously compromise them and infect the build artifacts that were produced. Additionally, if any of these JARs or other dependencies were compromised, any developers using these could continue to be infected past updating to fix this.

This vulnerability has a CVSS v3.0 Base Score of 8.1/10
https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

Public Disclosure

This vulnerability needs to be publicly disclosed.

Option 1: File for a CVE

A project maintainer for this project should probably file for a CVE number to inform the public about this vulnerability in the build for this project. The goal is to inform the public that there was a potential for published build artifacts to have been maliciously compromised in earlier releases.

If a maintainer on this project works for or is associated with a CNA, please have them file it with them:
cve.mitre.org/cve/request_id.html

Otherwise, an open source CVE should be filed for here:
iwantacve.org

Option 2: Manually validate the release artifacts

If this project's build is fully reproducible. An alternative to filing for a CVE is to go back and build the earlier releases (with the HTTPS patch applied) to confirm the artifacts were not tampered when they were built. This can be done by comparing the hashes of the artifacts built locally with the ones published. If the hashes of all previous artifacts match those that are published, you can safely assume that the releases were not tampered with.

Again, this assumes that the build if fully reproducible and will require significantly more work.

from groovy-eclipse.

eric-milles avatar eric-milles commented on August 20, 2024

Update sites should be available via https. Thanks Andy. @nedtwigg @JLLeitschuh Can you give them a try?

from groovy-eclipse.

nedtwigg avatar nedtwigg commented on August 20, 2024

I can confirm that they work. Thanks Eric!

from groovy-eclipse.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.